数据库SQL实验题目
数据库SQL实验题目(14-15-1)

实验一数据定义操作●实验目的1.掌握数据库和表的基础知识2.掌握使用创建数据库和表的方法3.掌握数据库和表的修改、查看、删除等基本操作方法●实验内容和要求一、数据库的创建在开始菜单中,启动SQl Server 程序中的“SQL Server Management Studio”,在对象资源管理器窗口中,右键单击“数据库”,选择“新建数据库”,创建成绩管理数据库Grademanager,要求如下表所示:Grademanager数据库参数表二、表的创建、查看、修改和删除1.表的创建在Grademanager数据库中,右键单击“表”,选择“新建表”命令,创建如下表所示的表:(1)Student表的表结构特别注意:为属性Ssex设置约束,需选中属性Ssex行,然后单击菜单中的“表设计器”,选择“CHECK 约束”命令,然后按照图1进行设置。
图1 设置性别的约束(2)Course表(课程名称表)的表结构(3)SC表(成绩表)的表结构特别注意:①为属性Degree 约束,可参照属性Ssex进行设置,“CHECK约束对话框”中的表达式为Degree>=1 And Degree<=100②为SC表设置外键Sno和Cno的方法:右键单击表SC,选择“设计”命令,然后选择菜单“表设计器”中的“关系”命令,打开“外键关系”窗口,选择“添加”按钮,然后单击“表和列规范”后的按钮,按照图2进行设置,即可将SC表中的Cno属性设置为外键。
按照相同的方法,将属性Sno也设置为外键。
图2为SC表设置外键Cno2.向上述表中输入如下数据记录学生关系表Student (右键单击表Student ,选择“编辑前200行”)课程关系表Course 成绩表SC3.修改表结构(找到操作的方法即可,不需要真正地修改表中的属性) (1)向student 表中增加“入学时间”列,其数据类型为日期型 (2)将student表中的sdept 字段长度改为20 (3)将student 表中的Speciality 字段删除思考题1. SQL Server 的数据库文件有几种?扩展名分别是什么? 2. 如何实现数据库的备份和还原?2.在定义基本表语句时,NOT NULL 参数的作用是什么? 3.主码可以建立在“值可以为NULL ”的列上吗?实验二 简单查询● 实验目的1. 掌握SELECT 语句的基本用法2. 使用WHERE 子句进行有条件的查询3. 掌握使用IN 和NOT IN ,BETWEEN …AND 和NOT BETWEEN …AND 来缩小查询范围的方法4. 掌握聚集函数的使用方法5. 利用LIKE 子句实现字符串匹配查询6. 利用ORDER BY 子句对查询结果排序7. 利用GROUP BY 子句对查询结果分组● 实验内容和要求一、表结构修改1.在实验一的所建立的数据库中增加Teacher 表,结构如下:2.在实验一的所建立的数据库中增加Teaching 表,表结构如下: Teaching 表(授课表)的表结构3.向上述两表中输入如下数据记录教师表Teacher 授课表Teaching二、完成下面查询 1.查询所有男生信息2.查询年龄大于24岁的女生学号和姓名3.查询所有教师的Tname、Tdept4.查询“电子商务”专业的学生姓名、性别和出生日期5.查询成绩低于90分的学生学号及课号,并按成绩降序排列6.查询Student表中所有的系名7.查询“C01”课程的开课学期8.查询成绩在80分至90之间的学生学号及课号9.统计有学生选修的课程门数10.查询成绩为77,88或99的记录11.计算“C02”课程的平均成绩12.输出有成绩的学生学号13.查询所有姓“刘”的学生信息14.统计输出各系学生的人数15.查询选修了“C03”课程和学生的学号及其成绩,查询结果按分数的降序排列16.查询各个课程号及相应的选课人数,并为选课人数取别名为“人数”17.统计每门课程的选课人数和最高分,并为选课人数和最高分分别取别名为“人数”、“最高分”18.统计每个学生的选课门数和考试总成绩,并为选课门数和总成绩分别取别名为“门数”、“总成绩”,并按选课门数降序排列。
数据库SQL实验题目

实验一数据库和表的建立●实验目的1.掌握数据库和表的基础知识2.掌握使用创建数据库和表的方法3.掌握数据库和表的修改、查看、删除等基本操作方法●实验内容和要求一、数据库的创建在开始菜单中,启动SQl Server 程序中的“SQL Server Management Studio”,在对象资源管理器窗口中,右键单击“数据库”,选择“新建数据库”,创建成绩管理数据库Grademanager,要求如下表所示:Grademanager数据库参数表二、表的创建、查看、修改和删除1.表的创建在Grademanager数据库中,右键单击“表”,选择“新建表”命令,创建如下表所示的表:(1)Student表的表结构特别注意:为属性Ssex设置约束,需选中属性Ssex行,然后单击菜单中的“表设计器”,选择“CHECK 约束”命令,然后按照图1进行设置。
图1 设置性别的约束(2)Course表(课程名称表)的表结构(3)SC表(成绩表)的表结构特别注意:①为属性Degree 约束,可参照属性Ssex进行设置,“CHECK约束对话框”中的表达式为Degree>=1 And Degree<=100②为SC表设置外键Sno和Cno的方法:右键单击表SC,选择“设计”命令,然后选择菜单“表设计器”中的“关系”命令,打开“外键关系”窗口,选择“添加”按钮,然后单击“表和列规范”后的按钮,按照图2进行设置,即可将SC表中的Cno属性设置为外键。
按照相同的方法,将属性Sno也设置为外键。
图2为SC表设置外键Cno2.向上述表中输入如下数据记录学生关系表Student (右键单击表Student ,选择“编辑前200行”)课程关系表Course 成绩表SC3.修改表结构(找到操作的方法即可,不需要真正地修改表中的属性) (1)向student 表中增加“入学时间”列,其数据类型为日期型 (2)将student表中的sdept 字段长度改为20 (3)将student 表中的Speciality 字段删除思考题1. SQL Server 的数据库文件有几种?扩展名分别是什么? 2. 如何实现数据库的备份和还原?2.在定义基本表语句时,NOT NULL 参数的作用是什么? 3.主码可以建立在“值可以为NULL ”的列上吗?实验二 单表查询● 实验目的1. 掌握SELECT 语句的基本用法2. 使用WHERE 子句进行有条件的查询3. 掌握使用IN 和NOT IN ,BETWEEN …AND 和NOT BETWEEN …AND 来缩小查询范围的方法4. 掌握聚集函数的使用方法5. 利用LIKE 子句实现字符串匹配查询6. 利用ORDER BY 子句对查询结果排序7. 利用GROUP BY 子句对查询结果分组● 实验内容和要求一、表结构修改1.在实验一的所建立的数据库中增加Teacher 表,结构如下:2.在实验一的所建立的数据库中增加Teaching 表,表结构如下: Teaching 表(授课表)的表结构3.向上述两表中输入如下数据记录教师表Student 授课表Teaching二、完成下面查询 1.查询所有男生信息2.查询年龄大于24岁的女生学号和姓名3.查询所有教师的Tname、Tdept4.查询“电子商务”专业的学生姓名、性别和出生日期5.查询成绩低于90分的学生学号及课号,并按成绩降序排列6.查询Student表中所有的系名7.查询“C01”课程的开课学期8.查询成绩在80分至90之间的学生学号及课号9.统计有学生选修的课程门数10.查询成绩为77,88或99的记录11.计算“C02”课程的平均成绩12.输出有成绩的学生学号13.查询所有姓“刘”的学生信息14.统计输出各系学生的人数15.查询选修了“C03”课程和学生的学号及其成绩,查询结果按分数的降序排列16.查询各个课程号及相应的选课人数,并为选课人数取别名为“人数”17.统计每门课程的选课人数和最高分,并为选课人数和最高分分别取别名为“人数”、“最高分”18.统计每个学生的选课门数和考试总成绩,并为选课门数和总成绩分别取别名为“门数”、“总成绩”,并按选课门数降序排列。
SQL数据库实验一 简单数据查询

实验一简单数据查询1.从student表中检索学生所在班级编码,并消除重复行selectdistinct ClassNo from Student2.检索课程表(course)中的教师名、课程号、课程名称,要求检索结果按照教师名降序排序select Teacher '教师名',CouNo'课程号',CouName'课程名称'from Courseorderby Teacher desc3.检索课程表(course)信息,显示课程号大于’005’的课程编号及课程名称,只显示结果中前15行selecttop 15 CouNo'课程号',CouName'课程名称'from Coursewhere CouNo>0054.检索每位教师所上课程的平均报名人数,只显示平均报名人数在25到35人之间的教师select Teacher '教师名'from Coursegroupby Teacherhaving cast(avg(WillNum)asdecimal(5,2))between 25 and 355.查看部门编号为“03”的部门名称。
select DepartNamefrom Departmentwhere DepartNo='03'6.查看部门名称中包含有“工程”两个字的系的全名。
select DepartNamefrom Departmentwhere DepartName like'%工程%'7.显示共有多少个部门。
select count(*)'部门总数'from Department8.显示“01”年级共有多少个班级。
select count(*)'01级共有班级数'from Classwhere ClassNo like'2001____'9.查看在“周二晚”上课的课程名称和教师。
SQL实验的题目和答案全解

数据库实验总汇二、使用SQL Server 工具在管理数据库系统和运行SQL查询的两个主要工具是企业管理器和查询分析器三、实验目的1.熟悉数据库的交互式SQL工具。
2.熟悉通过SQL对数据库进行操作。
3.完成上机练习。
四、实验内容(打※为选做题)Part A1.使用CREATE语句创建数据库2. 使用CREATE语句创建基本表3.更改基本表的定义,增加列,修改列的数据类型。
4.创建表的索引,取消表的索引1、数据库的建立使用SQL 语句建立关系数据库schooldemo2、基本表的建立在数据库schooldemo下,使用SQL 语句建立关系数据库表:人员表PERSON(Pno,Pname, Page),房间表ROOM(Rno,Rname,Rarea),表PR(Pno,Rno,Date).其中,表PERSON :Pno(CHAR(8),主码,非空,唯一),Pname(CHAR(20),非空),Page(INT);表ROOM:Rno(CHAR(8),主码,非空,唯一),Rname(CHAR(20)),Rarea(FLOAT (10));表PR:Pno(CHAR(8),非空,唯一),Rno(CHAR(8),非空,唯一),Date (DATETIME);(三个表之间有联系)3、更改基本表的定义,增加列,删除列,修改列的数据类型。
更改表PERSON,增加属性Ptype(类型是CHAR ,长度为10),把表ROOM中的属性Rname的数据类型改为长度为40。
4、创建表的索引,取消表的索引为ROOM表创建按Rno降序排列的索引创建PERSON表按Pname升序排列的唯一性索引取消PERSON表Pname升序索引5、删除表ROOM实验过程(1.a)1、数据库的建立使用SQL 语句建立关系数据库schooldemocreate database schooldemoon(name=schooldemo,filename='e:\123\school_data.mdf',size=5mb,maxsize=15mb,filegrowth=10%)log on(name=schooldemo_log,filename='e:\123\schooldemo.ldf',size=5mb,maxsize=15mb,filegrowth=4mb)2、基本表的建立在数据库schooldemo下,使用SQL 语句建立关系数据库表:人员表PERSON(Pno,Pname, Page),房间表ROOM(Rno,Rname,Rarea), 表PR(Pno,Rno,Date).其中,表PERSON :Pno(CHAR(8),主码,非空,唯一),Pname(CHAR(20),非空),Page(INT);表ROOM:Rno(CHAR(8),主码,非空,唯一),Rname(CHAR(20)),Rarea(FLOAT(10));表PR:Pno(CHAR(8),非空,唯一),Rno(CHAR(8),非空,唯一),Date(DATETIME);(三个表之间有联系)create table person(pno char (8)primary key,pname char (20),page int);create table room(rno char (8) primary key,rname char(20),rarea float(10));create table pr(pno char (8),rno char (8),date datetime,primary key(pno,rno),foreign key(pno) references person(pno),foreign key(rno) references room(rno));3、更改基本表的定义,增加列,删除列,修改列的数据类型。
SQL数据库上机实验题目和答案

SQL数据库上机实验题目和答案试用SQL的查询语句表达下列查询:1.检索王丽同学所学课程的课程号和课程名。
select Cno ,Cname from c where Cno in(select cno from sc where sno in (select sno from s where sname='王丽' ))2.检索年龄大于23岁的男学生的学号和姓名。
select sno,sname from swhere sex='男' and age>233.检索‘c01’课程中一门课程的女学生姓名select sname from swhere sex='女' and sno in(select sno from sc where cno='c01')4.检索s01同学不学的课程的课程号。
select cno from cwhere cno not in (select cno from sc where sno ='s01')5.检索至少选修两门课程的学生学号。
select sc.sno from s,scwhere s.sno=sc.snogroup by sc.snohaving count(/doc/6b7958374.html,o)>=26.每个学生选修的课程门数。
解法一:select so.sno sno,/doc/6b7958374.html,ount,s.sname from(select sc.sno sno,count(sc.sno) ccountfrom sc,swhere s.sno=sc.snogroup by sc.sno ) so,swhere s.sno=so.sno解法二:select sc.sno sno,s.sname,count(sc.sno) ccountfrom sc,swhere s.sno=sc.snogroup by sc.sno,sname7.求选修C4课程的学生的平均分。
SQL实验报告的八个题目

实验一:SQL Server数据库的安装【目的与要求】1.掌握SQL Server服务器的安装。
2.掌握企业管理器的基本使用方法。
3.掌握查询分析器的基本使用方法。
4.对数据库及其对象有一个基本了解。
【实验准备】1.了解SQL Server各种版本安装的软、硬件要求。
2.了解SQL Server支持的身份验证模式。
3.了解SQL Server各组件的主要功能。
4.对数据库、表和数据库对象有一个基本了解。
5.了解在查询分析器中执行SQL语句的方法。
【实验内容】1.安装SQL Server 根据软硬件环境。
2.利用企业管理器访问系统自带的pubs数据库(1)启动SQL Server服务管理器。
(2)以系统管理员身份登录到企业管理器。
(3)在企业管理器的树形目录中展开数据库,找到pubs并展开,则列出该数据库的所有对象,如表、视图、存储过程、默认和规则等。
(4)选中“表”,将列出pubs数据库的所有表(包括系统表和用户表),在此以用户表titles为例,选中该表,单击鼠标右键,弹出快捷菜单,执行“打开—返回所有行”菜单项,打开该表,查看其内容。
3.利用查询分析器访问pubs数据库的表。
【实验学时】4学时实验二:创建数据库表【目的和要求】1.了解SQL Server数据库的逻辑结构和物理结构。
2.了解表的结构特点。
3.了解SQL Server的基本数据类型。
4.学会在企业管理器中创建数据库和表。
5.学会使用T-SQL语句创建数据库和表。
【实验准备】1.要明确能够创建数据库的用户必须是系统管理员,或是被授权使用CREATE DATABASE语句的用户。
2.创建数据库必须要确定数据库名、所有者(即创建数据库的用户)、数据库大小(最初的大小、最大的大小、是否允许增长及增长的方式)和存储数据的文件。
3.确定数据库包含哪些表以及包含的各表的结构,还要了解SQL Server的常用数据类型,以创建数据库的表。
4.了解常用的创建数据库和表的方法。
SQL数据库实验和参考答案

数据库实验和参考答案上机实验七1.声明一个字符串型的局部变量,并对其赋值:‘我的变量’,然后显示出此值。
declare @a char(10)set @a='我的变量'--select @a as 变量的值print @a2.编程实现如下功能:1)声明两个整形的局部变量:@i1和@i2,对@i1赋初值:10,@i2的值为:@i1乘以5,再显示@i2的结果值。
declare @i1 int,@i2 intset @i1=10set @i2=@i1*5print @i22)用While语句实现5000减1,减2,……一直减到50的计算,并显示最终的结果。
declare @sum int,@i intset @sum=5000set @i=1while(@i<=50)beginset @i=@i+1endprint @sum3)输出100以内的素数。
declare @i smallint,@jsmallint,@k smallintset @i=2while(@i<=100)beginset @k=0set @j=2while(@j<@i)beginif(@i%@j=0)beginset @j=@Iendset @j=@j+1endif @k=0print @Iset @i=@i+1end4)将字符数在20以内的字符串变量C的值逆序输出。
要求输出界面为:declare @i varchar(20),@j int,@k varchar(20)set @j=1set @k=''while @j<=len(@i)beginset @k=substring(@i,@j,1) set @j=@j+1endprint '字符串C的值:'+@iprint 'C的逆序字符串:'+@k5)从SC表中查询所有学生的选课成绩情况,分别统计各分数段人数,并输出统计结果。
SQL数据库实验提纲练习题目SQL-2

实验提纲2 SQL 语言(2)一、按照教材75页的SPJ 数据库完成如下查询。
数据库完成如下查询。
(注:数据库已经建立好,参加附件spj ,只需还原即可,无需重新见表),只需还原即可,无需重新见表) 1、教材75页第5题(1)(2)(3)。
2、教材127页第5题全部。
题全部。
3、教材128页第11题全部。
(预习后完成)(预习后完成)4、查询所在城市为“上海”的所有工程的详细情况。
、查询所在城市为“上海”的所有工程的详细情况。
5、查询重量最轻的零件号码。
、查询重量最轻的零件号码。
6、找出供应商S1提供的零件的颜色。
提供的零件的颜色。
7、找出为工程J1和J2提供零件的供应商代码。
提供零件的供应商代码。
8、找出为工程J1提供红色零件的供应商代码。
提供红色零件的供应商代码。
9、找出为所在城市为上海或北京的工程提供红色零件的供应商代码。
、找出为所在城市为上海或北京的工程提供红色零件的供应商代码。
10、找出供应商与工程所在城市相同的供应商提供的零件代号。
、找出供应商与工程所在城市相同的供应商提供的零件代号。
11、找出上海的供应商提供给上海任一工程的零件的代号。
、找出上海的供应商提供给上海任一工程的零件的代号。
12、找出至少由一个和工程不在同一城市的供应商提供零件的工程代号。
、找出至少由一个和工程不在同一城市的供应商提供零件的工程代号。
13、找出上海供应商不提供任何零件的工程代号。
、找出上海供应商不提供任何零件的工程代号。
14、找出所有这样的一些二元组<city ,city>,使得第一个城市的供应商为第二个城市的工程提供零件。
个城市的工程提供零件。
15、找出所有这样的一些二元组<city ,city>,使得第一个城市的供应商为第二个城市的工程提供零件,但不检索两个city 值相同的二元组。
值相同的二元组。
16、按工程号递增的顺序列出每个工程购买的零件总量。
、按工程号递增的顺序列出每个工程购买的零件总量。
数据库实验1:SQL查询操作

数据库实验1:SQL查询操作题目:设有一个SPJ数据库,包括S,P,J,SPJ四个关系模式:S(SNO,SNAME,STATUS,CITY);P(PNO,PNAME,COLOR,WEIGHT);J(JNO,JNAME,CITY);SPJ(SNO,PNO,JNO,QTY)。
供应商表S由供应商代码(SNO)、供应商姓名(SNAME)、供应商状态(STATUS)、供应商所在城市(CITY)组成。
零件表P由零件代码(PNO)、零件名(PNAME)、颜色(COLOR)、重量(WEIGHT)组成。
工程项目表J由工程项目代码(JNO)、工程项目名(JNAME)、工程项目所在城市(CITY)组成。
工程项目表SPJ由供应商代码(SNO)、零件代码(PNO)、工程项目代码(JNO)、供应数量(QTY)组成,表示某供应商供应某种零件给某工程项目的数量为QTY。
今有若干数据如下:S表:SNO SNAME STATUS CITYS1 精益20 天津S2 盛锡10 北京S3 东方红30 北京S4 丰盛泰20 天津S5 为民30 上海P表:PNO PNAME COLOR WEIGHTP1 螺母红12P2 螺栓绿17P3 螺丝刀蓝14P4 螺丝刀红14P5 凸轮蓝40P6 齿轮红30J表:JNO JNAME CITY J1 三建北京J2 一汽长春J3 弹簧厂天津J4 造船厂天津J5 机车厂唐山J6 无线电厂常州J7 半导体厂南京SPJ表:SNO PNO JNO QTY S1 P1 J1 200S1 P1 J3 100S1 P1 J4 700S1 P2 J2 100S2 P3 J1 400S2 P3 J2 200S2 P3 J4 500S2 P3 J5 400S2 P5 J1 400S2 P5 J2 100S3 P1 J1 200S3 P3 J1 200S4 P5 J1 100S4 P6 J3 300S4 P6 J4 200S5 P2 J4 100S5 P3 J1 200S5 P6 J2 200S5 P6 J4 500首先进行创建数据库、表,插入数据等操作。
sql测试题和答案

sql测试题和答案在进行SQL数据库开发时,进行一些测试是非常重要的。
通过测试,我们可以验证数据库的正确性,保证数据的一致性,并且提前发现和解决潜在的问题。
本文将提供一些常见的SQL测试题目,并且给出相应的答案,帮助读者更好地理解SQL语言的使用和测试方法。
一、题目1:查询订单表中购买数量最多的商品名称和购买数量。
答案:```sqlSELECT product_name, MAX(quantity) AS max_quantityFROM ordersGROUP BY product_name;```二、题目2:查询每个部门的平均工资和人数,结果按平均工资降序排列。
答案:```sqlSELECT department, AVG(salary) AS avg_salary, COUNT(*) AS num_employeesFROM employeesGROUP BY departmentORDER BY avg_salary DESC;```三、题目3:查询没有订单的客户名称和联系方式。
答案:```sqlSELECT customer_name, contact_numberFROM customersWHERE customer_id NOT IN (SELECT DISTINCT customer_idFROM orders);```四、题目4:查询每个国家的订单数和总销售额,并按总销售额降序排列。
答案:```sqlSELECT country, COUNT(*) AS num_orders, SUM(total_amount) AS total_salesFROM ordersGROUP BY countryORDER BY total_sales DESC;```五、题目5:查询购买了所有商品的客户名称和联系方式。
答案:```sqlSELECT customer_name, contact_numberFROM customersWHERE customer_id IN (SELECT customer_idFROM ordersGROUP BY customer_idHAVING COUNT(DISTINCT product_name) = (SELECT COUNT(DISTINCT product_name)FROM products));```六、题目6:查询每个部门的最高工资和最低工资。
实验6-SQL-查询附答案

实验6-SQL-查询附答案实验六SQL 查询一、实验目的:1.熟练掌握SELECT语句的语法格式2.掌握联接的几种方法3.掌握子查询的表示和执行4.能够对SELECT查询结果进行分组、排序及统计5.能够运用T-SQL语句对表进行数据的插入、修改、删除6.能够通过导入/导出向导进行数据的导入导出二、实验内容:利用实验四中的数据库做如下操作:1.在“学生表”中,找出性别为“男”的学生记录,字段包括“姓名”、“出生日期”和“专业”。
2.在“课程表”中,找出“课程名”中包含“计算机”三个字的课程。
3.在“成绩表”中,找出“课程编号”为“001”的课程成绩前三名学生。
4.在“成绩表”、“学生表”和“课程表”中,找出“课程编号”为“001”的课程成绩在[80,90]之间的学生的姓名、课程名和成绩。
5.在“学生表”中,找出“专业”为“计算机软件”、“电子商务”专业的学生信息。
6.统计“计算机应用基础”课程的平均分。
7.查找各门课程的修课人数。
8.在“成绩表”中,找出课程编号为“001”的这门课程的所有学生的分数以及最高分、最低分和平均分。
9.找出所有女生的“计算机应用基础”这门课的成绩,包括字段:姓名、课程名、成绩。
10.查找“成绩表”中,课程编号为“001”的成绩高于平均分的所有学生的学号、姓名、课程名和成绩。
11.查找“成绩表”中,高于各门课程平均分的学生信息。
12.查找“课程表”中,没有被学生修课的课程信息。
13.将“课程表”中的课程编号为“001”的学分增加1学分。
14.删除学号为“20030101”学生的相关信息。
三、实验过程:启动“查询分析器”,在其文本窗口中输入相应的Transcat-SQL语句,分析并执行,观察输出结果。
1.Use 学生select 姓名,出生日期,专业 from 学生表 where 性别='男'2.use 学生select * from 课程表 where 课程名 like '%计算机%'3.use 学生select top 3 * from 成绩表 where 课程编号='001' order by 成绩 desc4.Use 学生select a.姓名,c.课程名,b.成绩 from 学生表 as a join 成绩表 as b on b.课程编号=001 and a.学号=b.学号 and b.成绩 between 80 and 90 join 课程表 as c on c.课程编号=b.课程编号5.use 学生select * from 学生表 where 专业 in ('计算机软件','电子商务')6.use 学生select avg(成绩)as 平均成绩 from 成绩表 as a join 课程表 as bon b.课程名='计算机应用基础' and b.课程编号=a.课程编号7.use 学生select 课程编号,count(学号)as 修课人数 from 成绩表 group by 课程编号8.use 学生select * from 成绩表 where 课程编号=001compute max(成绩),min(成绩),avg(成绩)9.use 学生select a.姓名,b.课程名,c.成绩 from 学生表 as a join 成绩表 as c on a.学号=c.学号 and a.性别='女'join 课程表 as bon b.课程编号=c.课程编号 and b.课程名='计算机应用基础'10.use 学生select a.学号,a.姓名,b.课程名,c.成绩 from 课程表 as b join 成绩表 as con b.课程编号=c.课程编号 and c.课程编号=001 and c.成绩>(select avg(成绩) from 成绩表 where c.课程编号=001)join 学生表 as a on a.学号=c.学号11.use 学生select * from 成绩表 as a where 成绩>(select avg(成绩) from 成绩表 as b where a.课程编号=b.课程编号)12.use 学生select * from 课程表 where not exists(select * from 成绩表 where 成绩表.课程编号=课程表.课程编号)13.use 学生update 课程表 set 学分=学分+1 where 课程编号=00114.use 学生delete 成绩表 where 学号='20030101'。
数据库实验书sql

数据库实验(SQL SERVER 2000)目录实验一数据库和表的简单操作实验二数据操纵语言的使用(一)实验三数据操纵语言的使用(二)实验四数据操纵语言的使用(三)实验五变量与数据类型的使用实验六运算符的使用实验七流程控制语句的使用实验八函数的使用实验九数据库和表的操作语句实验十索引和视图的使用实验十一存储过程的使用实验十二存储过程的高级操作及触发器的使用实验十三数据库的备份、还原与转换实验十四完整数据库产品设计本目录中,蓝色显示标题实验一--四,实验九、十、十三、十四为必做实验,其余红色标题显示实验为附加实验,扩展知识实验,为选作实验。
附录学生管理数据库简介此数据库为实验所用的主要数据库,有三张表,基本情况如(其中记录情况可自定):表一学生表注:学生表各字段类型如下:学号 char(4),姓名 varchar(10),性别 char(2),年龄 smallint ,系别varchar(12),班级 varchar(12)。
表二课程表注:课程表各字段类型如下:课程号 char(2),课程名称 varchar(20),学分 smallint,课时 smallint ,授课教师 varchar(10)。
表三成绩表实验题目:数据库和表的简单操作实验目的:熟练使用企业管理器对数据库和表进行简单操作实验内容:一、使用企业管理器新建一个数据库,名称为“学生管理数据库”,其主要数据文件大小为2M,次要数据文件大小为1M,日志文件大小为1M,存放位置为“D:\SQLServer”,其他选项都采用默认值。
二、在“学生管理数据库”中新建三张表,表名分别为:学生表、课程表和成绩表;其中各表结构如附录;要求:在上述三张表中建立主键约束(PK),各表主键分别为红色显示字段;在上述三张表中建立外键约束(FK),成绩表的学号字段外键参照学生表的学号字段,课程号字段外键参照课程表的课程号字段,并在设置约束时,选择级联删除和级联更新方式对主键表与外键表相互制约;(外键的含义是什么?审查时提问)在上述三张表中建立自定义约束(CK),性别字段和年龄字段的默认值分别为‘男’和18,性别取值为’男’或’女’,年龄取值范围18~30。
sql实验习题答案

sql实验习题答案SQL实验习题答案在学习SQL(Structured Query Language)时,习题是一种非常有效的学习方式。
通过实践操作,我们可以更好地理解SQL语言的各种概念和用法。
下面是一些常见的SQL实验习题及其答案,希望对大家的学习有所帮助。
1. 查询某个表的所有数据答案:SELECT * FROM 表名;2. 查询某个表的前n行数据答案:SELECT * FROM 表名 LIMIT n;3. 查询某个表中满足某个条件的数据答案:SELECT * FROM 表名 WHERE 条件;4. 查询某个表中某个字段的最大值答案:SELECT MAX(字段名) FROM 表名;5. 查询某个表中某个字段的最小值答案:SELECT MIN(字段名) FROM 表名;6. 查询某个表中某个字段的总和答案:SELECT SUM(字段名) FROM 表名;7. 查询某个表中某个字段的平均值答案:SELECT AVG(字段名) FROM 表名;8. 查询某个表中某个字段的记录数答案:SELECT COUNT(字段名) FROM 表名;9. 查询某个表中某个字段的记录数,并按照字段值进行分组答案:SELECT 字段名, COUNT(字段名) FROM 表名 GROUP BY 字段名;10. 查询某个表中满足多个条件的数据答案:SELECT * FROM 表名 WHERE 条件1 AND 条件2;11. 查询某个表中满足多个条件中的任意一个条件的数据答案:SELECT * FROM 表名 WHERE 条件1 OR 条件2;12. 查询某个表中满足某个条件,并按照某个字段进行排序的数据答案:SELECT * FROM 表名 WHERE 条件 ORDER BY 字段名;13. 查询某个表中满足某个条件,并限制结果的行数答案:SELECT * FROM 表名 WHERE 条件 LIMIT n;14. 查询某个表中满足某个条件,并跳过前n行的数据答案:SELECT * FROM 表名 WHERE 条件 OFFSET n;15. 查询某个表中满足某个条件,并按照某个字段进行分页显示答案:SELECT * FROM 表名 WHERE 条件 ORDER BY 字段名 LIMIT n OFFSET m;这些习题涵盖了SQL语言的基本操作和常用函数。
数据库实验报告 SQL语言

数据库原理及实验报告实验6 视图实验目的:1)掌握交互式创建、删除视图的方法2)掌握使用SQL创建、删除视图的方法3)掌握交互式更新视图的方法4)掌握使用SQL更新视图的方法实验内容6.1实验题目:创建视图实验过程:1)交互式创建视图VIEW_S2)交互式创建成绩视图VIEW_SCORETABLE3)使用SQL创建课程表视图VIEW_CTABLE 实验结果:6.2实验题目:修改视图实验过程:1)使用交互式方法把视图VIEW_S 中的字段SNO 删掉2)使用SQL 为视图VIEW_CTABLE 增加一个课时字段CT tiny int 实验结果:6.3实验题目:通过视图修改数据库数据实验过程:1)交互式通过修改视图VIEW_S中的数据来实现对其基本表S中数据的修改2)对视图VIEW_S执行INSERT语句,查看此视图的基本表S中数据的变化3)修改视图VIEW_S的定义,使其包含表S中的主键,再执行插入操作4)用SQL语句对视图VIEW_S执行DELETE操作,查看此视图的基本表S中数据的变化实验结果:6.4实验题目:删除视图实验过程:1)交互式删除视图VIEW_S2)使用SQL删除视图VIEW_CTABLE实验结果:实验7 数据查询实验目的:1,掌握从简单到复杂的各种数据查询。
包括,单表查询、多表连接查询、嵌套查询、集合查询。
2,掌握用条件表达式表示检索结果。
3,掌握用聚合函数计算统计检索结果。
实验7.1 单表查询实验目的:1,掌握指定列或全部列查询。
2,掌握按条件查询。
3,掌握对查询结果排序。
4,掌握使用聚集函数的查询。
5,掌握分组统计查询。
实验内容:1,指定或全部列查询。
2,按条件查询及模糊查询。
3,对查询结果排序。
4,使用聚集函数的查询。
5,分组统计查询。
实验7.2 连接查询实验目的:掌握设计一个以上数据表的查询方法。
多表之间的连接包括等值连接、自然连接、非等值连接、自身连接、自身连接、外连接和复合连接。
sql实践题目

sql实践题目SQL(Structured Query Language)是一种用于在关系型数据库中处理数据的标准化编程语言。
它可以用于从数据库中提取数据、插入、更新和删除数据、创建和管理数据库对象等。
在本文中,我们将探讨几个SQL实践题目,并给出相关参考内容。
1. 查询指定条件下的数据题目:查询一个名为"students"的表中,所有年龄大于等于18岁且成绩大于80分的学生的姓名和成绩。
解答:可以使用SELECT语句结合WHERE子句来实现该查询。
```sqlSELECT name, scoreFROM studentsWHERE age >= 18 AND score > 80;```这个查询语句将返回满足条件的学生的姓名和成绩。
2. 更新数据题目:将一个名为"products"的表中所有价格低于10美元的产品的价格提高10%。
解答:可以使用UPDATE语句结合WHERE子句来实现该操作。
```sqlUPDATE productsSET price = price * 1.1WHERE price < 10;```这个更新语句将会将所有价格低于10美元的产品的价格提高10%。
3. 插入数据题目:在一个名为"employees"的表中插入一条新数据,员工的姓名是"John Smith",部门是"Sales",工资是5000美元。
解答:可以使用INSERT INTO语句来实现该操作。
```sqlINSERT INTO employees (name, department, salary)VALUES ('John Smith', 'Sales', 5000);```这个插入语句将会在"employees"表中插入一条新数据。
4. 删除数据题目:删除一个名为"orders"的表中所有已经完成的订单。
sql实践题目

sql实践题目在这个SQL实践题目中,我们将讨论如何根据一个特定的数据库表格进行数据查询和操作。
这个题目将涉及到基本的SQL语句和操作,帮助您加深对SQL语言的理解和应用能力。
首先,我们有一个名为"students"的数据库表格,包含以下字段:学生ID (student_id)、学生姓名(student_name)、学生年龄(student_age)、学生性别(student_gender)、所在班级(class_id)。
任务一:查询所有学生的信息要完成这个任务,您需要使用SELECT语句从"students"表格中选择所有学生的信息。
SQL语句如下:SELECT * FROM students;这条语句将返回所有学生的信息,包括学生ID、学生姓名、学生年龄、学生性别和所在班级。
任务二:查询年龄大于18岁的学生信息要完成这个任务,您需要使用SELECT语句从"students"表格中选择年龄大于18岁的学生信息。
SQL语句如下:SELECT * FROM students WHERE student_age > 18;这条语句将返回所有年龄大于18岁的学生信息。
任务三:查询女生的信息要完成这个任务,您需要使用SELECT语句从"students"表格中选择女生的信息。
SQL语句如下:SELECT * FROM students WHERE student_gender = '女';这条语句将返回所有女生的信息。
任务四:查询学生的姓名和所在班级要完成这个任务,您需要使用SELECT语句从"students"表格中选择学生的姓名和所在班级。
SQL语句如下:SELECT student_name, class_id FROM students;这条语句将返回学生的姓名和所在班级信息。
SQL数据库实验三_简单查询(1)解答

whereyear(hiredate)=1991
13.查询9月出生的员工编号、姓名、出生日期、并按出生日期的降序输出。
SQL语句:
SELECTemployeeNo,employeeName,birthday
FROMEmployee
WHEREmonth(birthday)=9
ORDERBYbirthdayDESC
whensalary<2000then'低收入者'
whensalary>=2000andsalary<4000then'中等收入者'
whensalary>=4000then'高收入者'
end
fromEmployee
12.查询1991年被雇佣的职工号、姓名、性别、电话号码、出生日期以及年龄,如果电话号码为空,显示“不详”,出生日期按yyyy-mm-dd显示。
SQL语句:
SELECTemployeeNo,employeeName,sex,isnull(telephone,'不详')telephone,CONVERT(CHAR(10),birthday,120)birthday,year(getdate())-year(birthday)age
查询结果:
14.查询职工工资最高的前8个职工编号、职工姓名和工资。
SQL语句:
SELECTTOP8 employeeNo,employeeName,salary
FROMEmployee
ORDERBYsalaryDESC
查询结果:
15.查询职工工资按高低排序的前10%的职工编号、职工姓名和工资。
SQL语句:
数据库SQL实验题目

数据库SQL实验题⽬实验⼀数据库和表的建⽴●实验⽬的1.掌握数据库和表的基础知识2.掌握使⽤创建数据库和表的⽅法3.掌握数据库和表的修改、查看、删除等基本操作⽅法●实验容和要求⼀、数据库的创建在开始菜单中,启动SQl Server 程序中的“SQL Server Management Studio”,在对象资源管理器窗⼝中,右键单击“数据库”,选择“新建数据库”,创建成绩管理数据库Grademanager,要求如下表所⽰:Grademanager数据库参数表⼆、表的创建、查看、修改和删除1.表的创建在Grademanager数据库中,右键单击“表”,选择“新建表”命令,创建如下表所⽰的表:(1)Student表的表结构特别注意:为属性Ssex设置约束,需选中属性Ssex⾏,然后单击菜单中的“表设计器”,选择“CHECK 约束”命令,然后按照图1进⾏设置。
图1 设置性别的约束(2)Course表(课程名称表)的表结构字段名称数据类型长度精度⼩数位数是否允许Null值说明Cno Char 5 0 0 否课程号,主码Cname Varchar 20 0 0 否课程名(3)SC表(成绩表)的表结构字段名称数据类型长度精度⼩数位数是否允许Null值说明Sno Char 10 0 0 否学号,外码Cno Char 5 0 0 否课程号,外码Degree Decimal 5 5 1 是成绩,0~100之间特别注意:①为属性Degree 约束,可参照属性Ssex进⾏设置,“CHECK约束对话框”中的表达式为Degree>=1 And Degree<=100②为SC表设置外键Sno和Cno的⽅法:右键单击表SC,选择“设计”命令,然后选择菜单“表设计器”中的“关系”命令,打开“外键关系”窗⼝,选择“添加”按钮,然后单击“表和列规”后的按钮,按照图2进⾏设置,即可将SC表中的Cno属性设置为外键。
按照相同的⽅法,将属性Sno也设置为外键。
PTA沈师数据库原理——DB(10)_SQL实验题

PTA沈师数据库原理——DB(10)_SQL实验题R10-1 A1-3查询顾客表中所有不重复的城市 (2 分)select distinct Cityfrom customersR10-2 查询学⽣表所有学⽣记录 (2 分)select * from stuR10-3 查询图书表中所有记录 (2 分)select * from 图书R10-4 查询图书表中有哪些出版社,要求结果没有重复值 (2 分)select distinct 出版社 from 图书R10-5 在读者表中查询账号和姓名 (2 分)select 账号,姓名 from 读者R10-6 查询读者表中有哪些等级,结果中不能出现重复值 (2 分)select distinct 等级 from 读者R10-7 查询员⼯表全部信息 (2 分)select * from 员⼯R10-8 在顾客表中查询顾客编号,公司名称和所在城市这三项内容 (2 分)select 顾客编号,公司名称,城市 from 顾客R10-9 在顾客表中查询出现了那些城市,要求不显⽰重复值 (2 分)select distinct 城市 from 顾客R10-10 2-2-(a)查询价格低于1600美元的个⼈计算机的型号(model)、速度(speed)及硬盘容量(hd) (3 分)select model,speed,hdfrom pcwhere price<1600R10-11 2-2-(b)查询价格低于1600美元的个⼈计算机的型号、速度及硬盘容量,将"speed"改为"兆赫",“hd"改为"吉字节” (3 分) select model,speed as 兆赫,hd as 吉字节from pcwhere price<1600R10-12 2-2-©查询打印机的制造商 (3 分)select distinct makerfrom productwhere type='打印机'R10-13 2-2-(d)查询费⽤⾼于2000美元的便携式电脑的型号)、内存容量以及屏幕尺⼨ (3 分)select model,ram,screenfrom laptopwhere price>2000R10-14 2-2-(e)查询所有彩⾊打印机的元组 (3 分)select *from printerwhere color='1'R10-15 A2-1查找产品表中再次订购量⼤于15的产品信息 (3 分)select ProductID,ProductName,SupplierIDfrom productswhere ReorderLevel>15R10-16 2-1(a) 查询st1制⽚公司的地址 (3 分)select addressfrom Studiowhere name='st1'R10-17 2-1(b)查询影星S1的出⽣⽇期 (3 分)select birthdatefrom MovieStarwhere name='S1'R10-18 spj-查询供应⼯程 j1 的供应商 (3 分)select distinct sno from spj where jno='j1';R10-19 A1-1查询联系⼈信息 (3 分)select CompanyName,ContactNamefrom customerswhere City='London'R10-20 A1-4在产品表中找出库存数量⼤于50的产品的信息 (3 分)select ProductID,ProductNamefrom productswhere UnitsInStock>50R10-21 A1-5在顾客表中找出特定名字的顾客信息 (3 分)select CustomerID,CompanyNamefrom customerswhere CompanyName like '%th%'R10-22 A1-7在产品表中找出库存量⼩于订购量的产品信息 (3 分)select ProductID,ProductNamefrom productswhere UnitsInStock<UnitsOnOrderR10-23 A1-8查询传真号码不为空的供货商信息 (3 分)select SupplierID,CompanyNamefrom supplierswhere Fax is not nullR10-24 查询学⽣表中的⼥⽣信息 (3 分)select sno as 学号,sname as 姓名from stuwhere sex=0R10-25 查询姓‘李’的学⽣记录 (3 分)select sno as 学号,sname as 姓名,sex as 性别,mno as 专业,birdate as 出⽣⽇期,memo as 备注from stuwhere sname like '李%'R10-26 查询未登记成绩的学⽣ (3 分)select snofrom scwhere grade is nullR10-27 查询xsda表中所有⼥⽣的记录 (3 分)select *from xsdawhere 性别='⼥'R10-28 sql-select-sample (3 分)select * from Student where id>50R10-29 查询图书表中李凯所著的图书,要求查询结果中包括条形码,书名,作者,出版社4列。
SQL实验一(有答案)

SQL实验一I.范例我们也可用SQL语言来处理学生选课系统,为有别于前面所建立的数据库文件,我们可建立数据库文件student.mdb,类似地,student.mdb中有三个表:S,C,SC1.在student中用SQL语句创建S、C和SC表create table S(Sno char(6) Primary key,Sname char(8) not null,Ssex char(2),Sage char(2),Phone char(8));create table C(Cno char(6) primary key,Cname char(8) not null unique,Cpno char(6) references c(cno),Ctime smallint,Ccredit smallint);create table SC (Sno char(6)not null references s(sno),Cno char(6) not null references c(cno),Grade smallint,Primary key (Sno,Cno));2.用如下的SQL命令修改表结构,将S表中的sage字段的数据类型改为短整数型;给s表添加一个长度为10的文本型字段sdept;删除s 表的电话号码列。
命令分别为:alter table S alter Sage smallint:alter table S add Sdept char(10);alter table S drop Phone;II.实验内容一、新建一个空的数据库,该数据库文件的主名为“四级考试+教学班代码(三位数)+学生在该班内的序号(三位数)”二、该数据库中有数据表STUD和EXAM,分别存放学生情况和学生参加英语四级考试的情况。
并且:1.每位学生的身份证号不能为空且各不相同,不同学校的学生学号可能相同(姓名更可能相同),但同一所学校的学生学号不会相同;2.每年在1月和7月举行两次考试,每次考试分听力、语法和写作三个部分,各部分满分分别为40分、30分和30分;一次考试成绩总分>=60分,且三个部分的成绩均不低于相应满分的一半时,该次考试为合格;3.同一个学生在校期间可多次参加四级考试,直至合格为止;但同一位学生不会在同一次考试中有多于一条的记录三、考虑两数据表的结构如下:表STUD的结构为:Sno(学号) 文本型6个字符Sname(姓名) 文本型6个字符Ssex(性别) 文本型2个字符Syear(年级) 短整型SUniName(校名) 文本型8个字符SID(身份证号) 文本型9个字符(每位学生的身份证号各不相同,且不能为空)表EXAM的结构为:SID(身份证号) 文本型9个字符(非空,仅在表STUD中的学生才能参加四级考试)Eyear(考试年份) 文本型4个字符(非空)Emonth(考试月份) 文本型1个字符(非空)Elisten(听力成绩) 短整型Egrammar(语法成绩) 短整型Ewrite(写作成绩) 短整型同一位学生不能多次参加同一场考试在实际建表前先分析:实体完整性约束条件以决定两表的主键及两表之间的参照完整性约束条件显然STUD表的主键为SID,故在创建表STUD结构的SQL语句中应有短语“SID CHAR(9)Primary key,”;那么,EXAM表的主健是什么呢?在创建表EXAM结构的SQL语句中又应如何书写呢?用SQL语句创建两表的结构,包括定义实体完整性和参照完整性创建STUD表命令为:create table STUD(Sno char(6),Sname char(6),Ssex char(2),Syear short,SUniName char(8),SID char(9) primary key)保存此数据定义查询为“建表STUD命令”创建EXAM表命令为:create table EXAM(SID char(9) NOT NULL references STUD(SID),Eyear char(4) NOT NULL,Emonth char(1) NOT NULL,Elisten short,Egrammar short,Ewrite short,Primary Key(SID,Eyear,Emonth))保存此数据定义查询为“建表EXAM命令”四、用SQL语句修改数据表的结构1.删除表STUD中的Syear字段,将该SQL语句保存为“删除字段命令”alter table STUD DROP Syear2.修改表STUD中的Ssex字段的类型为1个字符,将该SQL语句保存为“修改字段命令”alter table STUD alter Ssex char(1)3.在表EXAM表中增加Ssum(总分)字段,其类型为短整型,将该SQL语句保存为“增加字段命令”alter table EXAM ADD Ssum short五、用INSERT命令数据表追加记录1.向表STUD追加一条如下的记录:Sno Sname Ssex SUniName SID02005 程忠男上海理工850310123将该SQL语句保存为“追加具有全部字段值记录命令”INSERT INTO STUD VALUES ('02005', '程忠', '男', '上海理工', '850310123');2.向表EXAM追加一条如下的记录:SID Eyear Emonth Elisten Egrammar Ewrite850310123 2007 7 10 25 15将该SQL语句保存为“追加具有部分字段值记录命令”INSERT INTO EXAM ( SID, Eyear, Emonth, Elisten, Egrammar, Ewrite )VALUES ('850310123', "2007", "7", 10, 25, 15);六、用导入方法将位于文件“四级考试.xls”中的记录导入到相应的数据表中七、数据表的记录的编辑1.在表STUD中将SID字段值为“871221226”的性别改为女,并将该命令保存为“修改字段值命令1”。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
实验一数据定义操作实验目的1.掌握数据库和表的基础知识2.掌握使用创建数据库和表的方法3.掌握数据库和表的修改、查看、删除等基本操作方法实验内容和要求一、数据库的创建在开始菜单中,启动SQl Server 程序中的“SQL Server Management Studio”,在对象资源管理器窗口中,右键单击“数据库”,选择“新建数据库”,创建成绩管理数据库Grademanager,要求如下表所示:Grademanager数据库参数表参数参数值参数参数值存储的数据文件路径D:\db\ 存储的日志文件路径D:\db\数据文件初始大小5MB 日志文件初始大小2MB数据文件最大值20MB 日志文件最大值15MB数据文件增长量原来10% 日志文件增长量2MB二、表的创建、查看、修改和删除1.表的创建在Grademanager数据库中,右键单击“表”,选择“新建表”命令,创建如下表所示的表:(1)Student表的表结构字段名称数据类型长度精度小数位数是否允许Null值说明Sno Char 10 0 0 否学号,主码Sname Varchar 8 0 0 是姓名Ssex Char 2 0 0 是性别,取值:男或女Sbirthday Date 8 0 0 是出生日期Sdept Char 16 0 0 是系名Speciality Varchar 20 0 0 是专业名特别注意:为属性Ssex设置约束,需选中属性Ssex行,然后单击菜单中的“表设计器”,选择“CHECK 约束”命令,然后按照图1进行设置。
图1 设置性别的约束(2)Course表(课程名称表)的表结构字段名称数据类型长度精度小数位数是否允许Null值说明Cno Char 5 0 0 否课程号,主码Cname Varchar 20 0 0 否课程名(3)SC表(成绩表)的表结构字段名称数据类型长度精度小数位数是否允许Null值说明Sno Char 10 0 0 否学号,外码Cno Char 5 0 0 否课程号,外码Degree Decimal 5 5 1 是成绩,0~100之间特别注意:①为属性Degree 约束,可参照属性Ssex进行设置,“CHECK约束对话框”中的表达式为Degree>=1 And Degree<=100②为SC表设置外键Sno和Cno的方法:右键单击表SC,选择“设计”命令,然后选择菜单“表设计器”中的“关系”命令,打开“外键关系”窗口,选择“添加”按钮,然后单击“表和列规范”后的按钮,按照图2进行设置,即可将SC表中的Cno属性设置为外键。
按照相同的方法,将属性Sno也设置为外键。
图2为SC 表设置外键Cno2.向上述表中输入如下数据记录学生关系表Student (右键单击表Student ,选择“编辑前200行”) Sno Sname Ssex Sbirthday Sdept Speciality 李勇 男 1987-01-12 计算机系 计算机应用 刘晨 女 1988-06-04 信息管理系 电子商务 王敏 女 1989-12-23 数学系 数学 张立 男1988-08-25信息管理系电子商务课程关系表Course 成绩表SC Cno Cname C01 数据库 C02 数学 C03 信息系统 C04 操作系统3.修改表结构(找到操作的方法即可,不需要真正地修改表中的属性) (1)向student 表中增加“入学时间”列,其数据类型为日期型 (2)将student 表中的sdept 字段长度改为20 (3)将student 表中的Speciality 字段删除思考题1. SQL Server 的数据库文件有几种?扩展名分别是什么? 2. 如何实现数据库的备份和还原?2.在定义基本表语句时,NOT NULL 参数的作用是什么? 3.主码可以建立在“值可以为NULL ”的列上吗?Sno Cno Degree C01 92 C02 85 C03 88 C02 90 C03 80 C01 91 C02 75C0187实验二简单查询实验目的1.掌握SELECT语句的基本用法2.使用WHERE子句进行有条件的查询3.掌握使用IN和NOT IN,BETWEEN…AND和NOT BETWEEN…AND来缩小查询范围的方法4.掌握聚集函数的使用方法5.利用LIKE子句实现字符串匹配查询6.利用ORDER BY子句对查询结果排序7.利用GROUP BY子句对查询结果分组实验内容和要求一、表结构修改1.在实验一的所建立的数据库中增加Teacher表,结构如下:字段名称数据类型长度精度小数位数是否允许Null值说明Tno Char 3 0 0 否教师号,主码Tname Varchar 8 0 0 是教师名Tsex Char 2 0 0 是性别,取值:男或女Tbirthday Date 8 0 0 是出生日期Tdept Char 16 0 0 是所在系2.在实验一的所建立的数据库中增加Teaching表,表结构如下:Teaching表(授课表)的表结构字段名称数据类型长度精度小数位数是否允许Null值说明Cno Char 5 0 0 否课程号,外码Tno Char 3 0 0 否教师号,外码Cterm Tinyint 1 0 0 是1-8之间3.向上述两表中输入如下数据记录教师表Teacher 授课表TeachingTno T name Tsex T birthday Tdept101 李新男1977-01-12 计算机系102 钱军女1968-06-04 计算机系201 王小花女1979-12-23 信息管理系202 张小青男1968-08-25 信息管理系二、完成下面查询1.查询所有男生信息Cno Tno Cterm C01 101 2C02 102 1C03 201 3C04 202 42.查询年龄大于24岁的女生学号和姓名3.查询所有教师的Tname、Tdept4.查询“电子商务”专业的学生姓名、性别和出生日期5.查询成绩低于90分的学生学号及课号,并按成绩降序排列6.查询Student表中所有的系名7.查询“C01”课程的开课学期8.查询成绩在80分至90之间的学生学号及课号9.统计有学生选修的课程门数10.查询成绩为77,88或99的记录11.计算“C02”课程的平均成绩12.输出有成绩的学生学号13.查询所有姓“刘”的学生信息14.统计输出各系学生的人数15.查询选修了“C03”课程和学生的学号及其成绩,查询结果按分数的降序排列16.查询各个课程号及相应的选课人数,并为选课人数取别名为“人数”17.统计每门课程的选课人数和最高分,并为选课人数和最高分分别取别名为“人数”、“最高分”18.统计每个学生的选课门数和考试总成绩,并为选课门数和总成绩分别取别名为“门数”、“总成绩”,并按选课门数降序排列。
思考题1.聚集函数能否直接使用在:SELECT子句、HAVING子句、WHERE子句、GROUP BY子句中?2.关键字ALL和DISTINCT有什么不同的含义?3.SELECT语句中用于表示模糊查询的通配符有几种?含义分别是什么?4.利用BETWEEN…AND表示的数据范围能否用其他方法表示?怎样表示?如:score between 80 and 90 还可以怎么表示?实验三复杂查询实验目的1.掌握连接查询和嵌套查询操作2.能灵活应用SELECT语句解决复杂的查询问题实验内容和要求一、连接查询1.查询女学生的学生学号及总成绩2.查询李勇同学所选的课程号及成绩3.查询李新老师所授课程的课程名称4.查询女教师所授课程的课程号及课程名称5.查询姓“王”的学生所学的课程名称6.查询选修“数据库”课程且成绩在80到90之间的学生学号及成绩7.查询选修“C02”课程的学生的平均年龄8.查询学习课程名为“数学”的学生学号和姓名9.查询“钱军”教师任课的课程号,选修其课程的学生的学号和成绩10.查询在第3学期所开课程的课程名称,选修其课程的学生学号和成绩二、嵌套查询1.查询至少选修两门课程的男学生姓名2.查询与李勇同一个系的其他同学姓名3.查询学号比刘晨同学大,而年龄比他小的学生姓名4.查询年龄大于所有女同学的男同学的姓名及系别5.查询成绩比该课程平均成绩高的学生的学号、课程号及成绩6.查询不讲授“C01”课的教师姓名7.查询没有选修“C02”课程的学生学号及姓名8.查询选修了“数据库”课程的学生学号、姓名及系别9.查询选修了全部课程的学生姓名10.分别用子查询和连接查询,求“C02”号课程在80分以上的学生信息思考题1.使用存在量词NOT EXISTS的嵌套查询时,何时外层查询的WHERE条件为真,何时为假?2.DROP命令和DELETE命令的本质区别是什么?实验四数据更新、索引及视图操作实验目的1.掌握利用INSERT命令实现对表数据的插入操作2.掌握利用UPDATE命令实现对表数据的修改操作3.掌握利用DELETE命令实现对表数据的删除操作4.掌握索引的创建和使用5.掌握视图的创建和删除实验内容和要求一、数据更新1.向Student表中插入记录('','张静','女','1981-3-21','CS' ,'电子商务')2.插入学号为,姓名为李四学生信息3.把男学生记录保存到表TS中(提示:利用select into 命令可备份数据库中的表格式:select * into 新表名 from 原表名where 子句;)4.将学号为的学生姓名改为张华,系别改为“CS”,专业改为“多媒体技术”5.将学生选修“C03”号课程的成绩改为该课的平均成绩6.把女同学的成绩提高5%7.把选修了“数据库”课程学生的成绩全改为空值(NULL)8.删除学号为的学生记录9.把“刘晨”同学的选课记录全部删除10.删除电子商务专业所有学生的选课记录二、索引的创建与使用1.用索引管理器创建SC表的索引IX_XS_KC。
(1)选择要创建索引的数据库文件夹,并在右边的对象窗口中选择并打开其中的“表”对象。
(2)选择所要创建索引的SC表,右键单击该表,在弹出的快捷菜单中选择“设计”命令,然后在工具栏中单击“管理索引和键”按钮,打开“索引和键”窗口。
(3)单击其中的“添加”按钮,创建新的索引,并为其设置相应的属性。
为SC表创建一个基于“课程号”列和“成绩”列的索引IX_XS_KC,其中课程号列按升序排列,成绩列按降序排列。
设置完成后,如图3所示。
图3 创建索引IX_XS_KC2.强制使用刚才创建的索引查询数据。
在查询命令窗口中输入以下SQL查询命令并执行:SELECT SNO,CNO,DEGREEFROM SCWITH (INDEX (IX_XS_KC))WHERE DEGREE>=60观察一下显示出来的数据是否有序。