一、建立索引
CREATE UNIQUE INDEX Stusno ON Student(Sno);
CREATE UNIQUE INDEX Coucno ON Course(Cno);
CREATE UNIQUE INDEX SCno ON SC(Sno ASC,Cno DESC);
Sno升序排列与Cno降序排列,二者并没有冲突,这句话的意思是对Sno进行升序排列后,当Sno相同时,对Cno进行降序排列。
二、
EXEC sp_rename 'SC.Sno', 'SCSno', 'index'
将SC表的SCno索引名改为SCSno:
删除Student表的Stusname索引:
可以看到该运行错误,改变方法如下:
DROP INDEX Stusno ON Student;
运行成功。
二、数据更新
插入元组:
INSERT
INTO <表名> [(<属性列1>[,<属性列2 >…)]
VALUES (<常量1> [,<常量2>]… );
例如:
将一个新学生元组(学号:201215128;姓名:陈冬;性别:男;所在系:IS;年龄:18岁)插入到Student表中。
INSERT
INTO Student (Sno,Sname,Ssex,Sdept,Sage)
VALUES ('201215128','陈冬','男','IS',18);
如果,学号重复,就会出现以下提示,表示学号重复:
再来看一个例子:
这句话之所以报错,是因为5这一行还没有录入,所以报错
可以改为:
INSERT INTO Course(Cno,Cname,Cpno,Ccredit)
VALUES ('1','数据库',NULL,4);
或者:
INSERT INTO Course(Cno,Cname,Cpno,Ccredit)
VALUES ('1','数据库',‘1’,4);
然后插入一条选课记录:
INSERT
INTO SC(Sno,Cno)
VALUES ('201215128 ',' 1 ');
或者:
INSERT
INTO SC
VALUES (' 201215128 ',' 1 ',NULL);
查询全体学生的学号与姓名。
SELECT Sno,Sname
FROM Student;
结果如下:
查询全体学生的姓名、学号、所在系。
SELECT Sname,Sno,Sdept
FROM Student;
查询全体学生的详细记录(又添加了一些数据)
查全体学生的姓名及其出生年份。
SELECT Sname,2016-Sage
FROM Student;
结果如下:
查询全体学生的姓名、出生年份和所在的院系,要求用小写字母表示系名。
SELECT Sname,'Year of Birth: ',2014-Sage,LOWER(Sdept)
FROM Student;
我们给一行加上名称,例如
SELECT Sname NAME,'Year of Birth:' BIRTH,
2014-Sage BIRTHDAY,LOWER(Sdept) DEPARTMENT
FROM Student;
查询选修了课程的学生学号:
SELECT Sno FROM SC;
或者:
SELECT ALL Sno FROM SC;
指定DISTINCT关键词,去掉表中重复的行
如果要去掉重复的学号,加上以下语句即可:
SELECT DISTINCT Sno
FROM SC;
查询计算机科学系全体学生的名单:
SELECT Sname
FROM Student
WHERE Sdept=‘CS’;
只有一个人的专业是CS:
查询所有年龄在20岁以下的学生姓名及其年龄:
SELECT Sname,Sage
FROM Student
WHERE Sage < 20;
查询考试成绩有不及格的学生的学号:
SELECT DISTINCT Sn
FROM SC
WHERE Grade<60;
BETWEEN … AND …
NOT BETWEEN … AND …
查询年龄在20~23岁(包括20岁和23岁)之间的学生的姓名、系别和年龄
SELECT Sname, Sdept, Sage
FROM Student
WHERE Sage BETWEEN 20 AND 23;
查询年龄不在20~23岁之间的学生姓名、系别和年龄
SELECT Sname, Sdept, Sage
FROM Student
WHERE Sage NOT BETWEEN 20 AND 23;
IN <值表>, NOT IN <值表>
查询计算机科学系(CS)、数学系(MA)和信息系(IS)学生的姓名和性别:
SELECT Sname, Ssex
FROM Student
WHERE Sdept IN ('CS','MA’,'IS' );
查询既不是计算机科学系、数学系,也不是信息系的学生的姓名和性别。
SELECT Sname, Ssex
FROM Student
WHERE Sdept NOT IN ('IS','MA’,'CS' );
通过练习,也发现了自己的一些问题,和不理解的语句,同时也很大程度掌握了这些删除、修改的语句。
以后还要多多练习~~~~~~