一.模式的定义与删除
1.模式的定义
模式定义语句如下:
create schema <模式名> authorization <用户名>
如:
create schema 'S-T' authorization larry;
定义模式实际上是定义了一个命名空间,在这个空间中可以进一步定义该模式包含的数据库对象,如基本表、视图、索引等。
可以在定义模式的同时定义基本表
create schema 'S-T'authorization Larry
create table student(
Sno char(10) primary key,
Sname varchar(10),//在Oracle中,应为vachar2(10)
Sage small int;
Ssex char(2)
);
2.模式的删除
删除模式的语句如下:
drop schema <模式名><cascade|restrict>
如:
drop schema 'S-T';
选择了cascade(级联),表示在删除模式的同时也会把模式下定义的视图等一并删除;
选择了restrict(限制),表示如果该模式下定义了基本表、视图等,则拒绝该操作。
二.基本表的定义、删除和修改
1.定义基本表
直接上实例:
建立基本表student
create table student(
Sno char(10) primary key,
Sname varchar(10),//在Oracle中,应为vachar2(10)
Sage small int;
Ssex char(2)
);
建立基本表course
create table course(
Cno char(4) primary key,
Cname varchar(20),
Cpno references course(Cno),//这是Oracle的写法
/*这是SQL Server的写法
*Cpno char(4),
*foreign key Cpno references Course(Cno)
*/
Ccredit int);
2.修改基本表
1.增加列
//增加学生高度属性
alter table student add Sheight numeric(1,2);
2.修改列中的域
alter table student modify(Sname varchar(8));//将学生姓名最大长度为10改为最大长度为8
/*SQL Server的语法应为
*alter table student alter column Sname varchar(8);
*/
3.删除基本表
drop table student;
三.索引的建立
1.建立索引的原因
加快查询速度,提高查询效率
2.应当建立索引的情况
- 主码、外码上应当建立索引
- 只读或以读为主的表,只要空间允许,可以建立多个索引
- 等值查询。查询结果的元组数少于总元组数的5%时可以考虑建立索引
- 范围查询
3.不宜建立索引的情况
- 属性值很少、不出现或很少出现查询的属性
- 属性值分布严重不均的属性
- 经常更新的属性或表
- 过长的属性
- 较小的表
4.索引的建立
//在Student表的Sname上建立索引
Create cluster index StuSname on Student(Sname);
索引的结果缺省值是asc(升序)排列,降序为desc。
5.索引的删除
drop index StuSname;