数据库SQL实验操作答案
实验一 sql语言及相关操作及答案(1)
实验一SQL语言及相关操作一、实验目的本实验的目的是使学生掌握如何在SQL Server Management studio中进行查询分析以及对数据库中的表和数据进行操作,加深对SQL和SQL语言相关操作理解。
熟练掌握数据查询、表的更新等操作方法。
二、实验时数4学时三、实验内容:(1)利用SQL语句进行简单查询和连接查询操作。
1.列出所有course的课程号、课程名和学分。
2.查询所有蒙古族学生的学号、姓名和所在学院。
3.在score表中显示平均成绩都高于85分的学生学号、课程号和成绩。
4.查询选修课称号为001或005且平均成绩大于等于75分学生的学号、课程号和成绩。
5.查询信息管理学院1991年出生的所有男生的信息。
6.查询所有学生的年龄。
7.查询所有姓王或姓黄的学生的姓名、生日和所在班级名称。
8.查询先修课程为”数据结构”的所有课程。
9.查询信息管理学院非汉族同学的学号、姓名、性别及民族。
10.查找选修了“操作系统”的学生学号、成绩和姓名。
11.查找至少选修了一门其直接先修课编号为004的课程的学生学号和姓名。
12.查找至少选修了学号为0800001的学生所选课程的学生学号和姓名。
10413.查询出生日期在1991年以后的学生的学号、姓名、籍贯和年龄。
14.在student表中查询学生的学号、姓名和平均成绩,并按照平均成绩的降序排列。
15.查找了选修了以“C语言程序设计”为其直接先修课的课程的学生学号、课程号和成绩。
16.在score表中查询平均成绩大于80的学生的学号、课程号和成绩,并先按照课程号的升序、再按照成绩的降序排列。
17.查找信息管理学院学生选课情况,显示学生姓名、课程名和成绩。
18.统计student表中的男女学生的人数。
19.查询成绩最高分的学生的学号、课程号和相应成绩。
20.查询选课少于3门的学生的学号及其选课的门数。
(2) 利用SQL语句进行表的管理等操作。
1.给class表中的classname字段添加唯一约束。
SQL数据库完整版答案
SQL数据库完整版答案1、T-SQL语言中,用什么关键字定义局部变量,用什么关键字给变量赋值。
(p52)答:使用DECLARE/declare关键字来定义局部变量;用SET/set 和SELECT/select语句给变量赋值;2、自定义函数有几种?(p211)答:自定义函数有3种:标量值、嵌表值、多语句表值3、局部变量以什么开头?全局变量以开头?答:局部变量是以开头,全局变量是以开头;4、数据完整性包括哪几种?(p179)答:数据完整性包括三种:完体完整性、域完整性、参照完整性;5、MS-SQL数据库常包含哪三类文件?(p116)答:MS-SQL数据库通常包含着:主数据文件(.mdf)、次要数据文件(.ndf)、事务日志文件(.ldf);6、MS-SQL数据控制语言中,使用什么关键字授予权限,使用什么关键字撤销权限?(p95)答:使用GRANT/grant关键字授予权限,使用REVOKE/revoke 关键字撤销权限,使用DENY/deny关键字拒绝用户访问;7、DML触发器中,AFTER触发器和INSTEAD OF触发器有什么区别?(p235)答:(1)AFTER触发器只能在表上定义该类的触发器,并且只有执行INSERT,UPDATE和DELETE操作之后,才会触发;(2)INSTEAD OF触发器该类型触发器不执行INSERT,UPDATE和DELETE操作,而只是执行触发器本身;而且还可以在基于一个或多个基表的视图上定义;8、SQL SERVER中聚焦索引和非聚焦索引有什么区别?(p169)答:聚集索引:该索引中键值的逻辑顺序决定了表中相应行的物理顺序,一个表中只能有一个聚集索引非聚集索引:该索引是数据表中行的物理顺序与索引键值的逻辑顺序不相同,仅指向表中数据,可以在表中定义,但其检测效率较低。
作为和数据表分离的对象操作,表中的每一列都有自己的自己的索引。
9、能够激活DML触发器的数据修改语句是使用INSERT\UPDATE\DELETE\SELECT中哪个选项?UPDATE10、数据库备份的类型有哪几种?能够将数据恢复到某个时间点的备份设置是哪个?(P131)答:(1)数据库备份的类型有四种:完整数据备份、差异数据库备份、事务日志备份、文件和文件组备份;(2)能将数据库恢复到某个时间点的备份设置是:事务日志备份;11、SQL SERVER的登录账户信息保存在哪个系统数据库中?(p117)答:用户登录账户信息保存在master系统数据库中;12、语句INSERT SELECT语句有什么作用?(p92)答:(1)INSERT SELECT语句可以完成一次插入一个数据块的功能;(2)INSERT SELECT语句可以把其他数据源的行添加到现有表中;复制表13、T-SQL语言的字符串常量是使用什么符号当作定界符?’’答:字符串常量是使用’’单引号符号当作定界符;14、FOREIGN KEY约束定义了表之间的什么?(p185)答:FOREIGN KEY约束定义对同一个表或另一个表中具有PRIMARY KEY 或UNIQUE约束的列的引用;(另一个答案):FOREIGN KEY约束定义了表之间的一个列或多列组合.15、域约束有哪几种?(p179)答:域约束有:CHECK约束、DEFAULT约束。
实验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.删除学号为“”学生的相关信息。
三、实验过程:启动“查询分析器”,在其文本窗口中输入相应的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 c on 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实训答案【篇一:新sql——server实验练习答案】txt>答案上海师范大学计算机系目录第一部分企业管理器的使用 ....................................................................................................... .. 3试验一注册服务器 ............................................................................... 错误!未定义书签。
试验二创建数据库 ............................................................................... 错误!未定义书签。
试验三创建表 ....................................................................................... 错误!未定义书签。
实验四数据输入 ................................................................................... 错误!未定义书签。
实验五登录到数据库服务器 ............................................................... 错误!未定义书签。
第二部分 sql语言 ....................................................................................................... ................. 3 第二部分 sql语言 ....................................................................................................... .. (3)试验一数据库创建 ....................................................................................................... .......... 3 试验二创建表 ....................................................................................................... .................. 3 试验三创建数据完整性 ....................................................................................................... .. 5 试验四数据完整性试验 ....................................................................................................... .. 6 试验五索引 ....................................................................................................... .................... 10 试验六更新数据 ....................................................................................................... ............ 11 试验七 sql 查询语句 ....................................................................................................... .... 12 试验八视图 ....................................................................................................... .................... 15 试验九安全性控制实验 .......................................................................................................16 试验十存储过程 ....................................................................................................... ............ 17 试验十二触发器 ....................................................................................................... ............ 21 试验十二恢复技术 ....................................................................................................... ........ 25 试验十三事务 ....................................................................................................... ................ 26 试验十四锁 ....................................................................................................... .. (27)第一部分企业管理器的使用第二部分 sql语言试验一数据库创建目的:1掌握利用sql语言进行数据库的创建、维护。
数据库原理中SQL语句实验指导书及答案
实验四:管理SQL Server表数据一、实验目的熟悉数据表结构及使用特点;熟悉使用Management Stuio界面方式管理数据表数据;熟悉使用T-SQL语句管理数据表数据。
二、实验环境已安装SQL Server 2005 企业版的计算机(13台);具有局域网环境,有固定IP;三、实验学时2学时四、实验要求了解SQL Server数据表数据的管理方法;了解SQL Server数据类型;完成实验报告(部分题只需给出关键语句)。
五、实验内容及步骤以课本指定的数据库为例,并依据数据表的结构创建相对应的数据表(student、course、sc),请分别使用Management Stuio界面方式及T-SQL 语句实现进行以下操作:向各个数据表中插入如下记录:学生信息表(student)课程信息表(course)选课信息表(sc)insert into student.dbo.sc values('20051501','1',75)insert into student.dbo.course values('1','数据库','5',4)insert into student.dbo.student values('201015001','赵菁菁','女',23,'CS') 2.修改CS系姓名为“李勇”的学生姓名为“李咏”;update studentset Sname='李咏'where Sname='李勇'3.修改课程“数据处理”的学分为3学分;3.update courseset Ccredit=3where Cname ='数据处理'4.将选修课程“1”的同学成绩加5分;4.update scset Grade =Grade+5where Cno='1'5.将选修课程“大学英语”的同学成绩加5分;update scset Grade=Grade+5from course,scwhere o=o and ame='大学英语'6.将学号为“200515010”的学生信息重新设置为“王丹丹、女、20、MA”;update studentset Sname='王丹丹',Ssex='女',Sage=20,Sdept='MA'where Sno='200515010'7.修改借书证号为2005001的学生记录重新设置:名字为王婧婧、专业为信息管理、借书量增加5本;(因为无些相关的数据表帮无法实现)8.删除数据表student中无专业的学生记录;deletefrom studentwhere Sdept is null9.删除数据表student中计算机系年龄大于25的男同学的记录;deletefrom studentwhere Ssex='男' and Sage>25 and Sdept='CS'10.删除数据表course中学分低于1学分的课程信息;deletefrom coursewhere Ccredit<1实验五:数据库单表查询一、实验目的1.掌握SELECT语句的基本语法和查询条件表示方法;2.掌握查询条件表达式和使用方法;3.掌握GROUP BY 子句的作用和使用方法;4.掌握HAVING子句的作用和使用方法;5.掌握ORDER BY子句的作用和使用方法。
数据库技术与应用SQL习题答案
实验2 SQL Server 数据库的管理4.启动查询分析器,在查询分析器中使用Transact-SQL语句CREATE DATABASE创建studb数据库。
然后通过系统存储过程sp_helpdb查看系统中的数据库信息CREATE DATABASE studbsp_helpdb5.在查询分析器中使用Transact-SQL语句ALTER DATABASE修改studb数据库的设置,指定数据文件大小为5MB,最大文件大小为20MB,自动递增大小文1MB。
ALTER DATABASE studbMODIFY FILE(NAME=studb,SIZE=5MB,MAXSIZE=20MB,FILEGROWTH=1MB)7.使用企业管理器将studb数据库的名称更改为student_db。
ALTER DATABASE studbMODIFY NAME=student_db8.使用Transact-SQL语句DROP DATABASE删除student_db数据库。
DROP DATABASE student_db实验3 SQL Server 数据表的管理5.使用Transact-SQL语句CREATE TABLE在studentsdb数据库中创建grade 表。
CREATE TABLE grade(学号 char(4),课程编号 char(4),分数 decimal(5))8.使用Transact_SQL语句INSERT INTO...VALUES向studentsdb数据库的grade表插入以下数据:学号课程编号分数0004 0001 80USE studentsdbGOINSERT INTO gradeVALUES('0004','0001','80')9.使用Transact_SQL语句ALTER TABLE修改curriculum表的“课程编号”列,使之为非空。
sql 数据库 实验3答案
实验三:创建及管理数据表1、创建表依据数据表的结构创建相对应的数据表,表结构如下所示; 学生信息表(student )CREATE (sno char (9) PRIMARY KEY , sname char (8) NOT NULL, ssex char(2), sage int ,sdept varchar (20) )课程信息表(course )CREATE (cno char (4) PRIMARY KEY , cname varchar (20) NOT NULL, cpno char (4), ccredit int )选课信息表(sc )CREATE TABLE sc(sno char(9),cno char(4),grade int,Constraint PK_sno PRIMARY KEY(sno,cno))2.修改表结构1)在表student中增加新字段“班级名称(sclass)”字符类型为varchar(10);use studentALTER TABLE studentAdd sclass nvarchar(10)2)在表student中删除字段“班级名称(sclass)”;use studentALTER TABLE studentDrop column sclass3)修改表student中字段名为“sname”的字段长度由原来的6改为8;use studentALTER TABLE studentALTER COLUMN sname char(8)4)修改表student中ssex字段默认值为‘男’;use studentALTER TABLE studentadd default'男'for ssex5)修改表course中cname字段为强制唯一性字段;use studentALTER TABLE courseAdd constraint ix_course unique (cname)6)修改表sc中grade字段的值域为0-100;use studentALTER TABLE scAdd constraint CK_grade CHECK(grade between 0 and 100)7)删除数据表course的唯一性约束;use studentALTER TABLE coursedrop ix_course。
实训sql关系数据库实训练习含答案,DML语句及DDL语句
DML 语句及 DDL 语句实训内容 】1、数据操纵语句实训目的】 掌握 INSERT 、UPDATE 、DELETE 三个数据操作语句; 掌握数据库对象的定义CREATE )、修改( ALTER )及删除( DELETE )操作。
用 INSERT 、UPDATE 、DELETE 三个语句来完成对数据进行添加、更新及删 除操作,这三个语句能修改数据库中的数据,但不返回结果集。
2、创建和修改表结构SQL 的DDL 语句能创建和修改数据库的逻辑结构, 包括CREATE 语句、ALTER 语句及 DROP 语句。
3、创建和修改视图 在 SQL 中,视图是一种类表对象。
或称之为衍生表(虚拟表) ,它并不在物理 上包含数据,但是它的定义是永久性的。
用 CREAE VIEW 定义视图。
4、请完成以下数据操纵语句: 1) 学号为“ 1031231”的学生,新选修了 3号课程,成绩未知。
insert into 选课表 values('1031231',3,NULL) 2) 为 GZ02 计 6班未选 4号课程的学生补选 4 号课程。
insert into 选课表 (学号 ,课程号 ) select 学号 ,4 from 学生表 where 班级 ='GZ02 计 6' and 学号 not in (select 学号 from 选课表 where 课程号 =4) 3) 将名字为 '王玲俐 '的学生的年龄修改为 18 岁,班级改为 'GZ02 计 8'。
update 学生表set 年龄=18,班级='GZ02计8' where 姓名='王玲俐' 4) 将“软件工程”这门课成绩在 60 分以下的学生的成绩统一修改为 59 分。
update 选课表 set 成绩 =59from 选课表,课程表 where 选课表•课程号=课程表•课程号and 课程名='软件工程' and 成绩<60 up date 选课表set 成绩=59 where 成绩<60 and 课程号=( select 课程号from 课程表where 课程名='软件工程'5)删除课程号为1号的所有的选课信息。
数据库实验答案实验二Sql
(1) 查找有销售记录的客户编号、名称和订单总额。
命令:SELECT a.CustomerNo,CustomerName, sum(quantity*price) orderSumFROM OrderMaster a,OrderDetail b,Customer cWHERE b.orderNo=a.orderNo AND c.CustomerNo=a.CustomerNoGROUP BY a.CustomerNo,CustomerNameORDER BY a.CustomerNo,orderSum DESC(2) 在订单明细表中查询订单金额最高的订单。
命令:SELECT top 1 orderNo,sum(quantity*price)订单金额FROM OrderDetailGROUP BY orderNoORDER BY 订单金额DESC(3) 查询没有订购商品的客户编号和客户名称。
命令:SELECT CustomerNo,CustomerNameFROM CustomerWHERE CustomerNo NOT IN (SELECT CustomerNo FROM OrderMaster)(4) 找出至少被订购3次的商品编号、订单编号、订货数量和订货金额,并按订货数量的降序排序输出。
命令:SELECT a.productNo,orderNo,quantity,(quantity*price) moneyFROM OrderDetail a,(SELECT productNoFROM OrderDetailGROUP BY productNoHA VING COUNT(*)>=3) bWHERE a.productNo =b.productNoORDER BY a.productNo,quantity DESC被订购三件以上的……SELECT b.ProductNo,orderNo,quantity,orderSum=quantity*priceFROM OrderDetail b,(SELECT ProductNo FROM(SELECT ProductNo,sum(quantity)SQfrom OrderDetail GROUP BY ProductNo)aWHERE a.SQ>3)cWHERE b.ProductNo=c.ProductNoORDER BY b.quantity DESC(5) 使用子查询查找32M DRAM的销售情况,要求显示相应的销售员的姓名、性别,销售日期、销售数量和金额,其中性别用“男”、“女”表示。
实验答案(四-五-六)参考答案
实验四简单查询和连接查询1. 简单查询实验用Transact-SQL语句表示下列操作,在“学生选课“数据库中实现其数据查询操作:(1) 查询数学系学生的学号和姓名。
select sno,snamefrom studentwhere dept='数学系';(2) 查询选修了课程的学生学号。
select distinct(sno)from sc;(3) 查询选修课程号为0101的学生学号和成绩,并要求对查询结果按成绩降序排列,如果成绩相同则按学号升序排列。
select distinct(sno),gradefrom scwhere cno='0101'order by grade desc,sno asc;(4) 查询选修课程号为0101的成绩在80-90 分之间的学生学号和成绩,并将成绩乘以系数0.8 输出。
select distinct(sno),grade*0.8 as'sore'from scwhere cno='0101'and grade between 80 and 90;(5) 查询数学系或计算机系姓张的学生的信息。
select*from studentwhere dept in('数学系','计算机系')and sname like'张%';(6) 查询缺少了成绩的学生的学号和课程号。
select sno,cnofrom scwhere grade is null;2. 连接查询实验用Transact-SQL语句表示,并在“学生选课”数据库中实现下列数据连接查询操作:(1) 查询每个学生的情况以及他(她)所选修的课程。
select student.*,amefrom student,sc,coursewhere student.sno=sc.sno and o=o;(2) 查询学生的学号、姓名、选修的课程名及成绩。
数据库实践教程答案sql
数据库实践教程答案sql在数据库实践教程中,学生需要通过编写SQL语句来操作数据库。
SQL(Structured Query Language)是一种用于管理关系数据库系统的语言,学习和掌握SQL语言非常重要。
首先,我们需要了解常用的SQL操作语句,如SELECT、INSERT、UPDATE和DELETE。
SELECT语句用于查询数据库中的数据,INSERT语句用于向数据库中插入新的数据,UPDATE语句用于更新数据库中的数据,DELETE语句用于删除数据库中的数据。
这些操作语句是数据库操作的基础。
在编写SQL语句时,我们需要考虑表的结构和关系。
在数据库中,数据是以表的形式存储的,每个表由多个列组成,每一列代表一个字段。
表之间可以通过外键来建立关联关系,这样可以更好地组织和管理数据。
在编写SQL语句时,我们需要根据表之间的关系来进行数据查询、插入、更新和删除操作。
此外,在编写SQL语句时,我们还需要注意SQL的语法规则。
SQL语句一般由关键字、函数、运算符和标点符号组成,关键字用来表示操作的类型,函数用来对数据进行计算和处理,运算符用来进行条件判断和逻辑运算。
正确地使用这些语法元素可以确保SQL语句的执行正确和高效。
在实践教程中,学生需要运用所学知识来编写SQL语句,实现对数据库中数据的查询、插入、更新和删除操作。
编写SQL语句需要综合运用SQL的基本操作语句、表的结构和关系以及SQL的语法规则。
总之,数据库实践教程是学生掌握SQL语言的重要阶段。
通过编写SQL语句来操作数据库,学生可以更好地理解数据库的工作原理和应用场景,提升对数据库的数据管理和处理能力。
编写SQL语句需要对SQL的基本操作语句、表的结构和关系以及SQL的语法规则进行综合运用,只有掌握了这些要点,才能编写出高效、准确的SQL语句。
数据库SQL实验操作答案
数据库SQL实验操作答案1、创立数据库:创立一个教学管理数据库,以自己的名字拼音首字母+下划线+SC作为库名〔如名字叫张三,那么:ZC_SC〕,〔1〕确定数据库名称;数据库用于学生管理,命名为如ZS_SC〔2〕确定数据库的位置;要求:数据文件和日志文件分别存储在E盘自己的目录下。
〔3〕确定数据库的大小;根据实际的数据量确定数据文件的初始大小为30MB,日志文件的初始大小为3MB。
〔4〕确定数据库的增长;根据实际情况,确定数据文件按20%增长,日志文件按1MB增长。
请利用查询分析器〔Query Analyzer〕,使用SQL语句指定参数创立数据库,给出实现代码和截图。
实现代码及截图样例: SQL语句: create database CYR_SC on primary ( name='CYR_SC_DATA', filename='E:\\CYR_SC_DATA.MDF', size=30MB, filegrowth=20% ) log on ( name='CYR_SC_LOG',filename='E:\\CYR_SC_LOG.LDF', size=3mb, filegrowth=1mb )……………查询分析器执行情况: SQL语句及执行结果截图显示 2、创立根本表:〔注意:请在表名前加上自己的姓名拼音的首字母,主键前加上自己的姓名拼音的首字母,例如张三为ZC_〕其描述的信息有:学生信息、课程信息、教师信息、学生选课成绩、授课信息、班级信息、系部信息、专业信息。
创立:student表(学生信息表)、course表〔课程信息表)、teacher表〔教师信息表)、student _course表〔学生选课成绩表)、teacher_course表〔教师上课课表〕等。
请利用查询分析器,使用SQL语句将下面各表建立到教学管理数据库中。
写出SQL语句〔注意级联删除设置〕,查看各数据表之间的关系,画出实体关系图〔ER图〕。
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数据库实验和参考答案
数据库实验和参考答案上机实验七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 Server表数据一、实验目的熟悉数据表结构及使用特点;熟悉使用Management Stuio界面方式管理数据表数据;熟悉使用T-SQL语句管理数据表数据。
二、实验环境已安装SQL Server 2005 企业版的计算机(13台);具有局域网环境,有固定IP;三、实验学时2学时四、实验要求了解SQL Server数据表数据的管理方法;了解SQL Server数据类型;完成实验报告(部分题只需给出关键语句)。
五、实验内容及步骤以课本指定的数据库为例,并依据数据表的结构创建相对应的数据表(student、course、sc),请分别使用Management Stuio界面方式及T-SQL 语句实现进行以下操作:向各个数据表中插入如下记录:学生信息表(student)课程信息表(course)选课信息表(sc)insert into student.dbo.sc values('20051501','1',75)insert into student.dbo.course values('1','数据库','5',4)insert into student.dbo.student values('201015001','赵菁菁','女',23,'CS') 2.修改CS系姓名为“李勇”的学生姓名为“李咏”;update studentset Sname='李咏'where Sname='李勇'3.修改课程“数据处理”的学分为3学分;3.update courseset Ccredit=3where Cname ='数据处理'4.将选修课程“1”的同学成绩加5分;4.update scset Grade =Grade+5where Cno='1'5.将选修课程“大学英语”的同学成绩加5分;update scset Grade=Grade+5from course,scwhere o=o and ame='大学英语'6.将学号为“200515010”的学生信息重新设置为“王丹丹、女、20、MA”;update studentset Sname='王丹丹',Ssex='女',Sage=20,Sdept='MA'where Sno='200515010'7.修改借书证号为2005001的学生记录重新设置:名字为王婧婧、专业为信息管理、借书量增加5本;(因为无些相关的数据表帮无法实现)8.删除数据表student中无专业的学生记录;deletefrom studentwhere Sdept is null9.删除数据表student中计算机系年龄大于25的男同学的记录;deletefrom studentwhere Ssex='男' and Sage>25 and Sdept='CS'10.删除数据表course中学分低于1学分的课程信息;deletefrom coursewhere Ccredit<1实验五:数据库单表查询一、实验目的1.掌握SELECT语句的基本语法和查询条件表示方法;2.掌握查询条件表达式和使用方法;3.掌握GROUP BY 子句的作用和使用方法;4.掌握HAVING子句的作用和使用方法;5.掌握ORDER BY子句的作用和使用方法。
sql数据库基本操作考试题及答案
sql数据库基本操作考试题及答案一、选择题(每题2分,共20分)1. SQL中用于创建数据库的命令是:A. CREATE TABLEB. CREATE DATABASEC. DROP DATABASED. ALTER DATABASE答案:B2. 在SQL中,以下哪个命令用于删除表?A. CREATE TABLEB. DROP TABLEC. ALTER TABLED. TRUNCATE TABLE答案:B3. 如何在SQL中选择所有列?A. SELECT *B. SELECT ALLC. SELECT ALL COLUMNSD. SELECT ALL FIELDS答案:A4. SQL中用于更新表中数据的命令是:A. UPDATEB. MODIFYC. CHANGED. ALTER答案:A5. 在SQL中,以下哪个命令用于插入数据?A. INSERT INTOB. ADD INTOC. PUT INTOD. CREATE INTO答案:A6. SQL中用于删除数据库中数据的命令是:A. DELETEB. REMOVEC. DROPD. ERASE答案:A7. 如何在SQL中使用通配符选择表中的所有记录?A. SELECT *B. SELECT ALLC. SELECT ALL RECORDSD. SELECT ALL ROWS答案:A8. SQL中用于添加新列到表的命令是:A. ALTER TABLEB. MODIFY TABLEC. CHANGE TABLED. ADD COLUMN答案:A9. 在SQL中,以下哪个命令用于重命名表?A. RENAME TABLEB. CHANGE TABLEC. ALTER TABLED. UPDATE TABLE答案:A10. SQL中用于查询表中唯一值的函数是:A. DISTINCTB. UNIQUEC. EXCEPTD. INTERSECT答案:A二、填空题(每题2分,共20分)1. 在SQL中,使用________命令可以查看当前数据库的所有表。
SQL实验及部分答案
SQL实验及部分答案实验⼀使⽤SQL语句创建和删除数据库⼀. 实验⽬的:1、了解SQL Server 2005数据库的逻辑结构和物理结构。
2、掌握使⽤SQL 语句创建和删除数据库。
⼆. 实验准备1.明确能够创建数据库的⽤户必须是系统管理员,或是被授权使⽤CREATE DATABASE语句的⽤户。
2.了解⽤SQL语句创建和删除数据库的基本语法。
三. 实验要求3、熟练使⽤查询分析器进⾏数据库的创建和删除操作4、完成⽤sql语句建⽴和删除数据库的实验报告四. 实验内容1.以下是创建数据库userdb1的SQL语句,以下是创建数据库userdb1的SQL语句,CREATE DATABASE userdb1 --创建名为userdb1的数据库on( NAME='userdb2',--数据⽂件的逻辑名称为userdb2FILENAME= 'd:\test\userdb1.mdf', ----物理路径为d:\testSIZE=5mb,----数据初始长度为5MMAXSIZE=10mb, --最⼤长度为10MFILEGROWTH=1mb --数据⽂件每次增长1M)运⾏上诉语句建⽴数据库userdb1.2.⽤SQL语句删除步骤⼀建⽴的数据库userdb1。
drop database userdb1 --删除数据库userdb1实验⼆分别⽤向导和SQL语句创建和删除表⼀.⽤SQL语句创建表在SQL Server 2005 的查询分析器中,⽤sql语句创建student表。
表2.1 student表(学⽣信息表)CREATE TABLE student(sno char(8)not null primary key,--学号(主键)sname char(8)not null,--姓名sex char(2)null,--性别native char(20)null,--籍贯birthday datetime null,--出⽣⽇期dno char(6)null,--所在院系spno char(8)null,--专业代码classno char(4)null,--班级号entime datetime null,--⼊校时间home varchar(40)null,--家庭住址tel varchar(40)null,--联系电话)表2.2 course表(课程信息表)CREATE TABLE course(cno char(10)not null primary key, spno char(8)null,cname char(20)not null,ctno tinyint null,experiment tinyint null,lecture tinyint null,semester tinyint null,credit tinyint null)实验三修改数据库基本表的定义⼀.实验⽬的1.了解表的结构特点。
实验二 参考答案
实验二SQL语言——数据查询操作实验内容参考答案六、实验内容1.查询为工程J1供应零件的供应商号码SNOuse MyDBgoselect snofrom spjwhere jno='j1'2.查询为工程J1供应零件P1的供应商号码SNOuse MyDBgoselect snofrom spjwhere jno='j1' and pno='p1'3.查询为工程J1供应红色零件的供应商号码SNOuse MyDBgoselect snofrom spjwhere jno='j1' and pno in (select pnofrom pwhere color='红')4.查询没有使用天津供应商生产的零件并且当前工程所使用零件的颜色全部为红色的工程号JNO use MyDBgoselect jnofrom spjwhere sno in (select snofrom swhere city<>'天津') andpno in (select pnofrom pwhere color='红')5.查询至少选用了供应商S1所供应的全部零件的工程号JNOuse MyDBgoselect jnofrom spjwhere sno='s1' and pno =all (select pnofrom p)6.找出所有供应商的名称和所在城市use MyDBgoselect sname,cityfrom s7.找出所有零件的名称、颜色和重量use MyDBgoselect pname,color,weightfrom p8.找出使用供应商S1所供应零件的工程号码jnouse MyDBgoselect jnofrom spjwhere sno='s1'9.找出工程项目J2使用的各种零件的名称及其重量use MyDBgoselect pname,weightfrom p,spjwhere spj.jno='j2' and spj.pno=p.pno10.找出上海厂商供应的所有零件号码use MyDBgoselect pnofrom spjwhere sno=(select snofrom swhere city='上海')11.找出使用上海产的零件的工程名称use MyDBgoselect jnamefrom s,j,spjwhere spj.jno=j.jno and spj.sno=(select s.snofrom swhere s.city='上海') 12.找出没有使用天津产的零件的工程号码use MyDBgoselect jnofrom spjwhere sno in (select snofrom swhere city<>'天津')13.找出重量最轻的红色零件的零件编号PNOuse MyDBgoselect pnofrom pwhere weight=(select min(weight)from pwhere color='红')14.找出供应商与工程所在城市相同的供应商提供的零件号码use MyDBgoselect pnofrom s,j,spjwhere s.sno=spj.sno and j.jno=spj.jno and s.city=j.city15.找出供应商S1为工程名中含有“厂”字的工程供应的零件数量总和use MyDBgoselect sum(qty) TotalQYTfrom spjwhere sno='s1' and jno in(select jnofrom jwhere jname like '%厂%')16.找出为工程供应零件的总数量不低于500的供应商号码及供应总数量,结果按供应商号码分类并且按供应总数量降序排列use MyDBgoselect sno,sum(qty) TotalQTYfrom spjgroup by snohaving sum(qty)>=500order by TotalQTY desc。
SQL数据库原理实验指导书及答案
SQL数据库原理实验指导书及答案数据库原理SQLServer实验指导书1数据库系统原理实验一、基本操作实验实验1:数据库的定义实验本实验的实验目的是要求学生熟练掌握和使用SQL、T-SQL、SQL Server Enterpriser Manager Server 创建数据库、表、索引和修改表结构,并学会使用SQL Server Query Analyzer,接收T-SQL语句和进行结果分析。
本实验的内容包括:l)创建数据库和查看数据库属性。
2)创建表、确定表的主码和约束条件,为主码建索引。
3)查看和修改表结构。
4)熟悉SQL Server Enterpriser Manager和 Query Analyzer工具的使用方法具体实验任务如下。
1.基本提作实验1)使用Enterpriser Manager建立图书读者数据库2)在Enterpriser Manager中查看图书读者数据库的属性,并进行修改,使之符合要求。
3)通过Enterpriser Manager,在建好了图书借阅数据库中建立图书、读者和借阅3个表,其结构为:图书(书号,类别,出版社,作者,书名,定价,版次);读者(编号,姓名,单位,性别,电话):借阅(书号,读者编号,借阅日期人)要求为属性选择合适的数据类型,定义每个表的主键,Allow Null(是否允许空值)和 Default Value(缺省值)等列级数据约柬。
4)在Enterpriser Manager建立图书、读者和借阅3个表的表级约束:每个表的PrimaryKey2(主键)约束;借阅表与图书表间、借阅表与读者表之间的FOREIGNKEY(外码)约柬,要求按语义先确定外码约束表达式,再通过操作予以实现;实现借阅表的书号和读者编号的UNIQUE(惟一性)约束;实现读者性别只能是“男”或“女”的check (检查)约束。
2.提高操作实验建立学生_课程库操作,在查询分析器中用SQL命令实现。
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语言的基本操作和常用函数。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
1、创建数据库:
创建一个教学管理数据库,以自己的名字拼音首字母+下划线+SC作为库名(如名字叫张三,则:ZC_SC),
(1)确定数据库名称;数据库用于学生管理,命名为如ZS_SC
(2)确定数据库的位置;要求:数据文件和日志文件分别存储在E盘自己的目录下。
(3)确定数据库的大小;根据实际的数据量确定数据文件的初始大小为30MB,日志文件的初始大小为3MB。
(4)确定数据库的增长;根据实际情况,确定数据文件按20%增长,日志文件按1MB 增长。
请利用查询分析器(Query Analyzer),使用SQL语句指定参数创建数据库,给出实现代码和截图。
SQL语句:
create database CYR_SC
on primary
(
name='CYR_SC_DATA',
filename='E:\CYR_SC_DATA.MDF', size=30MB,
filegrowth=20%
)
log on
(
name='CYR_SC_LOG',
filename='E:\CYR_SC_LOG.LDF', size=3mb,
filegrowth=1mb
)…
……
……查询分析器执行情况:
SQL语句及执行结果截图显示
2、创建基本表:(注意:请在表名前加上自己的姓名拼音的首字母,主键前加上自己的姓
名拼音的首字母,例如张三为ZC_)
其描述的信息有:学生信息、课程信息、教师信息、学生选课成绩、授课信息、班级信息、系部信息、专业信息。
创建:student表(学生信息表)、course表(课程信息表)、teacher表(教师信息表)、student _course表(学生选课成绩表)、teacher_course表(教师上课课表)等。
请利用查询分析器,使用SQL语句将下面各表建立到教学管理数据库中。
写出SQL语句(注意级联删除设置),查看各数据表之间的关系,画出实体关系图(ER图)。
字段名代码类型约束
(
cyrs_no char(8)primary key,
sname char(8)not null,
sex char(2),
sbirthday smalldatetime,
dno char(6),
spno char(8),
class_no char(4),
foreign key(dno)references cyr_department(cyr_dno), foreign key(spno)references cyr_speciality(cyr_spno) )
(2)创建Course表
(
cyr_cno char(10)primary key,
cname char(20)not null,
spno char(8),
ctno tinyint,
lecture tinyint,
experiment tinyint,
semester tinyint,
credit tinyint,
foreign key(spno)references cyr_speciality(cyr_spno) )
(cyrs_no char(8),
cyr_tcid smallint,
cyrc_no char(10),
score tinyint,
primary key(cyrs_no,cyr_tcid,cyrc_no),
foreign key(cyrc_no)references cyr_course(cyr_cno) )
(4)创建teacher表
(
cyrt_no char(8)primary key,
t_name char(8)not null,
t_sex char(2),
t_birthday smalldatetime,
dno char(6),
tech_title char(10),
check(t_sex in('男''女')),
foreign key(dno)references cyr_department(cyr_dno) )
(
cyr_dno char(6)primary key,
dept_name char(20)not null,
header char(8)
)
(
cyr_spno char(8)primary key,
dno char(6)not null,
spname char(20)not null
)
(7)创建teacher_course表
(
cyr_tcid smallint primary key,
t_no char(8),
spno char(8),
class_no char(4),
cno char(10)not null,
semester char(6),
schoolyear char(10),
foreign key(t_no)references cyr_teacher(cyrt_no), foreign key(spno)references cyr_speciality(cyr_spno) )
(8)创建班级表(class)
(
cyr_spno char(8),
cyr_class_no char(4),
header char(8),
primary key(cyr_spno,cyr_class_no),
foreign key(cyr_spno)references cyr_speciality(cyr_spno) )
3、写出SQL语句,利用查询分析器修改上述各表。
(注意当前数据库是哪个)1)向系部表插入记录
2)向teacher表插入数据
3)向speciality表插入数据
4)向student表插入数据
5)向Course表插入数据
6)向class表插入数据
7)向student_course表插入数据
8)向teacher_course表插入数据
写出SQL语句,仔细观察数据在更改和删除时如何检验外码约束,并举例说明创建外键时有无ON DELETE CASCADE 关键字对删除记录有何影响?
4、修改student表中学号为540011的学生,将其姓名改为自己的名字;
5、删除student表中学号为530075的学生;
简单查询,写出SQL语句并将结果截图
6、查询全部学生的学号、姓名、性别和出身年月日;
7、查询全体学生的学号、姓名和年龄;
8、查询院系编号为‘510000’(计算机学院)的全部学生的学号、姓名、性别和出身年月
日。
9、查询“计算机科学与技术”专业(专业代码为‘080605’)并且班级代码为‘0201’
的学生的学号、姓名和出生日期。
10、查询在‘1983/01/10’以后出生的计算机学院(院系编号为‘510000’)学生的
学号、姓名、性别和出身年月日。
11、查询全部学生的学号、姓名、性别和出身日期结果按照出生日期的升序排列。
当查询同时涉及两个以上的表时,称为连接查询。
连接查询包括等值连接查询、自然连接查询、非等值连接查询、自身连接查询、外连接查询和复合条件查询。
连接查询,写出SQL语句并将结果截图:
12、查询全部学生的学号、姓名、性别、所在院系名称和专业名称
13、查询选修了课程1(上课编号)的学生的学号、姓名、专业名称和这门课的成绩
14、查询学生不及格的情况列出不及格学生的学号、姓名和不及格的课程名称。
在SQL语言中,一个SELECT-FROM-WHERE语句称为一个查询块,将一个查询块嵌套在另外一个查询块的WHERE字句或HA VING短语的条件中的查询称为嵌套查询。
嵌套查询,写出SQL语句并将结果截图:
15、查询没有选修课程540011的学生,列出学生的学号和姓名。
16、查询每门课都是80分以上的学生的学号与姓名。