表的创建与管理1.docx
《表的创建与管理1.docx》由会员分享,可在线阅读,更多相关《表的创建与管理1.docx(15页珍藏版)》请在冰豆网上搜索。
![表的创建与管理1.docx](https://file1.bdocx.com/fileroot1/2022-10/28/9b1a8b5f-f4ab-4161-a1c3-097d98b75655/9b1a8b5f-f4ab-4161-a1c3-097d98b756551.gif)
表的创建与管理1
学生课程实验报告书
级系
专业班
学号姓名
--学年第学期
实验项目:
《表的创建与管理》
实验时间:
实验原理:
1、使用T-SQL语句创建数据库、数据表和`数据表完整性约束的定义。
2、熟悉表的结构和列所使用的数据类型。
3、应用数据表完整性含义及其定义的方法。
实验仪器:
1、操作系统:
WindowsXP或Windows7
2、数据库管理系统:
SQLServer2005
实验内容
练习前,先附加“教务管理系统”,在“教务管理系统”的数据库中进行一下查询:
Ø单表查询
1、在“学生信息”表中,以列名显示方式,查询学生信息。
2、交换列的显示顺序,查询查询“学生信息”表中所有学生的学号、姓名、政治面貌和籍贯信息。
列标题显示方式如下:
①(学号、姓名、政治面貌、籍贯)
②(姓名、学号、籍贯、政治面貌)
3、对比不使用DISTINCT和使用DISTINCT,查询“学生信息”表的“籍贯”列中的信息。
4、查询列表中使用计算列:
查询“成绩表”中学生成绩信息,把成绩减少10分显示,同时显示编号、学号、调整前的成绩(列标题:
学号、课程编号、调整前成绩、调整后成绩)。
5、WHERE子句的使用
1)从“学生信息”表中,查询出“籍贯”为“福建”的学生的学号、姓名、性别、民族和籍贯信息。
2)从“学生信息”表中,查询出“籍贯”不是“福建”的学生的学号、姓名、性别、民族和籍贯信息。
3)从“成绩表”中,查询出“成绩”小于60的学生的学号、姓名信息。
4)从“学生信息”表中,查询出“籍贯”为“河南”并且“民族”为“汉”的学生的学号、姓名、性别、民族和籍贯信息。
5)从“学生信息”表中,查询出“籍贯”为“河南”或者“上海”的学生的学号、姓名、性别、民族和籍贯信息。
6)在“成绩表”中,查询出成绩在70与80之间的学生的编号、学号、课程编号和成绩信息。
7)从“学生信息”表中,查询出“籍贯”是“湖南”、“湖北”和“江西”的学生的学号、姓名、性别、民族和籍贯信息。
8)从“学生信息”表中,查询出除“籍贯”是“湖南”、“湖北”和“江西”以外的学生的学号、姓名、性别、民族和籍贯信息。
9)查询“学生信息”表中姓名包含“红”字的学生的学号、姓名、性别、民族、籍贯和班级编号信息。
10)查询“学生信息”表中姓“徐”的学生的学号、姓名、性别、民族、籍贯和班级编号信息。
11)在“教务管理系统”数据库中,查询还未分配班主任的班级信息。
6、ORDERBY子句的使用
1)从数据库“教务管理系统”的“班级信息”表中,按照班级的人数进行降序排列。
2)从数据库“教务管理系统”的“班级信息”表中,按照年级进行升序排列,年级相同的再按班级人数进行降序排列。
7、聚集函数的使用
1)在“教务管理系统”数据库的“成绩”表中,查询考试课程数。
2)在“教务管理系统”数据库的“成绩”表中,查询课程编号为‘12’课程的总分。
3)在“教务管理系统”数据库的“成绩”表中,查询成绩最高的。
4)在“教务管理系统”数据库的“成绩”表中,查询课程编号为‘12’课程成绩最低的。
8、groupby年级
1)在“教务管理系统”数据库的“成绩”表中,按照学号分组,查询学生课程成绩都大于等于80课程数。
2)在“教务管理系统”数据库的“成绩”表中,按照学号分组,查询学生总成绩,要求总成绩大于等于150。
Ø连接查询
1、在“教务管理系统”中,课程“政治经济学(A)(注)”的上课地点
2、查询每个学生及其选修课程的情况
3、在“教务管理系统”中,查询计算机专业的学生以及所选修的课程
4、在“教务管理系统”中,查询出课程成绩在90以上的学生信息和相应的课程名称
5、在“教务管理系统”中,查询出与“徐红’在同一个班级学习的学生。
6、在“教务管理系统”数据库中,根据相关表的内容,查询平均成绩大于70的课程信息
实验步骤(纸张不够写可另外加纸并应装订):
单表查询
SELECT*
FROM学生信息
SELECT学号,姓名,政治面貌,籍贯
FROM学生信息
SELECT姓名,学号,籍贯,政治面貌
FROM学生信息
SELECT籍贯
FROM学生信息
SELECTDISTINCT籍贯
FROM学生信息
SELECT学号,课程编号,成绩调整前成绩,成绩-10调整后成绩
FROM选课表
SELECT学号,姓名,性别,民族,籍贯
FROM学生信息
WHERE籍贯='福建'
SELECT学号,姓名,性别,民族,籍贯
FROM学生信息
WHERE籍贯!
='福建'
SELECT选课表.学号,姓名
FROM选课表,学生信息
WHERE成绩<60
SELECT学号,姓名,性别,民族,籍贯
FROM学生信息
WHERE籍贯='河南'AND民族='汉'
SELECT学号,姓名,性别,民族,籍贯
FROM学生信息
WHERE籍贯='河南'OR籍贯='上海'AND民族='汉'
SELECT学生信息.姓名,学生信息.学号,选课表.课程编号,选课表.成绩
FROM选课表,学生信息
WHERE成绩BETWEEN70AND80
SELECT学号,姓名,性别,民族,籍贯
FROM学生信息
WHERE籍贯='湖南'OR籍贯='湖北'OR籍贯='江西'
SELECT学号,姓名,性别,民族,籍贯
FROM学生信息
WHERE姓名LIKE'__红%'
SELECT学号,姓名,性别,民族,籍贯
FROM学生信息
WHERE姓名LIKE'徐%'
SELECT*
FROM班级信息
WHERE班主任ISNULL
SELECT*
FROM班级信息
ORDERBY人数DESC
SELECT*
FROM班级信息
ORDERBY年级ASC,人数DESC
SELECT课程编号
FROM选课表
SELECTSUM(成绩)总分
FROM选课表
WHERE课程编号='12'
SELECTMAX(成绩)最高成绩
FROM选课表
SELECTMIN(成绩)最低成绩
FROM选课表
WHERE课程编号='12'
SELECTCOUNT(课程编号)成绩都大于的课程数
FROM选课表
WHERE成绩>=80
GROUPBY学号
SELECTCOUNT(成绩)学生总成绩
FROM选课表
GROUPBY学号
HAVINGSUM(成绩)>=150
SELECT课程表.上课地点
FROM课程信息,课程表
WHERE课程名称='政治经济学(A)(注)'
SELECT学生信息.姓名,选课表.*
FROM学生信息,选课表
WHERE学生信息.学号=选课表.学号
SELECT姓名,课程名称
FROM学生信息,选课表,课程信息,班级信息
WHERE学生信息.学号=选课表.学号AND
选课表.课程编号=课程信息.课程编号AND
学生信息.班级编号=班级信息.班级编号AND
班级信息.班级名称LIKE'计算机%'
SELECT学生信息.学号,姓名,课程名称
FROM学生信息,选课表,课程信息
WHERE学生信息.学号=选课表.学号
AND选课表.课程编号=课程信息.课程编号
AND选课表.成绩>=90
SELECTxs1.*
FROM学生信息xs1,学生信息xs2
WHERExs1.班级编号=xs2.班级编号
ANDxs2.姓名='徐红'
SELECTa.学号,姓名,班级编号,课程编号,成绩
FROM学生信息a,选课表b
WHEREa.学号=b.学号
AND成绩>ANY(SELECTAVG(成绩)FROM选课表)
SELECTDISTINCTxs.学号,姓名
FROM学生信息xs,选课表xk
WHERExs.学号=xk.学号
ANDxk.成绩<60
实验总结:
通过本次实验更加熟悉了SQLServer操作,对SQL的语句更加有印象、对表的基本操作、用户定义数据类型和默认值操作有了更深刻的认识。
比如
SELECTxs.*
FROM学生信息xs