本文讲解数据库增删改常用命令行操作。供大家查阅并通过简单例题快速掌握上手
- 插入元组
- 语句格式:
- INSERT INTO <表名> [(<属性名1>[,<属性名2>,...])]
VALUES (<常量1>[,<常量2>,...]); - 常量值与相应属性名值域相同,个数相同
- 元组的某属性没在INTO出现,则这些属性上的值取空值null
- 若into没有指明属性,默认所有属性必须有值(包括null),且常量的顺序与属性名顺序一一对应
- 另一种玩法——INSERT INTO <表名> [(<属性名1>[,<属性名2>,...])] 子查询
- 插入性别为男的学生的选课记录
- INSERT INTO SC(SNO,CNO)
SELECT SNO,CNO
FROM S,C
WHERE SEX='男'
-
-
修改属性值
- 语法格式
- UPDATE <表名>
SET <属性名1> = <表达式1>[,<属性名2> = <表达式2>,...]
[ WHERE <元组选择条件>] - 将学号为“S02”的学生所学“数据库”的成绩改为99
- UPDATE SC
SET GRADE = 99.0
WHERE SNO='S02' AND CNO IN
(
SELECT CNO
FROM C
WHERE CN='s数据库'); - 若课程成绩低于该课平均则将成绩提高5%
- UPDATE SC
SET GRADE <
(
SELECT AVG(GRADE)
FROM SC SC1,
WHERE SC.CNO= SC1.CNO);
-
修改属性值
-
-
删除元组
- 语法格式:
- DELETE
FROM <表名>
[WHERE <元组选择条件>] - 删除成绩低于所有课程平均成绩的选课元组
- DELETE
FROM SC
WHERE GRADE < (SELECT AVG(GRADE) FROM SC);
-
删除元组
-
-
更新操作的完整性检查
-
-
更新操作不能满足参照完整性时,DBMS一般采取处理 策略:
- 拒绝执行(NO ACTION)
- 产生级联操作(CASCADE)
- 设置为空值(SET NULL)
- 在定义表(CREATE TABLE可加)
- 如主键引用外键时:
- FOREIGN KEY(SNO) REFERENCE S(SNO)
ON UPDATE CASCADE[ NO ACTION
-
更新操作不能满足参照完整性时,DBMS一般采取处理 策略:
-
更新操作的完整性检查