数据定义

一.模式的定义与删除

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;
posted @ 2016-05-31 20:25  larryking  阅读(252)  评论(0编辑  收藏  举报