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 查询