结构化查询语言SQL是关系数据库的标准语言,也是一个通用的、功能极强的关系数据库语言。常见的关系数据库如MySql 、SQL Server、Oracle等都使用了SQL语法,学习SQL对掌握常见数据库有很大帮助。
#主要内容
1、模式的定义与删除
2、表的创建、修改和删除
3、索引的创建和删除
4、数据查询
5、数据更新(插入、更新、删除)
6、视图
7、授权
语法符号含义:
- <> 必选内容
- [] 可选内容
- | 多选一
一、模式的定义与删除
1、创建模式
create schema <模式名> authorization <用户名>;
没有指定模式名,则模式名隐含为用户名。创建模式时该用户需要有权限。
例题:为用户WANG创建一个模式S-T。
-
create schema “S-T” authorization WANG;
-
create schema authorization WANG;
没有指明模式名,隐含为用户名WANG。
2、删除模式
drop schema <模式名> < cascade | restrict >;
cascade:级联删除,删除模式的同时删除该模式的所有数据库对象。
restrict:限制删除,如果该模式定义了表、视图等下属对象,则拒绝执行该条删除语句。
3、创建模式时可以同时创建模式下属的表、视图和进行授权
create schema <模式名> authorization <用户名> [<表创建语句> | <视图创建语句> | <授权语句>]
例题:为用户WANG创建一个 TEST 模式,并且在模式中创建一个表TAB。
create schema TEST authorization WANG
create table TAB(
column1 int,
column2 char(20)
);
二、表的创建、修改和删除
1、表的常见数据类型
- char(n) :长度为n的定长字符串。
- varchar(n) :最大长度为n的变长字符串。
- smallint :短整数,2字节
- int :长整数,4字节。
- float(n) :可选精度的浮点数,精度至少为n位数。
- numeric(p,d) :定点数,由 p 位数组成(不包括符号、小数点),小数点后有 d 位数字。
- boolean :布尔类型。
- date :日期,格式为 年-月-日(YYYY-MM-DD)。
- time :时间,格式为 时-分-秒(HH:MM:SS)。
2、表的常见列级完整性约束条件
- not null :列值不为空。
- unique :列值唯一,如学生学号。
- check (语句) :列值要满足相应条件,如性别只能选男/女。
- primary key :列值为主码。
3、表的常见表级完整性约束条件
- primary key( 列1,列2,…,列n ):主码由列 1 至列 n 组成。
- foreign key (列名) references <参照的表名>(列名):外码参照了某表。
4、创建表
create table <表名>
(<列名> <数据类型> [列级完整性约束条件]
[,<列名> <数据类型> [列级完整性约束条件] ]
…
[,<表级约束条件> ]
);
例题:创建学生选课表SC
create table SC
( Sno char(9),
Cno char(4),
Ssex char(2),
Grade int,
primary key (Sno,Cno),
foreign key(Sno) references Student(Sno),
foreign key(Cno) references Course(Cno)
);
create table SC
( Sno char(9) unique,
Cno char(4) unique not null,
Ssex char(2) check (Ssex in(‘男’,‘女’) ),
Grade samllint check (Grade >= 0 and Grade <= 100),
foreign key(Sno) references Student(Sno),
foreign key(Cno) references Course(Cno)
);
该表约束说明&#x