作业5

新建索引:
CREATE [UNIQUE][CLUSTER] INDEX <索引名>
ON <表名>(<列名>[<次序>] [,<列名>[<次序>]]…);
UNIQUE 此索引的每个索引值只对应唯一数据记录。
CLUSTER:聚簇索引
索引:可以建立在该表的一列或多列上,各列名之间要用逗号分隔
表名:要建索引的基本表的名字
次序:指定索引值的排列次序,ASC:升序,DESC:降序,ASC:缺省值

学生表和课程表分别按照学号和课序号进行升序排列,而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);
修改索引:
ALTER INDEX <旧索引名> RENAME TO <新索引名>;
这时候程序会报错,提示在“RENAME”附近有语法错误,因为ALTER不能改变表名和索引名,如果需要改变索引名就需要调用存储过程。
EXEC sp_rename ‘表名.旧索引名’,‘新索引名’,‘index’

例【3.14】
EXEC sp_rename ‘SC.SCno’, ‘SCSno’, ‘index’
删除索引:
DROP INDEX 表名.索引名;
例【3.15】
DROP INDEX Student.Stusname;

SELECT
SELECT [ALL|DISTINCT]<目标列表达式>[,<目标列表达式>]…
FROM<表名或者视图名>[,<表名或视图名>…]|(<SELECT语句>)[AS]<别名>
[WHERE<条件表达式>]
[GROUP BY<列名1>[HAVING<条件表达式>]]
[ORDER BY<列名2>[ASC|DESC]];

例【3.16】查询全体学生的学号与姓名
SELECT Sno,Sname
FROM Student;

例【3.17】查询全体学生的姓名、学号、所在系
SELECT Sname,Sno,Sdept
FROM Student;

例【3.18】查询全体学生的详细记录
SELECT Sno,Sname,Ssex,Sage,Sdept
FROM Student;

例【3.19】查全体学生的姓名及其出生年份
SELECT Sname,2020-Sage
FROM Student;

例【3.20】查询全体学生的姓名、出生年份和所在院系,要求用小写字母表示院系
SELECT Sname,'Year of Birth: ',2020-Sage,LOWER(Sdept)
FROM Student;

例【3.21】查询选修了课程的学生学号
SELECT Sno
FROM SC;

例【3.22】查询计算机科学系全体学生的名单
SELECT Sname
FROM Student
WHERE Sdept=‘CS’;

例【3.23】查询所有年龄在20岁以下的学生姓名及其年龄
SELECT Sname,Sage
FROM Student
WHERE Sage < 20;

例【3.24】查询考试成绩有不及格的学生的学号
SELECT DISTINCT Sno
FROM SC
WHERE Grade<60;

例【3.25】查询年龄在20~23岁(包括20岁和23岁)之间的学生的姓名、系别和年龄
SELECT Sname, Sdept, Sage
FROM Student
WHERE Sage BETWEEN 20 AND 23;

例【3.26】 查询年龄不在20~23岁之间的学生姓名、系别和年龄
SELECT Sname, Sdept, Sage
FROM Student
WHERE Sage NOT BETWEEN 20 AND 23;

例【3.27】查询计算机科学系(CS)、数学系(MA)和信息系(IS)学生的姓名和性别
SELECT Sname, Ssex
FROM Student
WHERE Sdept IN (‘CS’,‘MA’,‘IS’);

例【3.28】查询既不是计算机科学系(CS)、数学系(MA),也不是信息系(IS)学生的姓名和性别
SELECT Sname, Ssex
FROM Student
WHERE Sdept NOT IN (‘IS’,‘MA’,‘CS’);

INSERT
INSERT INTO<表名>[(<属性列1>[,<属性列2>]…)]
VALUES(<常量1>[,<常量2>…]);

例【3.69】将一个新学生元组(学号:201215128,姓名:陈冬,性别:男,所在系:IS,年龄:18岁)插入到Student中
INSERT INTO Student(Sno,Sname,Ssex,Sdept,Sage)
VALUES(‘201215128’,‘陈冬’,‘男’,‘IS’,18);

例【3.70】将学生张成民的信息插入到Student表中
INSERT INTO Student
VALUES(‘201215126’,‘张成民’,‘男’,‘18’,‘CS’);

例【3.71】插入一条选课记录(‘200215128’,‘1’)
INSERT INTO SC(Sno,Cno)
VALUES(‘200215128’,‘1’);

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值