目录
一,使用INSERT语句插入数据
通过前面两篇的学习,已经将数据库和数据表创建成功,并将相关的数据录入表中:
ALTER TABLE courses ADD CONSTRAINT DF_courses_cte DEFAULT 'required_course' FOR cte
INSERT INTO dept(dno,dne,ddn,dpe)
VALUES
('1','Computer','QiangguoGong','1531111111')
INSERT INTO classes(cno,cne,ccr,dno)
VALUES
('1','computer241','JianjunSong','1'),
('2','telecom241','JianjunGong','1')
INSERT INTO students(sno,sne,ssx,sbd,spe,cno)
VALUES
('1','zs','male','2000.1.1','18911111111','1')
INSERT INTO courses(cno,cne,cpd,cct)
VALUES
('1','SQLserver DataBase Application principle','96','6')
INSERT INTO score(sno,cno,get)
VALUES
('1','1','88')
INSERT INTO users(uln,une,upd)
VALUES('SQL_identity','sa','123456')
二,使用UPDATE语句修改数据
语法如下:
UPDATE 表名 SET 列名=新的数据 WHERE 列名=当前表的列已有的数据
在上述语句中的“新的数据”可以是具体的值,也可以是经过表达式后得到的值。先来看具体的值。
1,具体值
小任务1:将zs同学移到24级电信1班telecom241(从24级计算机1班computer241)。
UPDATE students SET cno='2' WHERE sne='zs'
由于学生表和班级表是从主关系,学生表中的班级编号有外键约束(学生表为从表),班级表中的班级编号有主键约束(为主表),因此,改变学生表中的班级编号就可以改变学生的班级。
2,表达式
要想使用表达式,就需要知道SQL server中常用的运算符,如下表所示:
上述优先级从高到低。
任务2:把学号为1课程编号为1的学生,对应的课程成绩加10分。
原始的成绩:
处理的成绩:
成绩加10分完成。
UPDATE score SET get=get+10 WHERE sno='1' AND cno='1'
任务3:统一将选了课程编号为1且分数低于70分的同学成绩提高5分。
由于表中数据很少,因此需要再插入数据(添加的同学有成绩低于70分,也有高于70分):
INSERT INTO students(sno,sne,ssx,sbd,spe,cno)
VALUES
('1','zs','male','2000.1.1','18911111111','1'),
('2','lisi','female','2019.12.31','15911111111','1'),
('3','wangwu','male','2000.2.13','14911111111','1'),
('4','zhaoliu','male','2001.8.2','13911111111','1'),
('5','zhangqing','female','2000.7.1','12911111111','1')
INSERT INTO score(sno,cno,get)
VALUES
('1','1','88'),
('2','1','78'),
('3','1','68'),
('4','1','58'),
('5','1','86')
接下来开始修改成绩:
低于70分的成绩加分完成。
UPDATE score SET get=get+5 WHERE cno='1' AND get<70
三,使用DELETE语句删除数据
语法如下:
DELETE FROM 表名 WHERE 条件
同样是删除操作,如果是删除数据库,数据表及数据表的列,用得是DROP,而删除数据(记录)则是DELETE, 不难发现,DROP是直接改变了表结构,而DELETE不改变表结构。
1,删除表中一条记录
任务1:zs同学要退学,需要将该同学的相关信息删除。
此时学生表中还有zs同学:
接下来删除zs同学。需要注意的点如下:
- 由于名字会重名,而学号唯一,因此删除的时候可以利用学号来进行删除。
- 由于学生表students和成绩表score之间的关系是主从关系,成绩表中会有学生考试的信息,因此必须先删除成绩表(从表)中的相关信息,再删除主表的信息。
DELETE FROM score WHERE sno='1'
DELETE FROM students WHERE sno='1'
zs同学删除成功。
2,删除表中所有记录
可以用DELETE语句来删除数据表中的所有记录,也可以用TRUNCATE语句。两者的区别如下:
- DELETE命令删除的数据存储再系统回滚段中,在有需要的时候,数据可以恢复。
- TRUNCATE命令删除的数据不可恢复。
- 因此TRUNCATE TABLE 比 DELETE 速度快,且使用的系统和事务日志资源少。
- 还需要注意的是:TRUNCATE不能删除带有外键约束的表,而DELETE可以。
1)使用DELETE删除表中数据
这里以删除学生表为例:
2)使用TRUNCATE删除表中数据
如果使用TRUNCATE删除含有外键约束的学生表students中的数据,就会给出如下提示:
明确告诉我,不能删除带有外键约束的数据表。
如果我去删除没有外键约束的用户表users,就可以使用TRUNCATE删除成功,如下👇:
TRUNCATE TABLE users
SELECT * FROM users
有问题请在评论区留言或者是私信我,回复时间不超过一天。