数据库原理上机实验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;
相关推荐
这个DBA有点耶2 小时前
AI写的SQL跑崩了生产库,这锅谁背?
数据库·人工智能·程序员
镜舟科技3 小时前
Databricks 再提 LTAP,AI 时代的数据底座为何重回大一统叙事?
数据库·架构·agent
Databend3 小时前
从湖仓升级为 Agent 时代的数据控制面,Snowflake 和 Databricks 有哪些布局
大数据·数据库·agent
ClouGence7 小时前
SQL Server CDC 能放到 Always On 备库读吗?一文讲透原理与实践
数据库·sql server
先吃饱再说1 天前
存储的进化:从 MySQL 到浏览器缓存,数据到底住在哪?
数据库
Nturmoils1 天前
字段太多看不全,ksql 的展开模式和输出控制怎么用
数据库·后端
Databend1 天前
Agent 轨迹分析与归因的数据工程实践
大数据·数据库·agent
这个DBA有点耶1 天前
SQL改写进阶:标量子查询的“隐形代价”与消除实战
数据库·mysql·架构
smallyoung1 天前
数据库乐观锁深度解析:MySQL、PostgreSQL 实战 + Spring Boot 集成指南
数据库·mysql·postgresql
parade岁月1 天前
MySQL JOIN解析:朴实无华但食之有味
数据库·后端