您的位置:首页 > 其它

举例说明----索引的创建,删除,查看,分类

2016-07-12 10:45 267 查看
原来工作最主要用到索引,认真学习了一上午,例子是最经典的书上代码,注释相当多

create table Student(

   Sno CHAR(9) not null primary key nonclustered,----主键且非聚集

   Sname CHAR(20) unique,

   Ssex CHAR(2),

   Sage smallint,

   Sdept CHAR(20)

);

create table Course(

   Cno CHAR(4) not null primary key,

   Cname CHAR(40) not null,

   Ccredit smallint,

);

create table SC(

   Sno CHAR(9),

   Cno CHAR(4),

   Grade smallint,

   primary key (Sno,Cno),

   foreign key (Sno) references Student(Sno),

   foreign key (Cno) references Course(Cno)

);

delete from Student;

delete from Course;

delete from SC;

insert into Student  values('201215121','李勇','男',20,'CS');

insert into Student  values('201215122','刘晨','女',19,'CS');

insert into Student  values('201215123','王敏','女',18,'MA');

insert into Student  values('201215125','张立','男',19,'IS');

insert into Course   values(1,'数据库',4);

insert into Course   values(2,'数学',2);

insert into Course   values(3,'信息系统',4);

insert into Course   values(4,'操作系统',3);

insert into Course   values(5,'数据结构',4);

insert into Course   values(6,'数据处理',2);

insert into Course   values(7,'PASCAL语言',4);

insert into SC  values(201215121,1,92);

insert into SC  values(201215121,2,85);

insert into SC  values(201215121,3,88);

insert into SC  values(201215122,2,90);

insert into SC  values(201215122,3,80);

/*索引分类*/

    /*1.最简单的创建和删除索引*/

     CREATE INDEX list ON Student(Sno)

     --在学生表学号列创建索引lis

     DROP INDEX list ON Student

     --删除学生表索引

      EXEC sp_helpindex Student

      --查看索引

      --student表里有两个本身的索引,Sno和Sname,主键默认为是唯一聚集索引(可改为非聚集),unique是唯一索引

    

    /*2.唯一性索引,保证在索引列中的全部数据是唯一的,对聚簇索引和非聚簇索引都可以使用*/

    CREATE UNIQUE  INDEX list ON Student(Ssex)

    --发现对象名称 'dbo.Student' 和索引名称 'list' 有重复的键,所以 CREATE UNIQUE INDEX 语句终止。重复的键值为 (男)。

    CREATE UNIQUE INDEX list ON Student(Sno)

/*3.复合索引用户可以在多个列上建立索引,这种索引叫做复合索引(组合索引)。*/

    CREATE UNIQUE INDEX list ON Student(Sno,Ssex)

    --create index idx1 on table1(col1,col2,col3)  

    

    /*4.聚簇索引,对磁盘上实际数据重新组织以按指定的一个或多个列的值排序*/

     CREATE CLUSTERED INDEX list ON Course(Cno)    

      --- 无法对 表 'Course' 创建多个聚集索引。请在创建新聚集索引前删除现有的聚集索引 'PK__Course__C1FE6373173876EA'

   
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  索引