您的位置:首页 > 数据库

数据定义

2016-05-31 20:25 295 查看

一.模式的定义与删除

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;
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息