目录
1.模式
1.1模式创建
Create database 模式名 [authorization 用户名];
1.2模式删除
Drop database 模式名 [cascade/restrict];
2.基本表
2.1基本表创建
Create table 表名(
列名 数据类型 [列级完整性约束条件]
…
表级完整性约束条件
)
2.2基本表修改
修改表名:
Alter table 表名 rename 新表名;
添加列
Alter table 表名 add (column) 列名 数据类型 [列级完整性约束条件] first| after 列名;
删除列
Alter table 表名 drop (column) 列名;
修改列名
Alter table 表名 change 原列名 新列名 数据类型 [列级完整性约束条件] first| after 列名;
修改列数据类型
Alter table 表名 modify 列名 数据类型 [列级完整性约束条件] first| after 列名;
添加表级完整性约束
Alter table 表名 add 表级完整性约束;
删除表级完整性约束
Alter table 表名 drop表级完整性约束;
2.3基本表删除
Drop table [if exists] 表名 [cascade/restrict];
2.4为表增加计算列
Create table 表名(
a int default null , b int default null,
c int generated always as ((a+b)) [virtual | stored]
);
3.数据查询
Select [all | distinct] 列名[,列名…]
From 表名[,表名] | Select语句 As 别名
Where 条件表达式
Group by 列名 [Having 条件表达式]
Order by 列名 [ASC | DESC];
eg:
Select Sname ,2014-Sage as Birthday ,LOWER( Sdept ) from Student;
Select Sname from Student where Sname like‘王%’;(%:任意长度字符串, _:单个任意字符)
Select COUNT(*) from SC group by Cno having COUNT(*)>3;
3.1连接查询
Select 列名… from 表1,表2 where 判断条件;
3.2内连接查询
Select 列名… from 表1 inner join 表2 on 判断条件;
3.3外连接查询
左连接:左表全显示,右表对应显示,无对应显示为null
Select 列名… from 表1 left join 表2 on 判断条件;
右链接:右表全显示,左表对应显示,无对应显示为null
Select 列名… from 表1 right join 表2 on 判断条件;
3.4嵌套查询
带IN谓词的子查询
eg:查询与‘刘晨’同一个系的学生:
Select Sno,Sname,Sdept
From Student
Where Sdept IN ( Select Sdept
From Student
Where Sname = ‘刘晨’);
带ANY、ALL谓词的子查询
eg:查询非CS系中比CS系中任意一个学生年龄小的学生姓名和学号:
Select Sname,Sno
From Student
Where Sage < ANY( Select Sage
From Student
where Sdept = ‘CS’)
And Sdept <> ‘CS’;
带EXISTS谓词的子查询
eg:查询所有选修了1号课程的学生姓名
Select Sname
From Student as s
Where exists ( Select *
From SC
Where Sno = s.Sno and Cno = ‘1’);
带有EXISTS谓词的子查询不返回任何数据,只产生逻辑真值TRUE和逻辑假值FALSE
子查询分类:不相关子查询(1,2)、相关子查询(3)
3.5基于派生表的查询
Select Sno,Cno
From SC,( Select Sno, AVG(Grade)
From SC Group by Sno)
as Avg_sc (acg_sno, avg_grade)
Where SC.Sno = Avg_sc.avg_sno and SC.Grade >= Avg_sc.avg_grade;
4.数据更新
4.1数据插入
Insert into 表名(列1,…) values(值1,…);
Insert into 表名(列1,…) Select (列1,…) from 表2 where 条件表达式
4.2数据修改
Update 表名 set 列名=值,… where 条件表达式|子查询判断
4.3数据删除
Delete from 表名 where 条件表达式|子查询判断
本文为个人学习总结,如有错误和问题,欢迎评论留言!