本文仅供参考学习使用,谢谢
SQL语言种类 | 操作 |
---|---|
DDL 数据定义语言 | create(创建) drop(删除) alte(修改) |
DQL 数据查询语言 | select(查询) |
DML 数据操纵语言 | insert(插入) update(更新) delete(删除) |
DCL 数据控制语言 | grant(授予) revoke(吊销) |
视图链接
也可以称之为数据的更新
两种插入数据方式
1. 插入元组
2. 插入子查询结果:可以一次插入多个元组
语句格式
INSERT INTO <表名> [(<属性列1>[,<属性列2 >...)]
VALUES (<常量1> [,<常量2>]... ); // 将新元组插入指定表中
INTO子句
VALUES子句
eg1:
//将一个新学生元组
//(学号:201215128;姓名:陈冬; 性别:男;所在系:IS;年龄:18岁)插入到Student表中。
INSERT INTO Student (Sno,Sname,Ssex,Sdept,Sage)
VALUES ('201215128','陈冬','男','IS',18);
eg2:
//插入一条选课记录( '200215128','1 ')。
INSERT INTO SC(Sno,Cno)
VALUES ('201215128 ',' 1 '); //关系数据库管理系统将在新插入记录的Grade列上自动地 赋空值。
//或者:
INSERT INTO SC
VALUES (' 201215128 ',' 1 ',NULL);
eg3:
//将学生张成民的信息插入到Student表中。
INSERT INTO Student
VALUES ('201215126','张成民','男’,18,'CS');
eg4:
insert into Hotel
values(‘H1035’,‘前进宾馆’,‘长春’);
语句格式
INSERT INTO <表名> [(<属性列1> [,<属性列2>... )]
子查询;
INTO子句
子查询
eg:
//对每一个系,求学生的平均年龄,并把结果存入数据库
//第一步:建表
CREATE TABLE Dept_age
( Sdept CHAR(15) /*系名*/
Avg_age SMALLINT); /*学生平均年龄*/
//第二步:插入数据
INSERT INTO Dept_age(Sdept,Avg_age)
SELECT Sdept,AVG(Sage)
FROM Student
GROUP BY Sdept;
关系数据库管理系统在执行插入语句时会检查所 插元组是否破坏表上已定义的完整性规则
实体完整性
参照完整性
用户定义的完整性
语句格式
UPDATE <表名>
SET <列名>=<表达式> //SET子句给出<表达式>的值用于取代相应的属性列
[,<列名>=<表达式>]...
[WHERE <条件>]; //修改指定表中满足WHERE子句条件的元组
//如果省略WHERE子句,表示要修改表中的所有元组
update 表名
set 列名=值
where 条件
三种修改方式
1. 修改某一个元组的值
2. 修改多个元组的值
3. 带子查询的修改语句
eg:
//将学生201215121的年龄改为22岁
UPDATE Student
SET Sage=22
WHERE Sno=' 201215121 ';
eg:
//将所有学生的年龄增加1岁。
UPDATE Student
SET Sage= Sage+1;
eg1:
//将计算机科学系全体学生的成绩置零。
UPDATE SC
SET Grade=0
WHERE Sno IN
(SELETE Sno
FROM Student
WHERE Sdept= 'CS' );
eg2:
update Room
set type = ‘单人间’
where roomNo = ‘369’ and hotelNo in
(select hotelNo
from Hotel
where hotelName = ‘长春宾馆’);
关系数据库管理系统在执行修改语句时会检查修 改操作是否破坏表上已定义的完整性规则
语句格式
DELETE FROM <表名> //删除指定表中满足WHERE子句条件的元组
[WHERE <条件>]; //指定要删除的元组 无该子句将会删除表中的全部元组
delete from 表名
where 条件
三种删除方式
1. 删除某一个元组的值
2. 删除多个元组的值
3. 带子查询的删除语句
eg:
//删除学号为201215128的学生记录。
DELETE FROM Student
WHERE Sno= 201215128 ';
eg2:
delete from Booking
where dateTo=‘20171202’;
//删除所有的学生选课记录。
DELETE FROM SC;
eg:
//删除计算机科学系所有学生的选课记录。
DELETE FROM SC
WHERE Sno IN
(SELETE Sno
FROM Student
WHERE Sdept= 'CS') ;