5-4-2
来源:百度文库 编辑:神马文学网 时间:2024/05/09 11:43:28
5.4.1 数据插入
1.SQL3中的四种插入数据方式
(1)单元组的插入
INSERT INTO <基本表名> [(<列名序列>)] VALUES(<元组值>)
(2)多元组的插入
INSERT INTO <基本表名> [(<列名序列>)] VALUES (<元组值>), (<元组值>), ……, (<元组值>)
(3)查询结果的插入
INSERT INTO <基本表名> [(<列名序列>)] <SELECT查询语句>
这个语句可把一个SELECT语句的查询结果插到某个基本表中
(4)表的插入
INSERT INTO <基本表名> [(<列名序列>)] TABLE <基本表名>
这个语句可把基本表2的值插入到基本表1中
2.说明
(1)如果插入的值在属性个数、顺序与基本表的结构完全一致,那么基本表后的(<列名序列>)可省略,否则必须详细列出
(2)列名顺序不一定与表结构一致
(3)列表名与VALUES值一一对应
(4)空值用NULL表示
3.例子
(1)插入单个元组(一个记录)
INSERT INTO Student VALUES('S11','lin','M',18,'CS')
(2)插入单个元组的部分数据值
INSERT INTO Sc(Sno,Cno) VALUES('S11','C4')
(3)插入子查询结果(多行记录)
INSERT INTO Sc(Sno) SELECT Sno FROM Student WHERE Dept='CS'
SELECT Sno,cno FROM Student,course into array a1
INSERT INTO Sc2 FROM array a1
(4)往SC连续插三个元组
INSERT INTO SC VALUES ('S4', 'C4', 85), ('S3', 'C6', 90), ('S7', 'C2', 70)
(5)某一个班级的选课情况已在基本表SC4(Sno,Cno)中,把SC4的数据插入到表SC中
INSERT INTO SC(Sno, Cno) TABLE SC4 5.4.2 数据删除
(1)句法
DELETE FROM <基本表名> [WHERE <条件表达式>]
(2)说明
(3)删除一个元组的值(一行记录)
DELETE FROM Student WHERE Sno='S11'
(4)删除多个元组的值(多行记录)
DELETE FROM Sc WHERE G<60
DELETE FROM Sc
(5)带子查询的删除语句
DELETE FROM Sc
WHERE Sno IN
(SELECT Sno
FROM Student
WHERE Sn='lin') 5.4.3 数据修改
1.句法
UPDATE <基本表名>
SET <列名>=<值表达式> [, <列名>=<值表达式>…] | ROW =(<元组>)
[WHERE <条件表达式>]
2.说明
(1)表达式可为具体值、计算结果、子查询
(2)省略WHERE则修改所有元组
(3)注意保证数据的一致性
3.修改一个元组的某些列值
UPDATE Student SET Age=20 WHERE Sno='S1'
4.修改多个元组的值(多行)
UPDATE Student SET Age=Age+1
UPDATE Emp
SET Salary=2*Salary
WHERE Job='PROGRAMMER' AND Salary <=3000
5.带子查询的修改语句
UPDATE Sc
SET G=0
WHERE 'CS'=
(SELECT Dept
FROM Student
WHERE Student.Sno=Sc.Sno)
UPDATE Emp
SET Salary=
(SELECT 1.5*AVG(Salary)
FROM Emp)
6.修改操作与数据库的一致性
UPDATE Student SET Sno='99299' WHERE Sno='99101'
UPDATE Sc SET Sno='99299' WHERE Sno='99101'