SQL Server 2008交互式SQL语言实例练习(二)

2014-11-24 14:17:54 · 作者: · 浏览: 1
建立关于SNO 的唯一索引stusno。
CREATE UNIQUE INDEX stusno ON Student(SNO);
2)在Course 表上建立关于CNO 升序的唯一索引coucno。
CREATE UNIQUE INDEX coucno ON Course(CNO);

2.删除索引
1)删除Student 表上的索引stusno。
DROP INDEX Student.stusno;
2)删除Course 表上的索引coucno。
DROP INDEX Course.coucno;

(三)、视图操作
1.建立视图
在插入数据的Student 基本表上为计算机科学与技术系的学生记录建立一个视图CS_STUDENT。

2.删除视图
在操作结束后删除视图CS_STUDENT。

二、数据操作
(一)、更新操作
1.插入数据
1)向STUDENT 表插入下列数据:
1001,张天,男,10,20
1002,李兰,女,10,21
1003,陈铭,男,10,21
1004,刘茜,女,20,21
1005,马朝阳,男,20,22
命令行操作:
INSERT INTO Student
VALUES(1001,'张天','男',10,20);
INSERT INTO Student
VALUES(1002,'李兰','女',10,21);
INSERT INTO Student
VALUES(1003,'陈铭','男',10,21);
INSERT INTO Student
VALUES(1004,'刘茜','女',20,21);
INSERT INTO Student
VALUES(1005,'马朝阳','男',20,22);
www.2cto.com
2)向COURSE 表插入下列数据:
1,数据结构,101,4
2,数据库,102,4
3,离散数学,103,4
4,C 语言程序设计,101,2
命令行操作:
INSERT INTO Course
VALUES(1,'数据结构',101,4);
INSERT INTO Course
VALUES(2,'数据库',102,4);
INSERT INTO Course
VALUES(3,'离散数学',103,4);
INSERT INTO Course
VALUES(4,'C 语言程序设计',101,2);

3)向SC 表插入下列数据:
1001,1,80
1001,2,85
1001,3,78
1002,1,78
1002,2,82
1002,3,86
1003,1,92
1003,3,90
1004,1,87
1004,4,90
1005,1,85
1005,4,92
命令行操作:
INSERT INTO SC(SNO, CNO, GRAGE)
SELECT 1001,1,80 union
SELECT 1001,2,85 union
SELECT 1001,3,78 union
SELECT 1002,1,78 union
SELECT 1002,2,82 union
SELECT 1002,3,86 union
SELECT 1003,1,92 union
SELECT 1003,3,90 union
SELECT 1004,1,87 union
SELECT 1004,4,90 union
SELECT 1005,1,85 union
SELECT 1005,4,92

4)向TEACHER 表插入下列数据:
101,张星,10
102,李珊,10
103,赵天应,10
104,刘田, 20
命令行操作:
INSERT INTO Teacher(TNO, TNAME, DEPTNO)
SELECT 101,'张星',10 union
SELECT 102,'李珊',10 union
SELECT 103,'赵天应',10 union
SELECT 104,'刘田', 20

5)向DEPT 表插入下列数据:
10,计算机科学与技术
20,信息
命令行操作:
INSERT INTO Dept(DEPTNO, DNAME)
SELECT 10,'计算机科学与技术' union
SELECT 20,'信息'

2.修改数据
将张星老师数据结构课的学生成绩全部加2 分

3.删除数据
删除马朝阳同学的所有选课记录

(二)、查询操作
1.单表查询
1)查询所有学生的信息。
SELECT SNO, SNAME, SEX, DEPTNO, SAGE
FROM Student;

2)查询所有女生的姓名。
SELECT SNAME
FROM Student
WHERE SEX IN('女');

3)查询成绩在80 到89 之间的所有学生选课记录,查询结果按成绩的降序排列。
SELECT CNO
FROM SC
WHERE GRAGE BETWEEN 80 AND 89;
4)查询各个系的学生人数。
SELECT DISTINCT DEPTNO
FROM Dept;
2.连接查询
查询信息系年龄在21 岁以下(含21 岁)的女生姓名及其年龄。
SELECT SNAME, SAGE
FROM Student, Dept
WHERE DNAME = '信息' AND SAGE <= 21 AND SEX = '女';
3.嵌套查询
1)查询修课总学分在10 学分以下的学生姓名。
SELECT SNAME
FROM Student, Course
WHERE CREDIT < 10;
2)查询各门课程取得最高成绩的学生姓名及其成绩。
SELECT SNAME ,GRAGE,
FROM Student, SC
WHERE Student.SNO = SC.SNO AND GRAGE IN
(SELECT MAX(GRAGE)
FROM SC
GROUP BY CNO);
3)查询选修了1001 学生选修的全部课程的学生学号。

4)查询选修了张星老师开设的全部课程的学生姓名。

出现的问题及解决方案:
1.在创建基本表时是否可以缺省主码?
解:可以
2.对基本表进行修改,执行ALTER TABLE Student MODIFY Sage SMALLINT 显示执行失败。
解:将MODIFY更改为alter column就可以解决。