数据库作业-SQL练习2- INDEX / INSERT / SELECT(建表、插入数据)

这篇博客介绍了如何为学生-课程数据库的三个表(Student、Course和SC)创建索引,包括升序和降序排列,并展示了如何修改和删除索引。接着,博客讨论了INSERT语句,强调了插入数据时外键的约束和属性顺序的重要性。最后,博主分享了SELECT查询的不同用法,包括查询特定列、去除重复行、使用别名以及运用IN和NOT IN操作符进行复杂查询。
摘要由CSDN通过智能技术生成

这次作业需要用到三张表,先把这三张表建立出来

CREATE TABLE Student         /*建学生表*/
(
Sno CHAR(9) PRIMARY KEY,      /*列级完整性约束条件,Sno是主码*/
Sname CHAR(20) UNIQUE,        /*Sname取唯一值*/
Ssex CHAR(2),
Sage SMALLINT,
Sdept CHAR(20)
);

CREATE TABLE Course         /*建课程表*/
(
Cno CHAR(4) PRIMARY KEY,
Cname CHAR(40),
Cpno CHAR(4),
Ccredit SMALLINT,
FOREIGN KEY(Cpno) REFERENCES Course(Cno)    /*表级完整性的约束条件,Cpno是外码,被参照表是本身*/
);

CREATE TABLE SC           /*建选课表*/
(
Sno CHAR(9),
Cno CHAR(4),
Grade SMALLINT,
PRIMARY KEY (Sno,Cno),                       /*主码由两个属性构成,必须作为表级完整性进行定义*/
FOREIGN KEY (Sno) REFERENCES Student(Sno),   /*表级完整性约束条件,Sno是外码,被参照表是Student*/
FOREIGN KEY (Cno) REFERENCES Course(Cno),     /*表级完整性约束条件,Cno是外码,被参照表是Course*/
);

INDEX:
【例3.13】为学生-课程数据库中的Student、Course和SC三个表建立索引。其中Student表按学号升序建唯一索引,Course表按课程号升序建唯一索引,SC表按学号升序和课程号降序建唯一索引。

CREATE UNIQUE INDEX Stusno ON Student(Sno);
CREATE UNIQUE INDEX Coucno ON Course(Cno);
CREATE UNIQUE INDEX SCno ON SC(Sno ASC,Cno DESC);

ASC表示升序,DESC表示降序。缺省值:ASC。
第一条语句表示在Student表根据学号升序建立索引Stusno。
第二条语句表示在Course表根据课程号升序建立索引Coucno。
第三条语句表示在SC表先根据学号升序排列,(选课表一个学生可能选了多个课程)在学号相同的情况下,课程号降序排列,建立索引SCno。在这里插入图片描述

【例3.14】将SC表的SCno索引名改为SCSno。

ALTER INDEX SCno RENAME TO SCSno;
/*“RENAME”附近有语法错误。*/

这时候就该去官方网站SQL文档查询了,找到正确代码格式应为

EXEC sp_rename N'SC.SCno',N'SCSno',N'INDEX' ;
GO

修改成功
在这里插入图片描述
【例3.15】
这个索引之前

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值