admin 管理员组文章数量: 887031
2023年12月19日发(作者:穿梭时空的侠客系统)
实验1数据库操作
1.
创建数据库:
操作1.1:创建一个test数据库,其主数据文件逻辑名test_data,物理文件名test_,初始大小
10MB,最大尺寸为无限大,增长速度1MB;数据库FI志文件逻辑名称为testjog,物理文件名为,
初始大小为1MB,最大尺寸为5MB,增长速度为10%o
2.
查看数据库属性:
操作1.2:使用T-SQL语句查看数据库test属性
3.
删除数据库:
操作1.3:使用T-SQL语句删除数据库test
实验2表操作
1.
创建表:
操作2.1:创建学生表:
表名:student
属性列 数据类型 长度
说明:学生基本信息表
空值 列约束 说明
学生学号
学生姓名
stjd
st nm
st sex
st birth
st score
st date
st from
st dpid
st mnt
nVarChar
nVarChar
nVarChar
9
8
2
Not Null
PK
Not Null
Null
学生性别
出生日期
datetime
int
Null
Null
入学成绩
入学日期
datetime
nChar
nVarChar
tinyint
Null
20
2
Null
学生来源
所在系编号
Null
Null
学生职务
操作2.2:创建课程信息表:
表名:couse
属性列 数据类型
说明:课程信息表
长度 空值 列约束 说明
课程编号
课程名称
cs id
cs_nm
cs tm
cs_sc
表名:slt couse
属性列
nVarChar
nVarChar
4
20
Not Null
PK
Not Null
Null
Null
int
int
课程学时
课程学分
操作2.3:创建选课表:
说明:选课表
数据类型 长度 空值 列约束 说明
课程编号
学生编号
课程成绩
cs id
st id
score
sitdate
表名:depl
属性列
nVarChar
nVarChar
4
9
Not Null
Not Null
FK
FK
int
datetime
Null
Null
选课日期
操作2.4:创建院系信息表:
数据类型 长度
说明:院系信息表
空值~列约束
dp id
dp nm
dp drt
dt tel
nVarChar
nVarChar
nVarChar
nVarChar
2
20
8
12
Not Null
系编号
院系名称
Not Null
Null
Null
院系主任
联系电话
2.
修改表结构:
(1)
向表中添加列:
操作2.5:为klepl”表添加<tdp_counC,列(数据类型为nvarchar,长度为3,允许为空)
(2)
修改列数据类型:
操作2.6:修改“dept”表的“dp_count”列数据类型为int
(3)
删除表中指定列:
操作2.7:删除“dept”表的<<dp_counf,列
3.
删除表
操作2.8:删除“dept"表
4.
向表中输入数据记录
操作2.9:分别向“student”表、“couse”表、“slt_couse”表、“dept”表中输入数据记录
实验3数据完整性
1.
空值约束(NULL )
操作3.1 :将student表屮的st_sex列属性更改为NOT NULL
2.
默认值约束(DEFAULT )
操作3.2:将student表屮的st_from列默认值设置为“陕西省”
3.
默认值对象
操作3.3:创建默认值对象df_today为当前口期,并将其绑定到slt_couse表中的sitdate列,然后取消 绑定,最后删除默认值对彖df_today0
4.
检査约束(CHECK )
操作3.4:将slt_couse表屮的score列的检查约束设置为>二0 .fi.<=100
5.
规则约束对象
操作3.5:创建规则约束对象rl_sex,用于检查性别的取值仅限于“男”和“女”,并将其绑定到student
表中的st_sex列,然后取消绑定,最后删除规则约束对彖rl_sexo
6.
主键
操作3.6:将dep(表中的dp_id列设置为主键
7.
唯一性约束(UNIQUE )
操作3.7:将dept表屮的dp_nm列设置为唯一性约束
8.
标识列
操作3.8:向slt_couse表中添加标识列id,第1行默认值为1,相邻两个标识列间的增量为1
9.
外键(FOREIGN KEY )
操作3.9:被参照表为dept,参照表为student
实验4数据更新
1.
表中插入数据
操作4.1:向dep(表插入一条记录,系号11,系名自动控制系,系主任为李其余,电话81234567
操作4.2:向student表插入一条记录,学号070201001,姓名为王小五,性别为男,出生日期为1990
年9月9日,系号为11,其余字段为NULL或默认值
操作4.3:向couse表插入一条记录,课程号1234,课程名为操作系统,其余字段为NULL或默认值
操作4.4:向slt_couse表插入一条记录,课程号1234,学名070201001,其余字段为NULL或默认值
2.
修改表中数据
操作4.5:修改student表记录,将王小五的入学成绩改为88
操作4.6:修改couse表记录,将所有记录的学分改为4,学时改为64
操作4.7:修改slt_couse表记录,将课程号为1234,学名为070201001的记录的成绩改为77
3.
删除表中数据
操作4.&删除slt_couse表记录,将课程号为1234,学名为070201001的记录删除
操作4.9:删除couse表记录,将课程号为1234的记录删除
实验5数据查询(1〉——简单查询
(1)
查询表中所有的列
操作5.1:查询所有系的信息
(2)
查询表中指定列的信息
操作5.2:查询所有的课程号与课程名称
(3)
在查询列表中使用列表达式
操作5.3:在查询student表时使用列表达式:入学成绩+400
(4)
重新命名查询结果
操作5.4:使用AS关键字为dept表中属性指定列名:系号、系名、系主任、联系电话
操作5.5:使用号为couse表中属性指定列名:课程号、课程名、学时(=cs_sc*16).学分
(5)
增加说明列
操作5.6:查询dep(表的系号、系名和系主任,向查询结果屮插入说明列:系号、系名和系主任
(6)
查询列表屮使用系统函数
操作5.7:显示所有学生的学号、姓名、性别和入学年份
操作5.8:显示所有学生学号、姓名、性别和班级(学号前6位)
(7)
消除查询结果中的重复项
操作5.9:显示所有学生班级
(8)
取得查询结果的部分行集
操作5.10:显示前5条学生记录信息
操作5.11:显示前25%条学生记录信息
操作5.12:显示前n条学生记录信息,n为局部变量
实验6数据查询(2》——条件查询
1.
使用关系表达式表示查询条件
操作6.1:查询dep(表屮系号为11的院系信息
操作6.2:查询student表中11系的学生学号、姓名、性别和所在系编号
操作6.3:查询student表中2008年及以后入学的学生信息
操作6.4:在查询student表080808班学生的学号、姓名、性别和入学成绩
2.
使用逻辑表达式表示査询条件
操作6.5:査询student表中非11系的学生信息
操作6.6:查询选修了
1002号课程且成绩在60以下的学生学号
操作6.7:查询2007年入学的11系所有男生信息
操作6.8:查询11系和12系的学生信息
操作6.9:查询11系和12系所有2007年入学的学生信息
3.
使用LIKE关键字进行模糊査询
操作6.10:查询所有“计算机”开头的课程信息
操作6.11:查询所有由三个字组成的“王"姓学生信息
操作6.12:查询所有课程名中包含“信息叩勺课程信息
操作6.13:查询学生姓名介于王姓到张姓的信息
4.
使用BETWEEN-AND关键字进行査询
操作6.14:查询在1989.7.1到1990.6.30之间出生的学生信息
操作6.15:查询选修了
1001号课程且成绩在60到80之间的学生选课信息
5.
使用IN关键字进行查询
操作6.16:查询11系、12系、13系的学生信息
操作6.17:查询所有张,王,李,赵姓的学生的学号、姓名、性别
6.
使用[NOT] NULL关键字进行查询
操作6.18:查询所有生源为非空的学生信息
操作6.19:查询选修了
1001号课程且成绩为空的学生选课信息
实验7数据查询(3) ——查询排序与查询结果存储
操作7.1:查询课程信息,按课程名称降序排序
操作7.2:查询选修了
1001号课程成绩非空的学生学号和成绩,并按成绩降序排序
操作7.3:查询11系学生学号、姓名和年龄,按年龄升序排序
操作7.4:查询学生信息,按姓名升序排序,再按系号降序排序
操作7.5:创建学生表副本studentOl,仅保留学生学号、姓名和性别
操作7.6:查询陕西籍学生,将结果保存在新表st_shanxi
操作7.7:查询选修了
1001号课程学生的选课信息,按学号升序排序,将结果保存在新表sit 1001
操作7.8:用局部变量@stage保存学生张三的年龄
操作79用局部变M@name和@$1$32保存070101班按学号排序后最后一个学生的姓名和入学成绩
实验8数据查询(4) ——查询统计与汇总
操作8.1:查询课程总数
操作&2:查询选修1001号课程的学生人数
操作&3:查询被选修课程的数量
操作&4:查询选修070101班学生的平均入学成绩
操作&5:查询070101001号学生选修课程的数量、总分以及平均分
操作8.6:查询选修1001号课程的学生人数、最髙分、最低分和平均分
操作&7:求各个课程号和相应的选课人数
操作&8:统计各班人数
操作&9:依次按班级、系号对学生进行分类统计人数、入学平均分
操作&10:查询选修了均分在75以上的课程号及均分
操作8.11:查询选修了
2门以上课程的学生学号
操作8.12:明细汇总年龄<20的学生,并汇总学生数量、平均年龄
操作8.13:按班级明细汇总成绩<85分的学生,汇总学生数、均分
实验9数据查询(5) ——连接查询
操作9.1:用SQL Server形式连接查询学生学号、姓名、性别及其所选课程编号 操作9.2:用ANSI形式连接查询学生学号、姓名、性别及其所选课程编号
操作9.3:用SQLServer形式连接查询学生学号、姓名及英所选课程名称及成绩
操作9.4:用ANSI形式连接查询学生学号、姓名及其所选课程名称及成绩
操作9.5:查询选修了
1002课程的学生学号、姓名及1001课程成绩
操作9.6:查询选修了 “数据结构”课程的学生学号、姓名及课程成绩
操作9.7:用左外连接查询没有选修任何课程的学生学号、姓名
操作9.8:用右外连接查询选修各个课程的学生学号
实验10数据查询(6)——子查询
操作10.1:用子查询对各班人数进行查询(新增列)
操作102用子查询对各课程的选课人数进行查询(新增列)
操作10.3:查询选修了
1002课程成绩不及格的学生的学号、姓名和性别,并按姓名升序排序 通过子查询实现:一一使用:EN关键字
通过子查询实现:一一使用比较运算符
操作10.4:查询“东方红”同学所在班的学生信息,并按姓名降序排序
通过子查询实现:一一1N运算符
通过自连接查询实现:
——JOIN
操作10.5:查询其它班比070511班某一学生的1002号课程成绩高的学生信息(ANY/ALL)
操作10.6:查询其它班比070511班任一学生的1002号课程成绩高的学生信息(ANY/ALL)
操作10.7:查询大于等于6()分且且比1003课程平均成绩低的学生课程信息(Between…And)
操作10.8:查询系主任为“赵虎”的系的所有学生信息
通过子查询实现:一一IN运算符
通过子查询实现:一一=运算符
实验11数据查询(7〉——数据更新与子查询
操作11.1:将070511班所有学生信息插入到表studentOl (st_idz st_nm, st_sex)
操作
11.2:生成
1002
号课程的成绩单
student02(st_id,st_nm, score)
操作11.3:将有不及格成绩的学生的st_mnt值更改为3
操作11.4:将没有被选修的课程的学分更改为0
操作11.5:删除5系学生的选课信息
操作11.6:删除学分为0的选课信息
版权声明:本文标题:SQLServerSQL实验与练习题 内容由网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://www.freenas.com.cn/jishu/1702976185h438136.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论