SQL:结构化查询语句
数据定义
创建表
create table 表名(
列名 类型 列级约束,
……
表级约束);
- 主键约束:列级:primary key 表级:primary key (Sno,Cno)
- 外键约束:表级:foreign key (Sno) references Student(Sno)
- 唯一约束:列级:unique
- 非空:列级:not null
- 默认:列级:default 值
- 自动增加:列级:auto_increment
数据类型:常用varchar(len)、int、numeric(n,m)、date(格式:2018-12-15)、time(格式:16:21:55)、timestamp
删除表drop table 表名 cascade/restrict;
修改表alter table 表名
- add [column] 列名 类型 约束;
- drop [column] 列名 cascade/restrict;
- alter column 列名 类型;
- add 表级约束;
- drop constraint 约束 cascade/restrict;
索引create index 索引名 on 表名(列名 ASC/DESC,……);
删除索引:drop index 索引名;
修改索引名:alter index 旧名 rename to 新名;
数据查询
数据操纵
插入insert into 表名 values('200215128','陈冬','男','IS',18);
插入insert into 表名 子查询;
修改update 表名 set ______ where_________;
删除delete from 表名 where_________;
视图
虚表,是从一个或几个基本表(或视图)导出的表
只存放视图的定义,不存放视图对应的数据
基表中的数据发生变化,从视图中查询出的数据也随之改变
作用
1. 简化用户的操作
2. 以多种角度看待同一数据
3. 对重构数据库提供了一定程度的逻辑独立性
4. 对机密数据提供安全保护
5. 更清晰的表达查询
创建视图create view 视图名[(列名,……)] as 子查询select [with check option]
子查询语句中不能出现order by/distinct
查询视图——视图消解法
有些情况下,视图消解法不能生成正确查询。
更新视图insert/update/delete
- 视图中是多表联接而来的,不能更新
- 视图定义中有分组、聚集函数,不能更新
- 视图是行列子集,可以更新