数据库原理 实验2解答
数据库概念第二版,实验二 参考答案
![数据库概念第二版,实验二 参考答案](https://img.taocdn.com/s3/m/5b7dff3831126edb6f1a107a.png)
实验二SQL Server 2000 查询分析器的使用1.建立数据库文件2.在数据库文件中建立表、修改表(主码、完整性约束的使用)3.查询操作(2)实验数据及具体要求1.对于教学数据库的三个基本表学生关系Student(SNO,SNAME,SSEX,SAGE,SDEPT)学习关系SC(SNO,CNO,GRADE)创建数据库文件create database jxgl创建学生关系Student(SNO,SNAME,SSEX,SAGE,SDEPT)use jxglCREATE TABLE Student(Sno CHAR(5) PRIMARY KEY,Sname CHAR(20) ,Ssex CHAR(2) check (ssex='男' or ssex='女'),Sage INT check(sage between 15 and 35),Sdept CHAR(15) check (sdept in ('CS','IS','MA','PH')));在student表中插入记录insert into studentvalues('95001','李勇','男',20,'CS')创建学习关系SC(SNO,CNO,GRADE)CREATE TABLE SC(Sno CHAR(9),Cno CHAR(4),Grade SMALLINT check(Grade between 0 and 100),PRIMARY KEY (Sno,Cno),/* 主码由两个属性构成,必须作为表级完整性进行定义*/ FOREIGN KEY (Sno) REFERENCES Student(Sno),/* 表级完整性约束条件,Sno是外码,被参照表是Student */ FOREIGN KEY (Cno) REFERENCES Course(Cno)/* 表级完整性约束条件, Cno是外码,被参照表是Course*/ );试用 SQL 的查询语句表达下列查询:1.使用查询分析器建立三个表并输入数据;2.查询选修了课程的学生人数;Select count(distinct sno) from sc /* 加distinct 去掉重复值后计数 */3.给CS系的学生开设5号课程,建立选课信息(成绩暂空)INSERT INTO scSELECT student.sno, o, NULL AS Expr1FROM student CROSS JOINcourseWHERE (student.sdept = 'CS') AND (o = '5')4.将95001学生选修3号课程的成绩改为该课的平均成绩UPDATE scSET grade =(SELECT AVG(grade)FROM scWHERE cno = '3')WHERE (sno = '95001')5.查询计算机系(CS)选修了两门及以上课程的学生的学号,姓名Select sno,snameFrom studentWhere sdept='CS' and sno in (select snofrom scwhere student.sno=sc.snoGroup by sc.sno having count(*)>=2)6.查询student表与sc表基于学号sno的等值连接/自然连接select *from student,scwhere student.sno=sc.sno或SELECT *FROM student INNER JOINsc ON student.sno = sc.sno7.查询课程之先修课的先修课(自身连接)SELECT o, second.cpnoFROM course first INNER JOINcourse second ON first.cpno = o8.查询学生及其选修课程、成绩等情况(不管是否选修均需列出学生信息)select student.sno,sname,ssex,sage,sdept,cno,gradefrom student,scwhere student.sno *=sc.sno或SELECT student.sno, student.sname, student.ssex, student.sage, student.sdept, o,sc.gradeFROM student LEFT OUTER JOINsc ON student.sno = sc.sno9.查询性别为男、课程成绩及格的学生信息及课程号、成绩select student.*,cno,gradefrom student,scwhere ssex='男' and student.sno=sc.sno and grade>=60SELECT student.*, o AS Expr1, sc.grade AS Expr2FROM student INNER JOINsc ON student.sno = sc.snoWHERE (student.ssex = '男') AND (sc.grade >= 60)10.查询与’张立’在同一个系学习的学生信息SELECT *FROM studentWHERE (sdept IN(SELECT sdeptFROM studentWHERE sname = '张立')) AND (sname <> '张立')或SELECT s1.*FROM student s1 , student s2WHERE (s2.sname = '张立') AND (s1.sname <> '张立') and (s1.sdept = s2.sdept)或SELECT s1.*FROM student s1 INNER JOINstudent s2 ON s1.sdept = s2.sdeptWHERE (s2.sname = '张立') AND (s1.sname <> '张立')11.查询选修了课程名为“数据库”的学生学号、姓名和所在系SELECT sno, sname, sdeptFROM studentWHERE (sno IN(SELECT snoFROM scWHERE cno IN(SELECT cnoFROM courseWHERE cname = '数据库')))或SELECT student.sno, student.sname, student.sdeptFROM student,sc,courseWHERE (ame = '数据库') and ( student.sno = sc.sno ) and (o = o)或SELECT student.sno, student.sname, student.sdeptFROM student INNER JOINsc ON student.sno = sc.sno INNER JOINcourse ON o = oWHERE (ame = '数据库')12.查询哪些课程只有女生选修SELECT DISTINCT cnameFROM courseWHERE ('女' = ALL(SELECT ssexFROM sc, studentWHERE (sc.sno = student.sno AND o = o)))或SELECT DISTINCT cnameFROM courseWHERE (NOT EXISTS(SELECT *FROM sc, studentWHERE (sc.sno = student.sno AND o = o AND student.ssex = '男')))13.查询所有未选修1号课程的学生姓名SELECT snameFROM studentWHERE (NOT EXISTS(SELECT *FROM SCWHERE Sno = Student.Sno AND Cno = '1'))14.查询平均成绩大于85分的学号、姓名、平均成绩SELECT student.sno, student.sname, AVG(sc.grade) AS Expr1FROM student,scwhere (student.sno = sc.sno)GROUP BY student.sno, student.snameHAVING (AVG(sc.grade) > 85)或SELECT student.sno, student.sname, AVG(sc.grade) AS Expr1FROM student INNER JOINsc ON student.sno = sc.snoGROUP BY student.sno, student.snameHAVING (AVG(sc.grade) > 85)。
数据库原理与应用课程实验指导书(附答案) (2)
![数据库原理与应用课程实验指导书(附答案) (2)](https://img.taocdn.com/s3/m/89a34905aaea998fcc220ea3.png)
《数据库原理与应用》课程实验指导书苏州工业职业技术学院信息工程系2008.1目录目录 (Ⅰ)前言………………………………………………………………………………………实验一初识SQL Server 2000…………………………………………………实验二数据库的创建和管理…………………………………………………实验三表的创建、管理及数据操作……………………………………………实验四单表查询……………………………………………………………实验五连接查询…………………………………………………………实验六嵌套查询……………………………………………………实验七视图的创建和管理……………………………………………………实验八游标的使用……………………………………………………实验九T-SQL语言编程基础…………………………………………………实验十函数…………………………………………………………………………实验十一索引、默认值约束和默认值对象………………………………实验十二数据完整性的实现…………………………………………………实验十三存储过程…………………………………………………实验十四触发器…………………………………………………实验十五系统安全管理…………………………………………………实验十六数据备份、恢复和导入导出………………………………………实验十七综合训练…………………………………………………前言数据库技术是计算机学科中的一个重要分支,发展迅速、应用非常广泛,几乎涉及了所有应用领域。
例如,办公系统、生产管理、财务管理、人事管理、工业管理等,都广泛应用了数据库技术。
本实验指导书是《数据库原理与应用》课程的配套实验资料。
通过安排实验及布置的任务,让学生熟练掌握使用关系数据库管理系统SQL Server 2000进行数据库及表的创建和管理、查询、Transact—SQL程序设计、各类约束的创建及使用、视图及索引的创建与管理、SQL Server 的存储过程的创建和管理、SQL Server 的触发器创建和管理、SQL Server的安全性管理、数据库的备份及恢复。
《数据库原理与应用》实验报告二答案
![《数据库原理与应用》实验报告二答案](https://img.taocdn.com/s3/m/03347ac328ea81c758f578c2.png)
selects.sno
fromstudentass,student_courseassc,courseasc,course_classascc
wheres.sno=no=cno=o
fromstudent_course sc2,student s
wheresc2.sno=s.snoands.sname='刘晨'no=no)
9)求其他系中比计算机系某一学生年龄小的学生(即年龄小于计算机系年龄最大者的学生)
selects.sno,s.sname,sbirth
5)SELECT DISTINCT s.sno,sname,dname
FROM student AS s,department AS d,student_course as sc,major as m
WHERE s.mno=m.mno andd.dno=m.dnoAND s.sno=sc.sno ANDmark<60
3、思考题
如何求出某门课成绩排名第5到第10之间的学生姓名。
CREATEVIEWV3
AS
selecttop 10 *fromstudent_course
whereccno=’’
order bymark
select*fromV3
except
selecttop 4 *fromV3
四、实验步骤及结果(包含简要的实验步骤流程、结论陈述)
查询有不及格成绩的学生的学号、姓名和系名
2、根据下面的要求,写出相应的查询语句
1)查询所有男同学的选课情况,要求列出学号、姓名、开课号、分数。
selects.sno,sname,ccno,mark
数据库原理及应用实验答案
![数据库原理及应用实验答案](https://img.taocdn.com/s3/m/affa2d9cb8f3f90f76c66137ee06eff9aff84912.png)
数据库原理及应用实验答案1. 数据库原理数据库原理指的是数据库系统的内部机制和运行原理。
以下是数据库原理的相关内容:- 数据库模型:定义数据的组织方式和约束条件,包括层次模型、网状模型、关系模型、面向对象模型等。
- 数据库结构:描述数据库中数据组织的方式,包括表、视图、索引、存储过程等。
- 数据操作:定义对数据库中数据进行操作的方式,包括增删改查等。
- 数据库事务:保证数据库操作的一致性和完整性的机制,包括ACID(原子性、一致性、隔离性、持久性)属性等。
- 数据库并发控制:处理多个用户同时访问数据库产生的冲突问题,包括加锁、事务隔离级别等。
- 数据库恢复与备份:保证数据库数据不丢失和可恢复的机制,包括日志、回滚、快照等。
2. 数据库应用实验答案以下是数据库应用实验中的相关问题和答案:问题1:什么是数据库?答案:数据库是存储、管理和操作结构化数据的系统。
它提供了数据的组织方式和数据操作的接口,用户可以通过数据库来存储和访问数据。
问题2:数据库的优点是什么?答案:数据库的优点包括:数据共享性高,数据冗余度低,数据一致性好,数据安全性高,数据的集中管理和维护方便等。
问题3:什么是关系数据库?答案:关系数据库是基于关系模型的数据库系统。
它使用表描述数据之间的关系,在关系数据库中,数据以行和列的形式存储,并通过主键和外键来建立关联关系。
问题4:什么是SQL语言?答案:SQL(Structured Query Language)是用于访问和操作关系数据库的标准语言。
它包括数据查询语言(SELECT)、数据定义语言(CREATE、ALTER、DROP)、数据操作语言(INSERT、UPDATE、DELETE)和数据控制语言(GRANT、REVOKE)等。
问题5:什么是数据库调优?答案:数据库调优是指对数据库系统进行性能优化的过程。
它包括优化数据库结构、调整数据库参数、优化查询语句、优化索引和表分区、优化物理存储等方法,以提高数据库的性能和响应速度。
数据库原理及应用实验指导书答案
![数据库原理及应用实验指导书答案](https://img.taocdn.com/s3/m/ce69f195250c844769eae009581b6bd97f19bc02.png)
数据库原理及应用实验指导书 - 答案实验一:数据库管理系统的安装与配置问题一数据库管理系统(DBMS)是一种软件,用于管理和组织数据库。
它允许用户创建,读取,更新和删除数据库中的数据。
常见的数据库管理系统有MySQL,Oracle,SQL Server等。
问题二在实验室环境中,我们将使用MySQL作为我们的数据库管理系统。
以下是MySQL的一些常见特点: - 开源免费 - 跨平台支持 - 可扩展性强 - 有大型的用户社区和丰富的资源支持问题三MySQL的安装步骤如下: 1. 下载MySQL安装文件,可以从MySQL官方网站或者其他可信的下载源获取。
2. 运行安装程序,按照向导的指示进行安装。
3. 选择是否要安装MySQL 服务器和MySQL工具。
4. 设置密码以保护数据库的安全。
5. 完成安装程序并启动MySQL服务。
数据库是一个组织和存储数据的容器。
在关系型数据库中,数据以表的形式存储,每个表包含多个行和列。
每行代表一个记录,每列代表一个字段。
问题五关系型数据库管理系统(RDBMS)是一种DBMS,它使用结构化查询语言(SQL)来操作和处理数据。
常见的关系型数据库管理系统有MySQL,Oracle,SQL Server等。
问题六开放数据库连接(ODBC)是一种标准的数据库访问方法,它允许不同的应用程序通过统一的接口访问不同的数据库管理系统。
ODBC驱动程序充当应用程序和数据库之间的翻译器。
问题七在Windows系统中,ODBC数据源可以通过控制面板的“管理工具”来配置。
在数据源配置对话框中,可以添加,编辑和删除ODBC数据源。
在Windows系统中,可以使用ODBC接口库和ODBC驱动程序来连接和操作数据库。
具体步骤如下: 1. 加载ODBC接口库。
2. 初始化ODBC环境。
3. 建立数据库连接。
4. 执行SQL语句。
5. 关闭数据库连接。
6. 释放ODBC环境。
问题九ODBC接口库是一组API函数,用于连接和操作数据库。
数据库实验报告及答案
![数据库实验报告及答案](https://img.taocdn.com/s3/m/e83e2f2db4daa58da0114a1a.png)
实验任务书(实验一、实验二)课程名称:数据库原理与技术实验报告要求:1.列出所有的SQL语句和源代码;2.程序要求有适当的注释;3.对数据完整性约束实施要求给出相应的测试用例。
4.实验报告提交电子档。
实验内容:一:创建表、更新表和实施数据完整性1.运行给定的SQL Script,建立数据库GlobalToyz。
2.了解表的结构,建立所有表的关系图。
3.利用系统定义的存储过程sp_helpdb查看数据库的相关信息,例如所有者、大小、创建日期等。
4.查看所有表中出现的约束(包括Primary key, Foreign key, check constraint, default, unique)5.把价格在$20以上的所有玩具的信息拷贝到称为PremiumToys的新表中。
SELECT*INTO PremiumToysFROM ToysWHERE Toys.mToyRate>20;6.对表Toys实施下面数据完整性规则:(1)玩具的现有数量应在0到200之间;(2)玩具适宜的最低年龄缺省为1。
ALTER TABLE ToysADD CONSTRAINT C1CHECK (siToyQoh BETWEEN 0 AND 200);ALTER TABLE ToysADD CONSTRAINT C2default(1)for siLowerAge;7.给id为‘000001’玩具的价格增加$1。
update Toys set mToyRate=mToyRate+1 where cToyId='000001';8. 列出表PickofMonth中的所有记录,并显示中文列标题。
SELECT cToyId[玩具编号],siMonth[生产月份],iYear[生产年份],iTotalSold [销售总量]FROM PickofMonth;二:查询数据库1.显示属于California和Illinoi州的顾客的名、姓和emailID。
数据库实验二作业及答案
![数据库实验二作业及答案](https://img.taocdn.com/s3/m/209aad6ac950ad02de80d4d8d15abe23482f030a.png)
数据库实验二作业及答案实验2 SQL Server 数据库的管理一、实验目的1.了解SQL Server数据库的逻辑结构和物理结构的特点。
2.学会使用企业管理器对数据库进行管理。
3.学会使用Transact-SQL语句对数据库进行管理。
二、实验准备1.确定能够创建数据库的用户是系统管理员,或是被授权使用CREATE DATABASE语句的用户。
2.确定要创建的数据库名、所有者(即创建数据库的用户)、数据库大小(最初的大小、最大的大小、是否允许增长即增长的方式)和存储数据的文件。
3.了解常用的创建数据库方法。
三、实验内容及步骤1.在企业管理器中创建studentsdb数据库。
(1)运行SQL Server管理器,启动企业管理器,展开服务器“(LOCAL)(Windows NT)”。
(2)右击“数据库”项,在快捷菜单中选择“新建数据库”菜单项。
在新建数据库对话框的名称文本框中输入学生管理数据库名studentsdb。
2.选择studentsdb数据库,在其快捷菜单中选择“属性”菜单项,查看“常规”、“数据文件”、“事务日志”、“文件组”、“选项”和“权限”页面。
3.打开studentsdb数据库的“属性”对话框,在“数据文件”选项卡中修改studentsdb数据文件的“分配空间”大小为2MB。
指定“最大文件大小”为5MB.在“事务日志”选项卡中修改studentsdb数据库的日志文件的大小在每次填满时自动递增5%。
4.启动查询分析器,在查询分析器中使用Transact-SQL语句CREATE DATABASE创建studb数据库。
然后通过系统存储过程sp_helpdb查看系统中的数据库信息。
CREATEdatabase studbON(NAME=studb,FILENAME='C:\database')exec sp_helpdb5.在查询分析器中使用Transact-SQL语句ALTER DATABASE修改studb数据库的设置,指定数据文件大小为5MB,最大文件大小为20MB,自动递增大小文1MB。
上海大学大数据库2原理研讨+作业地个人解答
![上海大学大数据库2原理研讨+作业地个人解答](https://img.taocdn.com/s3/m/db55f845102de2bd9705880f.png)
第1周(第五章:函数依赖、推理规则、闭包)二、研讨课:1. 假设员工关系EMP(员工号,,部门,部门,部门负责人,家庭住址,家庭成员,成员关系)如下表所示。
如果一个部门可以有多名员工,一个员工可以有多个家庭成员,那么关系EMP属于数据冗余问题;为了解决这一问题,应该将员工关系EMP分解为(员工号,,部门,家庭地址,家庭成员,成员关系)(部门,部门负责人,部门) ,画出ER图(上学期学过了,很简单,懒得画),主外键(主键:员工号,外键:部门)(主2. 判断F={A->BC,B->A,AD->E}和G={A->BC,B->A,BD->E}是等价的因为B->A,所以BD->AD,因为AD->E,所以BD->E,所以。
3. 设关系模式R具有n个属性,在模式R上可能成立的函数依赖有(1)个?其中平凡的FD有(2)个?非平凡的FD有(3)个?以上3点都需说明为什么三、作业:1. 设函数依赖集 F={AB->E,AC->G,AD->BG,B->C,C->D},试证AC->G是冗余的。
AD->BG,C->D,所以AC->BG,所以AC->G,所以冗余2.课本Page124:习题5.3(1)X->ø永远满足。
(2)ø->Y,则属性Y对于各元组的值相同。
(3)ø->ø为平凡的函数依赖,永远满足。
3. 课本Page124:习题5.8证明:(反证法)假设存在A→B那么 A→AB,关系模式R的候选码即为A,不是全码∴假设不存在,R不满足A→B同理:R不满足 B→A第2周(第五章:、关键码、最小函数依赖集)二、研讨课:2.设有函数依赖集:F={AB->C,C->A,BC->D,ACD->B,D->EG,BE->C,CG->BD,CE->AG},计算其等价的最小依赖集。
数据库系统原理与设计 实验二答案
![数据库系统原理与设计 实验二答案](https://img.taocdn.com/s3/m/78a5ee7a27284b73f2425096.png)
实验四多表查询1 实验目的与要求(1) 熟练掌握SQL语句的使用。
(2) 熟练使用SQL语句进行连接操作。
2 实验内容1)实验题目:(1) 找出同一天进入公司服务的员工。
(2) 查找与“陈诗杰”在同一个单位工作的员工姓名、性别、部门和职务。
(3) 在Employee表中查询薪水超过员工平均薪水的员工信息。
(4) 查找有销售记录的客户编号、名称和订单总额。
(5) 查询没有订购商品的客户编号和客户名称。
(6) 使用子查询查找32M DRAM的销售情况,要求显示相应的销售员的姓名、性别,销售日期、销售数量和金额,其中性别用“男”、“女”表示。
(7) 查询OrderMaster表中订单金额最高的订单号及订单金额。
(8) 在订单主表中查询订单金额大于“E2005002业务员在2008-1-9这天所接的任一张订单的金额”的所有订单信息。
(9) 查询单价高于400元的商品编号、商品名称、订货数量和订货单价。
(10) 分别使用左外连接、右外连接、完整外部连接查询单价高于400元的商品编号、商品名称、订货数量和订货单价,并分析比较检索的结果。
(11) 使用左外连接查找每个客户的客户编号、名称、订货日期、订单金额,其中订货日期不要显示时间,日期格式为“yyyy-mm-dd”,按客户编号排序,同一客户再按订单金额降序排序输出。
(12) 查找每个员工的销售记录,要求显示销售员的编号、姓名、性别、商品名称、数量、单价、金额和销售日期,其中性别使用“男”和“女”表示,日期使用“yyyy-mm-dd”格式显示。
(13) 查找16M DRAM的销售情况,要求显示相应的销售员的姓名、性别,销售日期、销售数量和金额,其中性别用“男”、“女”表示。
(14) 找出公司男业务员所接且订单金额超过2000元的订单号及订单金额。
(15) 查询每种商品的总销售数量及总销售金额,要求显示出商品编号、商品名称、总数量及总金额,并按商品号从小到大排列。
数据库系统原理 实验二 以图形界面方式进行数据库和表的创建
![数据库系统原理 实验二 以图形界面方式进行数据库和表的创建](https://img.taocdn.com/s3/m/ceac0b05b7360b4c2e3f6471.png)
实验二以图形界面方式进行数据库和表的创建实验目的:掌握使用图形界面的方式进行库和表的创建,以及数据的插入方法。
实验内容及要求:1、利用图形界面方式创建数据库;2、利用图形界面方式创建一个模式;3、利用图形界面方式在模式中创建表;4、利用图形界面方式在表中插入数据。
实验工具:企业管理器——可以运行在多种操作系统平台上的图形界面总控管理平台。
它允许用户、程序员和管理员进行管理和配置数据库服务器、管理各种数据库对象、管理数据安全、监视数据库服务活动、诊断修改和优化数据库等操作。
企业管理器的总的设计思想是记录下用户通过图形方式进行的操作,并转换成相应的SQL语句。
实验过程及步骤:一、创建TEST数据库创建步骤:打开企业管理器→在企业管理器的【数据库】节点,点击鼠标右键→点击【新建数据库】→弹出【新建数据库窗口】,在该窗口中的“数据库名称”后面输入要创建的数据库名,其他选项默认即可→点击【确定】。
图1 新建数据库二、在TEST数据库中创建SCOT模式实验一中已将TEST数据库创建完成,接下来需要在该数据库中创建SCOT 模式。
模式(Schema)实际上是一个名字空间,它包含命名对象(表,视图,存储过程,函数和序列)。
创建步骤:打开企业管理器→在企业管理器的【模式】节点,点击鼠标右键→点击【新建模式】→弹出【新建模式窗口】,在该窗口中的“模式名”后面输入要创建的模式名,点击【确定】。
图2 新建模式三、创建表在SCOT模式中创建三张表,分别为DEPT部门表、EMP员工表和SALGRADE工资等级表。
其中各表的结构为:DEPT表结构EMP表结构SALGRADE表结构创建步骤:打开企业管理器→在企业管理器的【表】节点,点击鼠标右键→点击【新建表】→弹出【新建表窗口】,在该窗口中的设置列名、数据类型、主键、精度等,点击【保存】,在窗口中输入表名。
图3 创建表四、在表中插入数据DEPT表数据EMP表数据SALGRADE表数据创建步骤:打开企业管理器→在企业管理器的【表】节点中找到插入数据的表名→点击鼠标右键→点击【打开表】下的【返回所有行】→弹出【打开表窗口】,在该窗口中的输入具体数据。
数据库原理实验2
![数据库原理实验2](https://img.taocdn.com/s3/m/a331152558fb770bf78a5585.png)
实验二:数据库的简单查询和连接查询实验实验器材:PC,Windows 2000,SQL Server 2000实验目的:1.掌握在查询分析器里使用SELECT语句进行数据库单表查询操作;2.对于在执行SQL脚本程序时遇到的错误,要能判断并修正。
实验内容:1.在实验1的基础上,对数据表进行多种单表基本查询;2.记录相关查询结果(如有查询结果,只要求写出最多前两条记录即可)。
实验步骤:在查询分析器中输入SQL脚本程序程序,进行分析,有错误进行调试。
调试通过再执行。
1.基本查询(从student表中检索出所有学生信息)。
SQL脚本程序:…………………………..…………………………..…………………………..…………………………..执行结果:…………………………..…………………………..2.查询时使用AS关键字改变列标题的显示(从student表中检索出所有学生的学号、姓名、班级编号并分别加上“学号”、“姓名”、“班级编号”的标题信息)。
SQL脚本程序:…………………………..…………………………..…………………………..…………………………..执行结果:…………………………..…………………………..3.基于WHERE子句进行数据查询1)条件比较查询(检索出student表中年龄大于21岁的学生资料)。
SQL脚本程序:…………………………..…………………………..…………………………..…………………………..执行结果:…………………………..…………………………..2)使用BETWEEN子句进行查询(检索出course表中学分介于3~5分的课程资料)。
SQL脚本程序:…………………………..…………………………..…………………………..…………………………..执行结果:…………………………..…………………………..3)使用IN子句进行查询(检索出teacher表中职称为“助教”或“讲师”的教师编号、姓名、职称)。
数据库实验答案(第二版)
![数据库实验答案(第二版)](https://img.taocdn.com/s3/m/a362280bbb68a98271fefaa5.png)
实验二:drop table 订单明细godrop table 订购单godrop table 产品godrop table 客户gocreate table 客户(客户号char(8) primary keycheck(客户号like '[a-z]%' or 客户号like '[A-Z]%'), 客户名称varchar(40) not null,联系人char(8),地址varchar(40),邮政编码char(6) check(邮政编码like '[0-9][0-9][0-9][0-9][0-9][0-9]'),电话char(12) check(isnumeric(电话)=1and (len(ltrim(电话)))>=7))--drop table 产品create table 产品(产品号char(8)collate Chinese_PRC_Stroke_CS_AI_WS --大小写敏感not nullprimary key check(产品号like '[A-Z][A-Z]%'),产品名称varchar(40) ,规格说明char(40) unique,单价smallmoney check(单价>0))--drop table 订购单create table 订购单(客户号char(8) not null foreign key references 客户,订单号char(8) primary key,订购日期datetime default getdate())--drop table 订单明细create table 订单明细(订单号char(8) foreign key references 订购单,序号tinyint ,产品号char(8)collate Chinese_PRC_Stroke_CS_AI_WS --大小写敏感not null foreign key references 产品,数量smallint check(数量>0),primary key (订单号,序号))2 1)--1.产品规格的类型改为varchar(40)alter table 产品alter column 规格说明varchar(40)--出现以下错误:服务器: 消息5074,级别16,状态8,行1对象'UQ__产品__7C8480AE' 依赖于列'规格说明'。
SQL数据库原理实验指导书及答案
![SQL数据库原理实验指导书及答案](https://img.taocdn.com/s3/m/a2f7c5f54b73f242326c5f6d.png)
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命令实现。
20XX《数据库原理及应用》实验报告答案
![20XX《数据库原理及应用》实验报告答案](https://img.taocdn.com/s3/m/d9aa11bccc22bcd126ff0c76.png)
20XX《数据库原理及应用》实验报告答案实验二数据定义一、实验目的1、掌握数据库引擎的使用方法,加深对SQL的语句的理解;2、使用SQL语句创建数据库、删除数据库3、熟练掌握DDL语言的数据定义操作,包括CREATE、ALTER、DROP。
二、实验内容在SQL查询分析器中用CREATE、DROP、ALTER语句创建、删除、修改基本表。
三、实验步骤1、根据课本中的说明,分析S表,P表,J表和SPJ表的主码和外码:(1) S表,P表,J表的主码分别是哪个属性,S表,P表,J 表这三个表有没有外码?如果有,请写出。
S表的主码 SNO P表的主码PNO J表的主码JNO 没有外码(2) SPJ表的主码是哪几个属性组成的属性组?SPJ表的外码有几个,分别是哪些属性?分别参照哪些表的哪个属性?SPJ主码外码SNO参照S表的SNO,外码PNO参照P表的PNO,外码JNO参照J表的JNO。
2. 新建数据库SPJ,并在数据库SPJ中创建S表,P表,J表和SPJ表。
创建供应商表S的sql语句,要求设置主码:CREATE TABLE S (SNO CHAR(4) PRIMARY KEY, SNAME VARCHAR(40), STATUS SMALLINT, CITY VARCHAR(20) );创建零件表P的sql语句,要求设置主码并将该约束命名为P_PK:CREATE TABLE P(PNO CHAR(4) CONSTRAINT P_PK PRIMARY KEY, PNAME VARCHAR(40), COLOR CHAR(2), WEIGHT SMALLINT );创建工程项目表J的sql语句,要求设置主码并命名为J_PK: CREATE TABLE J (JNO CHAR(4) CONSTRAINT J_PK PRIMARY KEY, JNAME VARCHAR(40), CITY VARCHAR(20) );创建基本表供应情况表SPJ的sql语句,要求设置主码和外码: CREATE TABLE SPJ (SNO CHAR(4) REFERENCES S(SNO),PNO CHAR(4) REFERENCES P(PNO), JNO CHAR(4) REFERENCES J(JNO), QTY SMALLINT,PRIMARY KEY(SNO,PNO,JNO) );3. 在窗口下键入DROP TABLE S命令,运行后观察结果。
数据库实验报告实验二参考答案[最终版]
![数据库实验报告实验二参考答案[最终版]](https://img.taocdn.com/s3/m/8e875b254531b90d6c85ec3a87c24028915f8583.png)
数据库实验报告实验二参考答案[最终版]第一篇:数据库实验报告实验二参考答案[最终版]1.你的老板要求你创建一个数据量为20G的数据库,但是你现在的硬盘上没有一个这么大空闲容量的分区,只有3个空闲容量为8G的分区,请问,你该如何完成这个任务?答:为该数据库创建3个数据文件,每个数据文件只需保存小于8G的数据,将这3个数据文件分别存储在不同的硬盘分区即可。
注:数据库中的数据都保存在该数据库的若干数据文件中,而非日志文件!2.你想创建一个初始大小为2MB的数据库,但是你却发现你创建的数据库的初始大小是5MB,而且不能小于这个值,请问是什么原因?答:系统数据库中的model数据库为用户创建数据库提供模板,也就是说,在创建数据库时,数据库引擎首先通过复制 Model 数据库中的内容来创建数据库的第一部分,然后再用空页填充新数据库的剩余部分。
因此,用户创建的数据库的初始大小不能小于model数据库的大小。
该问题的原因在于model数据库数据文件的初始大小被设定为5MB。
/***************************SQL语言部分*****************************/ /*创建数据库student*/create database studenton(name=student_data,filename='C:DATAstudent_data.mdf', size=3,maxsize=unlimited,filegrowth=1)log on(name=student_log,filename='C:DATAstudent_log.ldf',size =1,maxsize=20,filegrowth=10%)/*修改数据库student--添加数据文件*/alter database student add filegroup studata /*先增加一个文件组studata*/ goalter database studentadd file(Name=student_data1,filename='D:DATAstudent_data1.nd f',Size=50,Maxsize=500,Filegrowth=30%)to filegroup studata /*删除数据库student */ drop database student第二篇:SQL数据库实验报告实验二实验2SQL Server数据库的管理1.实验目的(1)了解SQL Server 数据库的逻辑结构和物理结构的特点。
《数据库原理》实验2——有答案
![《数据库原理》实验2——有答案](https://img.taocdn.com/s3/m/67b1d10716fc700abb68fc94.png)
exec sp_renamedb 'fuzhu','db'
exec sp_dboption 'fuzhu','single',false
9)删除数据库company和DB。
drop database Company
drop database DB
on primary
(Name='stu',
filename='d:\stu_data.mdf',
size=3mb,
maxsize=500mb,
filegrowth=10%)
log on
(name='stu_log',
filename='d:\stu_log.ldf',
size=3mb,
maxsize=unlimited,
七、出现问题及解决办法
如某些操作无法执行,如何解决?
看代码报错行数,查阅帮助可以解决
2、将数据库student的所有物理文件移动到‘D:\xxx‘,并且保证逻辑数据库不受影响,请详细描述解决办法。
进入“企业管理器”--选择数据库服务器,右键单击——所有任务——分离数据库;
之后到你安装MS SQL 的地方找到mdf和ldf文件复制到你想要的位置,之后附加数据库
进入“企业管理器”--》选择数据库服务器,右键单击——所有任务——附加数据库——添加你刚刚的那个mdf文件
size=3, /*这里的mb可以省略*/
maxsize=100,
filegrowth=10%)
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
(1)查询性别为“男”的所有学生的名称并按学号升序排列。
SELECT SnameFROM StudentsWHERE Ssex='男'ORDER BY Sno(2)查询学生的选课成绩合格的课程成绩,并把成绩换算为积分。
积分的计算公式为:[1+(考试成绩-60)*0.1]*Ccredit。
考试成绩>=60 否则=0SELECT Sno, Tno, o, Score, 'Point of Score',CONVERT(FLOAT(1), (Score-60)*0.1*Ccredit+Ccredit)FROM Courses, ReportsWHERE Score>=60 AND o=oUNIONSELECT Sno, Tno, o, Score, 'Point of Score', 0FROM Courses, ReportsWHERE o=o AND (Score < 60 OR Score ISNULL)(3)查询学分是3或4的课程的名称。
SELECT CnameFROM CoursesWHERE Ccredit IN('3','4')(4)查询所有课程名称中含有“算法”的课程编号。
SELECT CnameFROM CoursesWHERE Cname LIKE '%算法%'/*查询得到算法分析与设计、数据结构与算法分析*/(5)查询所有选课记录的课程号(不重复显示)。
SELECT DISTINCT Cno FROM Reports(6)统计所有老师的平均工资。
SELECT A VG(Tsalary) FROM Teachers(7)查询所有教师的编号及选修其课程的学生的平均成绩,按平均成绩降序排列。
SELECT Tno,A VG(Score)FROM ReportsGROUP BY TnoORDER BY A VG(Score) DESC(8)统计各个课程的选课人数和平均成绩。
SELECT Cno,COUNT(Sno),A VG(Score)FROM ReportsGROUP BY Cno(9)查询至少选修了三门课程的学生编号和姓名。
SELECT Sno,SnameFROM StudentsWHERE Sno IN(SELECT SnoFROM ReportsGROUP BY SnoHA VING COUNT(*)>=3)(10)查询编号S26的学生所选的全部课程的课程名和成绩。
SELECT ame,Reports.ScoreFROM Courses,ReportsWHERE Reports.Sno='S26' AND o=o(11)查询所有选了“数据库原理及其应用”课程的学生编号和姓名。
SELECT Sno,SnameFROM StudentsWHERE Sno IN(SELECT Reports.SnoFROM Reports,CoursesWHERE o=o AND ame='数据库原理及其应用')(12)求出至少被两名学生选修的课程编号。
SELECT DISTINCT oFROM Reports X,Reports YWHERE o=o AND X.Sno<Y.Sno(13)查询选修了编号S26的学生所选的某个课程的学生编号。
SELECT Y.SnoFROM Reports X,Reports YWHERE o=o AND X.Sno='S26'/*注:在本题中,如果要求是“查询选修了编号S26的学生所选的某个课程的其他学生编号”时,也就是不包含编号S26学生自身的情况时,在查询条件WHERE中,还需要加上条件X.Sno<Y.Sno*/(14)查询学生的基本信息及选修课程编号和成绩。
SELECTStudents.Sno,Students.Sname,Students.Semail,Students.Scredit,Students.Ssex,o,Reports.ScoreFROM Students JOIN Reports ON Students.Sno=Reports.Sno(15)查询学号S52的学生的姓名和选修的课程名称及成绩。
SELECT Students.Sname,ame,Reports.ScoreFROM Students,Courses,ReportsWHERE Students.Sno=Reports.Sno AND o=oAND Students.Sno='S52'(16)查询和学号S52的学生同性别的所有学生资料。
SELECT *FROM StudentsWHERE Ssex=(SELECT SsexFROM StudentsWHERE Sno='S52')(17)查询所有选课的学生的详细信息。
SELECT *FROM StudentsWHERE Sno IN(SELECT SnoFROM Reports)(18)查询没有学生选的课程的编号和名称。
SELECT Cno,CnameFROM CoursesWHERE Cno NOT IN(SELECT CnoFROM Reports)(19)查询选修了课程名为C++的学生学号和姓名。
SELECT Sno,SnameFROM StudentsWHERE Sno IN(SELECT SnoFROM ReportsWHERE Cno IN(SELECT CnoFROM CoursesWHERE Cname='C++'))(20)找出选修课程UML或者课程C++的学生学号和姓名。
SELECT Sno,SnameFROM StudentsWHERE Sno IN(SELECT SnoFROM ReportsWHERE Cno IN(SELECT CnoFROM CoursesWHERE Cname='C++' OR Cname='UML'))(21)找出和课程UML或课程C++的学分一样课程名称。
SELECT CnameFROM CoursesWHERE Ccredit=SOME(SELECT CcreditFROM CoursesWHERE Cname='UML' OR Cname='C++')/*注:在本题中,将=SOME换成=ANY或IN都可行。
*/ (22)查询所有选修编号C01的课程的学生的姓名。
SELECT SnameFROM StudentsWHERE EXISTS(SELECT *FROM ReportsWHERE o='C01' AND Reports.Sno=Students.Sno)(23)查询选修了所有课程的学生姓名。
SELECT SnameFROM StudentsWHERE NOT EXISTS(SELECT *FROM Reports XWHERE NOT EXISTS(SELECT *FROM Reports YWHERE Y.Sno=Students.Sno AND o=o))(24)利用集合查询方式,查询选修课程C++或选择课程JA V A的学生的编号、姓名和积分。
SELECT Sno,Sname,ScreditFROM StudentsWHERE Sno IN(SELECT SnoFROM ReportsWHERE o=(SELECT oFROM CoursesWHERE ame='C++'))UNIONSELECT Sno,Sname,ScreditFROM StudentsWHERE Sno IN(SELECT SnoFROM ReportsWHERE o=(SELECT oFROM CoursesWHERE ame='JA V A'))(25)实现集合交运算,查询既选修课程C++又选修课程JA V A的学生的编号、姓名和积分。
SELECT Sno,Sname,ScreditFROM StudentsWHERE Sno IN(SELECT X.SnoFROM Reports X,Reports YWHERE(o=(SELECT CnoFROM CoursesWHERE Cname='C++')AND o=(SELECT CnoFROM CoursesWHERE Cname='JA V A'))AND X.Sno=Y.Sno)(26)实现集合减运算,查询选修课程C++而没有选修课程JA V A的学生的编号。
基本的语句模式如下:SELECT Sno FROM ReportsWHERE Cno='C01'AND Sno NOT IN(SELECT Sno FROM Reports WHERECno='C03')本题具体的SQL语句SELECT * FROM StudentsWHERE Sno IN( SELECT Sno FROM ReportsWHERE Cno=(SELECT Cno FROM Courses WHERE Cname='C++')AND Sno NOT IN (SELECT Sno FROM Reports WHERECno=(SELECT Cno FROM Courses WHERE Cname='JA V A'))) (28)求平均成绩在75分以上的课程名select ame,avg(Score) as pjcjfrom COURSE, Reportswhere om= ogroup by ohaving avg(Score)>75(29) 检索“张三”同学不学的课程的课程号SELECT distinct cnofrom Courseswhere cno not in (select ofrom Students, Reportswhere Students.sno= Reports.snoand Students.sname='张三' )。