数据库上机实验

创建数据表与数据输入

Part I. 使用SQL Server Management Studio创建数据表和输入数据 1. 在SQL Server Management Studio中创建数据表 P69 1.(1)-(6)

2. 为数据表输入数据 P76 4.(1)-(4)

3. 数据浏览

P77 1. (1)-(2) 2. (1)-(3)

Part II. 使用SQL语句创建数据表和输入数据 1. 使用SQL语句创建数据表 P72. 例3-2

2.使用SQL语句输入数据 P82. 例3.8

习题:P.105 (1)(2)insert

数据操作Insert、Update、Delete

P105 3. 上机练习题 (2)(4)

Insert

(100001, 1000, 2002-12-18 0:00:00) (100002, 2000, 2010-3-20 0:00:00)

Update

(100001, 1500, 2002-12-18 0:00:00) (100002, 2000, 2012-9-25 0:00:00)

Delete

Transact-SQL语句基础1

1. 将teaching数据库中score表的studentno列设置为引用表student的外键。 ALTER TABLE Score

ADD CONSTRAINT FK_score_student FOREIGN KEY (studentno) REFERENCES student(studentno)

2. 将teaching数据库中class表的classname创建UNIQUE约束。 ALTER TABLE class

ADD CONSTRAINT UQ_class UNIQUE(classname) 执行如下插入语句,查看提示信息

INSERT INTO class VALUES(‘090602’, ’计算机0902’, ’计算机学院’, ’马文斐’) 3. 为teaching数据库中student表的birthday列创建CHECK约束,规定学生的年龄在17-25岁之间。

ALTER TABLE student

ADD CONSTRAINT CK_birthday

CHECK(YEAR(GETDATE())-YEAR(birthday)) BETWEEN 17 AND 25 执行如下插入语句,查看提示信息

INSERT INTO student(studentno, sname, sex, birthday, classno)

VALUES (‘0922221328’, ’张源’, ’男’, ’1983-04-05’, ’090501’) 提示:表达式YEAR(GETDATE())-YEAR(birthday)

4. 为teaching数据库创建规则prof_rule,规定教师职称取值只能为’助教’,’讲师’,’副教授’,’教授’,并将其绑定到teacher表的prof列上。

CREATE RULE prof_rule AS @prof IN(’助教’,’讲师’,’副教授’,’教授’) EXEC sp_bindrule ‘prof_rule’, ‘teacher.prof’ 执行如下插入语句,查看提示信息

INSERT INTO teacher VALUES(‘t05002’, ’张源’, ’软件工程’, ’工程师’, ’计算机学院’)

提示:表达式IN(职称列表)

5. 编写程序,输出在1-3000之间能被17整除的最大数值

提示:可使循环控制变量从最大值开始,逐步减少,第一个满足被17整除的数值即为所求解的结果,可通过BREAK语句跳出循环。(如果使循环控制变量从小到大逐步增加,则循环次数将大大增加,程序执行效率将下降。) PRINT ‘1-3000之间能被17整除的最大数值为:’ +CAST(@i AS CHAR(4)) DECLARE @s INT, @i INT SELECT @s=0, @i=3000 WHILE @i>=1 BEGIN

IF @i=0 BEGIN

PRINT ‘1-3000之间能被17整除的最大数值为:’ + CAST(@i AS CHAR(4)) BREAK END @i = @i-1 END

Transact-SQL语句基础2

1. 利用Transact-SQL语句声明一个长度为16的nchar型变量bookname,并赋初值为“SQL Server数据库编程”,打印该变量。

2. 编程求50-100之间的所有能被3整除的奇数之和。

3. 编写程序,声明CHAR型变量@ch,并赋初值。判断字符变量@ch中存放的是字母、数字字符还是其他字符,并输出相关信息。(提示:UPPER函数可以将小写字母转换为大写字母)

4. 编写程序,求解如下分数序列的前20项之和并打印输出结果。

S=2/1+3/2+5/3+8/5+13/8+21/13+…

分析数列的规律:后一项的分子为前一项的分子和分母之和,后一项的分母则为前一项的分子,通过循环即可实现累加。注意:声明分子和分母为浮点型数据NUMERIC(20,7).

5.查询编号为c06108, c08106, c05109课程的学生总评成绩等级,平时成绩usually*0.2+期末成绩final*0.8>=90的为优秀,80-90为良好,70-80为中等,60-70为及格,<60为不及格。(提示:使用CASE …END语句)

数据检索1

1. 查询course表中所有的记录。 2. 查询student表中女生的人数。

3. 查询teacher表中每一位教授的教师号、姓名和专业名称。

4. 利用现有的表生成新表,新表中包括学号、学生姓名、课程号和总评成绩。其中:总评成绩=final*0.8+usually*0.2

5. 查询student表中所有年龄大于20岁的男生的姓名和年龄。 6. 查询计算机学院教师的专业名称。

7. 查询Email使用126邮箱的所有学生的学号、姓名和电子邮箱地址。 8. 查询score表中选修’c05109’或’c05103’课程,并且课程期末成绩在90~100分之间的学生姓名和期末成绩。

9. 查询student表中所有学生的基本信息,查询结果按班级号classno升序排列,同一班级中的学生按入学成绩point降序排列。 10. 查询选修’c05109’课程,并且期末成绩在前5名的学生学号、课程号和期末成绩。(提示:TOP 5)

联系客服:779662525#qq.com(#替换为@) 苏ICP备20003344号-4