1,前言
SQL是计算机的一门基础语言,无论在开发还是数据库管理上都是非常重要,最近总结归纳了一下相关知识,记录如下。
2,归纳
SQL是结构化查询语言。
关系数据库有三级模式结构。
基本表和视图一样都是关系。
举例:student(sno,sname,ssex,sage,sdept);
course(cno,cname,cpno,ccredit)
sc(sno,cno,grade)
2.1 模式
简单说,模式实际上是个命名空间,在空间中可以定义数据库对象,比如,基本表、视图等等。
语句如下:
create schema <模式名> authorization <用户名>
示例:
create schema "s-t" autherization designlab
在定义模式的时候可以顺便定义表等等。
create schma test authorizaton desingla
create table test1(
col1 INT,
col2 char(10)
);
模式删除:
drop schema <模式名>
这个cascade和restrict必选一个。
casecade级联删除,相当把这个模式里面的所有东西全部删除,在生产环境应该避免使用。
restrict限制,当模式中有数据库对象时候,是无法删除的。
2.2 基本表
定义:
create table student
( sno char(9) primary key,
sname char(20) unique,
ssex char(2),
sage smallint,
sdept char(20)
);
这里面有码,主键,外键的关系,这里面有数据库设计方法的概念,以后再说。
create table course
( cno char(4) primary key,
cname char(20),
cpno char(4), /*cpno是先修课*/
ccredit smallint,
foreign key cpno references course(cno)
);
我们看见,这里面外键是参照了自己。
create talbe sc
( sno char(7),
cno char(4),
grade smallint,
primary key (sno,cno),
foreign key (sno) references student(sno),
foreign key(cno) references course(cno)
);
修改表:
alter table student add entrance DATE;
alter table student alter column sage INT;
alter table course add unique(cname);
删除表:
drop table <表名> [restrict|cascade]
默认是restrict
2.3 索引
索引主要是为了加快查询速度。
create [unique][cluster] index <索引名>
ON <表名> (<列名>[次序])
示例:
create unique index courcno ON course(cno);
2.4 查询