数据库原理上机实验4(数据更新实验){insert;update;delete;is null的使用}

本次实验用到的一些基本关键字

1、insert into 插入数据

INSERT INTO 语句可以有两种编写形式。

第一种形式无需指定要插入数据的列名,只需提供被插入的值即可:

复制代码
INSERT INTO table_name
VALUES (value1,value2,value3,...);

第二种形式需要指定列名及被插入的值:

复制代码
INSERT INTO table_name (column1,column2,column3,...)
VALUES (value1,value2,value3,...);

参数说明:

  • table_name:需要插入新记录的表名。

  • column1, column2, ...:需要插入的字段名。

  • value1, value2, ...:需要插入的字段值。

2、update 更新数据

UPDATE 语句用于更新表中已存在的记录。

SQL UPDATE 语法

UPDATE table_name

SET column1 = value1, column2 = value2, ...

WHERE condition;

参数说明:

  • table_name:要修改的表名称。

  • column1, column2, ...:要修改的字段名称,可以为多个字段。

  • value1, value2, ...:要修改的值,可以为多个值。

  • condition:修改条件,用于指定哪些数据要修改。

3、delete 删除数据

DELETE 语句用于删除表中的记录。

SQL DELETE 语法

DELETE FROM table_name

WHERE condition;

参数说明:

  • table_name:要删除的表名称。

  • condition:删除条件,用于指定哪些数据要删除。

请注意 SQL DELETE 语句中的 WHERE 子句! WHERE 子句规定哪条记录或者哪些记录需要删除。如果省略了 WHERE 子句,所有的记录都将被删除!

4、is null 判断为空;is not null 判断不为空

5、源码

sql 复制代码
#(1) INSERT 基本语句(插入全部列的数据)
#将一个新学生元组插入到student表中
insert into student values('201215128','陈冬','男',18,'IS');

#(2) INSERT 基本语句(插入部分列的数据)
#在course表中插入一条选课记录("201212122","2")
insert into course(sno,cno) values('201215122',2);

#(3) INSERT基本语句批量插入数据(插入子查询结果)
#对每一个系,求学生的平均年龄,并把结果存入数据库
CREATE table dept_age
(sdept char(15), #系名
acg_age int #平均年龄
);

INSERT into dept_age
SELECT sdept,avg(sage)
from student
group by sdept;

#(4) UPDATE语句(修改部分记录的部分列值)
#将学生201215121的年龄改为22岁
update student
set sage=22
where sno='201215121';
#将所有学生的年龄都增加1岁
update student
set sage=sage+1;

#(5) UPDATE语句(利用一个表中的数据修改另一个表中的数据)
#将计算机科学系全体学生的成绩置60分
update course
set grade=0
where sno IN
(select sno
from student
where sdept='CS'
);

#(6)DELETE基本语句(删除满足条件的记录)
#删除学号为201215128的学生记录
delete 
from student
WHERE sno='201215128';
#删除所有姓张的同学的选课记录
delete 
from course
where sno in
(SELECT sno
from student
where sname like '张%'
);

#(7) DELETE基本语句(带子查询的删除语句)
#删除计算机系所有学生的选课记录
delete 
from course
where sno in
(SELECT sno
from student
where sdept='CS'
);

#(8) 空值处理(空值的产生)
#向course表插入一个元组,学号是"201215123",课程号是"2",成绩为空
insert into course values('201215123',2,NULL);

#(9) 空值处理(空值的判断) is null,is not null
#从course表中找出漏填数据的学生信息
select *
from course
where sno is NULL or cno is NULL or grade is NULL;
相关推荐
淘源码d16 小时前
医院专业级PACS系统完整源码(C+VC+MSSQL)
c语言·数据库·sqlserver·源码·pacs系统·医学影像系统
.千余16 小时前
【C++】C++手写Vector容器:从底层源码模拟实现
开发语言·c++·经验分享·笔记·学习
wu85877345716 小时前
向量数据库不是银弹:从枚举漏检到 ReACT 多轮召回的实践路径
前端·数据库·react.js
nashane17 小时前
HarmonyOS 6学习:句柄泄漏(Fd Leak)从“崩溃现场”到“代码行”的精准狙击指南
学习·华为·音视频·harmonyos
hsg7717 小时前
简述:Jensen Huang‘s Footsteps网站全内容分析
前端·javascript·数据库
yuezhilangniao17 小时前
MySQL 8.0.32 二进制安装脚本 和初始化 操作系统版本rocky86
数据库·mysql·adb
Trouvaille ~17 小时前
【Redis篇】Redis 主从复制:数据同步的原理与实现
数据库·redis·缓存·中间件·高可用·主从复制·后端开发
hjhcos17 小时前
【PGSQL】无法修改表结构
sql
真实的菜18 小时前
Redis 从入门到精通(五):哨兵模式(Sentinel)—— 自动故障转移的完整原理与实战
数据库·redis·sentinel
zhangrelay18 小时前
后智能时代智能体推演预测娱乐文-节选-
笔记·学习·娱乐