关系数据库标准语言SQL之数据定义
个人考研,数据库学习中,以下是部分学习总结,资料参考《数据库系统概论》(第五版)
3.1、sql的动词
数据查询:select
数据定义:create、drop(删除)、alter(修改)
数据操纵:insert、update、delete //删除表是drop,删除表中数据是delete
数据控制:grant(授权)、revoke(收回)
3.2学生-课程数据库
3.3数据定义
3.3.1、模式定义与删除
(1)定义模式
Create schema <模式名> authorization <用户名>;
例如
create schema “S-T”authorization WANG;
(2)删除模式
Drop schema <模式名> <cascade | restrict>;
(cascade级联,restrict限制)
3.3.2基本表的定义删除及修改
(1)定义基本表
Create table <表名>(
<列名><数据类型>[列级完整性约束条件],
<列名><数据类型>[列级完整性约束条件],
[表级完整性约束条件]
);
例如
create table student(
Sno char(9) primary key,
Sname char(20) unique,
Ssex char(2)
);
例如
create table SC(
Sno char(9),
Sname char(20),
Ssex char(2),
primary(Sno),
foreign key(Sno)references student(Sno)
//表级完整性约束条件,Sno是外码,被参照表是student
);
(2)修改基本表
alter table<表名>
[add[column] <新列名><数据类型>[完整性约束]] //add子句用于增加新列、新(列/表)级完整性约束条件
[add <表级完整性约束>]
[drop[column] <列名>[cascade | restrict]] //用于删除表中的列(如果指定cascade则自动删除使用该列的其他对象,指定restrict则拒绝删除被其他对象引用的列)
[drop constraint <完整性约束名>[restrict | cascade]] //用于删除指定的完整性约束条件
[alter column <列名><数据类型>]; //用于修改原有的列定义
例如
alert table Student
add S_entrance DATA;
例如
alter table Course
alter column Sage INT;
(3)删除基本表
drop table <表名>[restrict | cascade];
//如选择restrict则删除有限制条件,如选择cascade则删除表没有限制条件
例如
drop table Student cascade;
3.3.3索引的建立和删除
(1)建立索引
create[unique][cluster]index<索引名>
//unique表明此索引唯一,cluster表明要建立的索引是聚簇索引
on <表名>
//ASC升序,DESC降序
例如
create unique index Stusno
on Student(Sno);
例如
create unique index SCno
on Course(Sno ASC,Cno DESC);
(2)修改索引
alter index <旧索引名> rename to <新索引名>;
例如
alter index SCno rename to SCSno;
(3)删除索引
drop index <索引名>;
例如
drop index SC;