数据库实验答案
数据库实验内容-答案
实验内容:实验一:数据库的操作使用Management Studio和sql语句分别完成以下操作:1.创建一个名为“SM”的数据库,数据文件初始大小为3MB,最大为50MB,数据库自动增长,增长方式按10%;日志文件初始大小为2MB,数据大小不受限制,按1MB增长。
create database smon(name='smdata',filename='e:\smdata.mdf',size=3,maxsize=50,filegrowth=10%)log on(name='smlog',filename='e:\smlog.ldf',size=2,maxsize=unlimited,filegrowth=1)2.修改数据库“SM”,将数据文件名改成“sm_data”,初始大小改成5MBalter database smmodify file( name='smdata',newname='sm_data',size=5)3.分别查看数据库“SM”,该数据库中的文件和文件组。
exec sp_helpfile smexec sp_helpfilegroup sm4.删除数据库“SM”。
drop database sm实验二:创建表1. 在数据库SM中创建学生表student,课程表course,选课表scstudent(sid,sno,clno,sname,ssex,sage,sbir)说明:sid int identity(1,1) 序号sno 为主关系键,为字符类型学号clno 字符类型,班级号sname 字符类型,并不为空ssex 字符类型,check的值的范围为男女sbir 日期类型出生日期sage int;use smcreate table student( sid int identity(1,1),sno char(10) constraint pk_st primary key,clno char(10),sname varchar(20) not null,ssex char(2) constraint ck_ssex check(ssex in('男','女')),sbir datetime,sage int)course(cno,cname,ccredits,ctno,cpno,ctime)说明:cno 字符类型,主关系键cname 字符类型,唯一键ccredits 学分,精确数值型,精确长度为2,小数位为1ctno ,cpno 字符类型ctime 整型create table course(cno char(4) constraint pk_c primary key,cname varchar(20) constaint uk_cname unique,ccredit decimal(2,1),ctno char(2),cpno char(4),ctime tinyint)sc(sno,cno,score)说明:sno+cno为主键,并且sno是student的外部键,cno是course的外部键。
数据库实验(实验七数据查询)实验报告答案
实验7数据查询【实验内容】7.1单表查询1、指定列或全部列查询1) 查询S表中全体学生的详细记录use jxsk select * from S出言岂select - f Tdtt s|.1结杲SEX AGE DEPT NATEVEJ_a,i soi王青山19计算机NULL2SI—赵亦17软件MULL 35218计算机NULL4S3弓綽明胃IS信息NULL554李四21包动ft NULL&S519软件NULL756昊丽20计算机NULL8S7范思明女ie NULL9S820自动化NULL10S919枫牛NULL2) 查询所有学生的姓名及其岀生年份。
use jxsk select SN, 2012 - AGEfrom S1「王諭】1&932赵亦1995J钱尔15944號慣明隔&李四1S516周展憫15537昊丽13828范思明1994S?«1S9210张海涛2、按条件查询及模糊查询1)查询考试成绩有不及格的学生的学号。
use jxsk selectdistinct SNOfrom SCwhere SCORE<602)查询年龄在20 —23岁之间的学生的姓名、系名和年龄use jxsk select SN,DEPT, AGEfrom Swhere AGE>=20 and AGE<= 30□ us* select 5N, DEET, troni 5L AGE>=20 ard AGE<-30V结果J消息| SH DEPT ,<SE1[ SS'J自动化212昊丽计算机203补珊自动化203)查询姓李的学生的姓名、学号和性别。
use jxsk select SN, SNO, SEXfrom S where SNlike '李%'□ use jxsk select ^NO f SEX from 5 wriere EE 丄是'李虽「Array4) 查询名字中第二个字为明”字的男学生的姓名和系名use jxsk select SN, DEPTfrom Swhere SNlike '_% 明’and SEX='男’SN DEPTi !信息h^iiiiauaB in KI ■■■■■&■■■■#3、对查询结果排序1) 查询信息系、计算机系学生的姓名、系名,结果按系名升序,按姓名降序排序。
数据库实验五题目答案
实验五实验5.1 数据查询1)要求以School数据库为例,在该数据库中存在四张表格,分别为:●表STUDENTS(sid, sname, email, grade);●表TEACHERS(tid, tname, email, salary);●表COURSES(cid, cname, hour);●表CHOICES(no, sid, tid, cid, score)在数据库中,存在这样的关系:学生可以选择课程,一个课程对应一个教师。
在表CHOICES中保存学生的选课记录。
按以下要求对数据库进行查询操作:(1)查询年级为2001的所有学生的名称并按编号升序排列。
程序:Select snamefrom studentswhere grade='2001'order by sid asc;(2)查询学生的选课成绩合格的课程成绩。
程序:Select scorefrom choiceswhere score>'59';(3)查询课时是48或60的课程的名称。
程序:select cnamefrom courseswhere hour='48'or hour='60';(4)查询所有课程名称中含有data的课程编号。
程序:select cidfrom courseswhere cname like'%data%';(5)查询所有选课记录的课程号(不重复显示)。
程序:select distinct cidfrom choices;(6)统计所有教师的平均工资。
程序:select avg(salary)from teachers;(7)查询所有教师的编号及选修其课程的学生的平均成绩,按平均成绩降序排列。
程序:select tid,avg(score)from choicesGROUP BY tidorder by avg(score)desc;(8)统计各个课程的选课人数和平均成绩。
数据库实验答案
1 使用图形化界面,创建一个名为“SM”的数据库,创建在U盘上2 使用T-SQL语句,创建SM数据库中的学生表Student,表中包括的字段有学号,班级编号,姓名,性别,出生日期,年龄。
create table SM.dbo.student(学号int ,姓名nvarchar(5) not null,性别nchar(1),出生日期datetime,班级编号char(1))3 使用T-SQL语句,创建SM数据库中的班级表Class,表中包含的字段有班级编号,教师编号,院系编号,班级名称。
create table SM.dbo.class(班级编号char(11),教师编号char(2),院系编号tinyint ,班级名称nchar(8))4 使用T-SQL语句,创建SM数据库中的课程表Course,表中包含的字段有课程编号,课程类型编码,课程名称,课程介绍,学分,总学时,先修课程,学期。
create table SM.dbo.course_info(程编号varchar(6),课程类型编码varchar(7),课程名称nchar(4),课程介绍nvarchar(30),学分numeric(3,1),总学时int),先修课程nchar(6),term char(1))5 使用图形化界面为表Student增加一列,列名为Address,数据类型为VARCHAR,长度为30,允许空。
Use smAlter table studentAdd address varchar(3) not null6 用SQL语句修改表Course的列属性,将课程名称的长度改为40,且不允许空。
Use smAlter table studentAlter column CName varchar(40) not null7 用SQL语句删除表Student中的列Address。
Use smAlter studentDrop column address8使用SQL语句向表中插入数据。
数据库实验报告及答案
实验任务书(实验一、实验二)课程名称:数据库原理与技术实验报告要求: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。
数据库技术实验报告的答案
数据库技术实验报告的答案实验目的:本次实验旨在加深对数据库管理系统(DBMS)的理解,掌握数据库设计、实现和查询的基本技能,并通过实际操作来熟悉SQL语言的运用。
实验环境:1. 操作系统:Windows 102. 数据库管理系统:MySQL 8.03. 开发工具:Visual Studio Code实验内容:1. 数据库的创建与设计2. 数据表的创建与数据类型选择3. 数据的插入、更新与删除4. SQL查询语句的编写与执行5. 数据库的备份与恢复实验步骤与结果:1. 数据库的创建与设计:- 使用MySQL命令行工具创建名为“StudentsDB”的数据库。
- 设计了三个表:Students(学生信息),Courses(课程信息),Enrollments(选课信息)。
2. 数据表的创建与数据类型选择:- 为Students表创建字段:StudentID(INT,主键),Name (VARCHAR(50)),Age(INT),Gender(CHAR(1))。
- 为Courses表创建字段:CourseID(INT,主键),CourseName (VARCHAR(100)),Credits(INT)。
- 为Enrollments表创建字段:EnrollmentID(INT,主键),StudentID(INT),CourseID(INT),Grade(CHAR(2)),并设置StudentID和CourseID为外键。
3. 数据的插入、更新与删除:- 向Students表插入了10条学生记录。
- 向Courses表插入了5门课程记录。
- 通过Enrollments表记录了学生的选课情况,包括成绩。
- 使用UPDATE语句更新了学生的选课成绩。
- 使用DELETE语句删除了某些学生的选课记录。
4. SQL查询语句的编写与执行:- 编写了多条SELECT语句,查询了学生信息、课程信息以及学生的选课情况。
- 使用了JOIN操作查询了学生与其选修课程的关联信息。
数据库技术与应用实验报告及答案
数据库技术与应用实验报告册所在学院________________班级________________学号________________姓名________________批阅教师________________时间:2008.9—2008.12实验一实验名称数据库的规范化设计得分实验要求1.熟悉ACCESS数据库的建库过程2.理解数据库规范化设计的基本内容3.根据给定的数据表作出分解,达到规范化的要求实验设备实验地点实验内容:1.使用SQL语句写出根据下列表格创建Access数据库并输入数据操作内容;学号姓名性别出生年月联系电话课程号课程名成绩20000101沈吉洁女1982-10-16021-68120304000006C语言程序设计67 20000101沈吉洁女1982-10-16021-68120304000007数据库原理20000102丁爽女1981-11-15021-32450120000006C语言程序设计56 20000102丁爽女1981-11-15021-32450120000007数据库原理76 20010101李颖女1982-9-240771-56703630000001高等数学78 20010101李颖女1982-9-240771-56703630000003毛泽东思想65 20010101李颖女1982-9-240771-56703630000005计算机专业英语85 20010101李颖女1982-9-240771-56703630000006C语言程序设计60 20010101李颖女1982-9-240771-56703630000007数据库原理78 20010101李颖女1982-9-240771-56703630000010大学体育60 20010102王玉华女1982-10-2021-61424229000001高等数学60 20010102王玉华女1982-10-2021-61424229000003毛泽东思想80 20010102王玉华女1982-10-2021-61424229000005计算机专业英语75 20010102王玉华女1982-10-2021-61424229000006C语言程序设计60 20010102王玉华女1982-10-2021-61424229000007数据库原理75 20010102王玉华女1982-10-2021-61424229000010大学体育80计算机软件技术课群——数据库技术与应用实验报告2.指出该表格有哪些不合理的地方(主键、冗余、传递等问题)?你是如何加以解决的(如何分解,分解的依据)?分解后如何保持表格的完整性(建立了哪些关系,画图说明)?实验收获:实验二实验名称网络数据库应用的设计与实践得分实验要求1.熟悉SQL SERVER的环境与设置2.了解SQL Server数据库与其他数据库数据导入导出操作3.了解SQL Server数据库备份操作4.会使用系统存储过程查看数据库信息实验设备实验地点实验内容:1.在Windows 2000 Server环境中使用SQL Server,并将上个实验报告建立的Access数据库导入到SQL Server实例中,写出具体的操作步骤。
数据库实验答案
实验3 使用T-SQL语言完成单表查询一、实验目的掌握使用T—SQL语言完成单表查询掌握常用谓词的用法掌握where子句的用法掌握order by 子句的用法掌握group by 子句和having短语的用法二、实验环境Microsoft SQL Server 2000。
三、实验内容和要求1.查询全体学生的详细信息。
2.查询所有课程的详细信息.3.查询所有选课记录的详细信息,要结果表中的列名以中文的形式显示,分别为:学号,课程号,成绩。
4.查询已被学生选修了的课程的编号。
5.查询系别编号为“d002”的学生的姓名和性别。
6.查询年龄在19至21岁或者性别为“女”的学生的学号和所在系别编号。
7.查询系别编号为d001、d002和d003的学生的学号和姓名。
8.查询课程名为“C_”开头的课程名和学分.9.某些学生入学后还没有确定所在的系,查询还没有确定系的学生的姓名。
10.查询成绩大于60分的学生的学号、课程号和成绩,并将查询结果按课程编号升序排列,同一课程的成绩按分数降序排列。
11.查询学校所开设的总的课程数.12.计算2号课的学生成绩总和以及平均成绩,对应的列名分别为“总成绩”和“平均成绩”。
13.查询选修了3号课程的学生的最高分和最低分,对应的列名分别为“最高分”和“最低分"。
14.求各个系别的编号以及各系的人数。
15.查询选课人数大于等于2人的课程编号以及选课的人数。
16.查询学生200215122选修课程的总成绩对应的列名为“总成绩”,并显示出学号。
17.查询有2门以上课程是80分以上的学生的学号及课程数。
18.查询选修了1号课的学生的学号和成绩,结果按成绩降序、学号升序排列.实验1 使用T-SQL语言建库、建表实验2 向表中增、删、改数据四、实验目的掌握使用T-SQL建库、建表、修改表;掌握使用T-SQL对表中数据进行插入、删除和修改.五、实验环境Microsoft SQL Server 2000.六、实验内容和要求19.建立数据库STDB20.在数据库STDB中建立四个表:Student表Department表Course表21.分别向以上四个表中增加数据。
数据库实验及答案
实验二SQL语言的基本操作实验目的和要求:掌握利用SQL语句完成各种查询操作的能力。
重点掌握用SELECT语句进行各种查询;掌握INSERT语句的用法。
实验内容:用SQL语句完成一下的要求:1.查询信息系(IS)的所有学生信息select * from student where sdept=’is’2.查询选修了“数学”课的所有学生名单Select s.sno,snameFrom student s,course c,scWhere s.sno=sc.sno and o=o and cname=’数学’3.查询至少选修了一门其直接先行课为5号课程的学生的姓名。
Select snameFrom student s, sc, course cWhere s.sno=sc.sno and o=o and pcno=’5’4.查询全体学生的姓名和出生年份。
select sname,year(now())-sage as '出生年份' from student5.查询所有姓王的学生。
select *from student where sname like '王%'6.查询选修了3号课程的学生姓名及成绩,并按成绩降序排序。
Select sname,gradeFrom student s, scWhere s.sno=sc.sno and o=’3’Order by grade desc7.查询全体学生情况,查询结果按所在系的系号升序排列,同一系中的学生按年龄降序排列。
Select *From studentOrder by sdept asc,age desc8.计算2号课程的平均成绩。
Select avg(grade)From scWhere cno=’2’9.查询选修了2号课程的学生的最高成绩。
select max(grade) from sc where cno='2'10.求各个课程号及相应的选课人数。
数据库原理实验答案
3)向SC表中插入数据
Insert Into SC(Sno,Cno, Grade) Values(200215121,1,92);
Insert Into SC(Sno,Cno, Grade) Values(200215121,2,85);
Insert Into SC(Sno,Cno, Grade) Values(200215121,3,88);
Insert Into SC(Sno,Cno, Grade) Values(200215122,2,90);
Insert Into SC(Sno,Cno, Grade) Values(200215122,3,80);
Insert Into SC(Sno,Cno, Grade) Values(200215121,4,92);
Insert Into SC(Sno,Cno, Grade) Values(200215121,5,85);
Insert Into SC(Sno,Cno, Grade) Values(200215121,6,88);
Insert Into SC(Sno,Cno, Grade) Values(200215123,2,90);
select sno,grade from sc where cno='3' order by grade desc;
8)查询各个课程号与相应的选课人数。
select cno, count(sno) from sc group by cno;
2. 连接查询操作。该实验包括等值连接、自然连接、求笛卡儿积、一般连接、外连接、内连接、左连接、右连接和自连接等。
数据库实验答案
1)找出 MGM studios 的地址。
select 地址from 制片公司where 公司名称='MGM studios'2)找出 Sandra Bullock 的出生日期。
select 生日from 电影明星where 姓名='Sandra Bullock'3)找出在2003年拍摄过电影的所有影星,或者拍摄过电影中含有"天空"的电影的所有明星。
select 演员姓名$from 演员参演电影where 拍摄年份=2003 or 电影名称 like'%天空%'4)找出净资产至少1000万美元的所有行政长官。
select 姓名from 制片人与行政总裁where 资产>=5)找出所有的男影星或者是住址中含有 Malibu 的影星。
select 姓名from 电影明星where 地址 like 'Malibu' or 性别 like '男'@1)电影"加勒比海盗4"中的男影星都有谁。
select 姓名from 电影明星where 性别 ='男' and 姓名 in(select 演员姓名from 演员参演电影where 电影名称='加勒比海盗4')2)谁是米高梅制片公司的总裁。
{select 姓名from 制片人与行政总裁where 身份证号 =( select 行政总裁from 制片公司where 公司名称 ='MGM studios')4)那些电影比《乱世佳人》更长。
select 电影名称from 电影[where 长度 >(select 长度from 电影where 电影名称 = '乱世佳人')5)那些行政长官比 Tom 更富有。
select 姓名from 制片人与行政总裁where 资产>^(select 资产from 制片人与行政总裁where 姓名='Tom')1、找出价格低于6000元的PC计算机型号、速度、以及硬盘容量。
数据库实验题目及答案
数据库实验
一、题目
药品(编号,名称,价格,厂商)
处方(药品编号,数量,医生编号)
医生(编号,姓名,科室,职称)
根据上面基本表的信息完成下列查询。
1 列出医生“张力”开的所有药品名称。
2 列出比“北方制药”所有药品都贵的药品信息。
3 列出内科所有处方的医生姓名、药品名称、金额
二、答案
题目一
连接查询
select 名称
from Yao ,Chu,Dr
where Yao.编号=Chu.药品编号and Chu.医生编号=Dr.编号and 姓名='张力'
嵌套查询
select 名称
from Yao
where 编号in(select 药品编号
from Chu
where 医生编号in(select 编号
from Dr
where 姓名= '李丽'))
题目二
select *
from Yao
where 价格>all(select 价格from Yao where 厂商='北方制药')
题目三
select 姓名,名称,价格
from Yao ,Chu,Dr
where Yao.编号=Chu.药品编号and Chu.医生编号=Dr.编号and 科室='内科'。
万常选数据库实验参考答案
万常选数据库实验参考答案SET DATEFORMAT YMDGO--选择数据库USE OrderDBGO--实验一:简单查询--1.1 查询所有业务部门的员工姓名、职务、薪水。
SELECT employeeName,headShip,salaryFROM Employee--1.2 查询名字中含有“有限”的客户姓名和所在地。
SELECT customerName,addressFROM Customer--1.3 查询出姓“王”并且姓名的最后一个字为“成”的员工。
SELECT *FROM EmployeeWHERE employeeName LIKE '王%成'--1.4 查询住址中含有上海或南昌的女员工,并显示其姓名、所属部门、职称、住址,其中性别用“男”和“女”显示。
SELECT employeeName AS 姓名, department AS 所属部门, headShip AS 职称, address AS 住址, CASE sex WHEN 'M' THEN '男' WHEN 'F' THEN '女' END AS 性别FROM Employee--1.5 在表sales中挑出销售金额大于等于5000元的订单。
SELECT *FROM OrderMasterWHERE orderSum>5000--1.6 选取订单金额最高的前10%的订单数据。
SELECT TOP(10) PERCENT *FROM OrderMasterORDER BY orderSum--或SELECT TOP 10 PERCENT orderNo,SUM(quantity*price) AS totalPrice FROM OrderDetailGROUP BY orderNOORDER BY SUM(quantity*price) DESC--1.7 查询出职务为“职员”或职务为“科长”的女员工的信息。
数据库实验3答案
实验3答案1.略2.利用T-SQL语句创建和管理以下索引:1)对course表的cname列创建非聚集索引idx_cname;CREATE INDEX idx_cnameON course(cname)2)对sc表的sno和cno列创建复合索引idx_sno_cno;Create Index idx_sno_cnoon sc(sno,cno)3)利用系统存储过程sp_helpidex查看索引idx_cname信息;Exec sp_helpindex crouse4)删除索引idx_cname。
DROP INDEX idx_cname3.示例:使用T-SQL 语句向course和SC表中插入如下记录:INSERT INTO course VALUES('01','数据库','05',4)4.使用T-SQL 语句查看数据表信息1)查看数据表Student所有记录Select*from student2)查看数据表Student中字段sno、sname的所有记录Select sno,sname from student3)按照“院系、学号、姓名、性别、年龄”的顺序显示学生信息表中前10个同学记录,要求在结果集中列标题按照上述内容显示;select top 10 sdept as院系,sno as学号,sname as姓名,ssex as性别, sage as年龄from student4)按照“院系,学号,姓名,年龄”的顺序显示院系不明的所有学生记录;select sdept as院系,sno as学号,sname as姓名,sage as年龄from studentwhere sdept IS NULL5)显示学号最后一位为1或者2或者3的学生的学号、姓名、性别年龄及院系;select sno,sname,ssex,sage,sdept from studentwhere sno like'%[123]'6)显示没有先行课的课程号及课程名;select cno,cnamefrom coursewhere cpno IS NULL7)查询所有院系不是CS、IS的男同学信息。
mysql数据库实验答案
实验一创建、修改数据库和表结构1、用create建立教学数据库的五个基本表:(1)学生表(学号,姓名,性别,年龄),student((Sno, sname,ssex,sage) ;(2)课程表(课程号,课程名,学分),Course (Cno, Cname, credit) ;(3)选课表(学号,课程号,成绩),SC (Sno,, Cno, grade ) ;(4) 教师表(教师号,姓名,性别,出生年月,系部,职称,地址),T(Tno,Tname,ssex,birthday,dept,title,address) ;(5) 工资表(教师号,基本工资,职务工资,合计),Salary(Tno,jbgz,zwgz,hj);Create Database Student default character set utf8 default COLLATE utf8_bin;Use Student;Create Table Student(SNo c har(20) primary key,SName char(20) ,SSex char(4) default '男',SAge int) ENGINE=InnoDB;Create Table Course(CNo c har(20) primary key,CName char(20) NOT NULL,CRedit f loat) ENGINE=InnoDB;Create Table SC(SNo c har(20) NOT NULL,CNo c har(20) NOT NULL,Grade float,Primary Key(SNo, CNo),Foreign Key(SNo) References Student(SNo) On Delete Cascade,Foreign Key(CNo) References Course(CNo))ENGINE=InnoD B;Create Table T(TNo c har(20) Primary Key,TName char(20) NOT NULL,TSex char(4) default '男',birthday DateTime,dept char(20),title char(20),address char(20))ENGINE=InnoDB;Create Table Salary(TNo c har(20) NOT NULL,jbgz float,zwgz float,hj float,Foreign Key(TNo) References T(TNo) On Delete Cascade)ENGINE=InnoDB;2、用alter修改基本表(1)在已存在的学生表student中增加一个sdept(系)的新的属性列;alter table Student add Dept char(20);(2)将学生表student中sname属性列的数据类型修改为变长字符串varchar(10)。
数据库实验5答案
实验五:数据库综合查询一、实验目的1.掌握SELECT语句的基本语法和查询条件表示方法;2.掌握查询条件种类和表示方法;3.掌握连接查询的表示及使用;4.掌握嵌套查询的表示及使用;5.了解集合查询的表示及使用。
二、实验环境已安装SQL Server企业版的计算机(120台);具有局域网环境,有固定IP;三、实验学时2学时四、实验要求1.了解SELECT语句的基本语法格式和执行方法;2.了解连接查询的表示及使用;3.了解嵌套查询的表示及使用;4.了解集合查询的表示及使用;5.完成实验报告;五、实验内容及步骤1.利用Transact-SQL嵌套语句实现下列数据查询操作。
1) 查询选修了计算机体系结构的学生的基本信息。
select*from studentwhere Sno in(select Sno from coursewhere Cno in(select Cno from sc where Cname='计算机体系结构'))2) 查询年龄比李勇小的学生的学号和成绩。
select a.sno,grade from student a,coursewhere a.sno=course.sno and sage<(select sage from student where sname='李勇')3) 查询其他系中比系编号为‘D1’的学生中年龄最小者要大的学生的信息。
select*from student where dnum<>'D1'AND SAGE>(select min(sage)from student where dnum='D1')4) 查询其他系中比系编号为‘D3’的学生年龄都大的学生的姓名。
select*from student where dnum<>'D3'AND SAGE>all(selectsage from student where dnum='D3')5) 查询‘C1’课程的成绩高于70的学生姓名。
数据库实验报告实验二参考答案[最终版]
数据库实验报告实验二参考答案[最终版]第一篇:数据库实验报告实验二参考答案[最终版]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)、交互式SQL(1): 利用SQL 语句创建数据库、表及表之实验(3)、交互式SQL(2)—简单查询2012-04-26 22:12:00| 分类:默认分类|字号订阅一、实验目的和注意事项实验目的:掌握单表查询SELECT、FROM、WHERE 的用法,特别要掌握比较运算符、逻辑运算符的使用。
注意事项:子句WHERE<条件>表示元组筛选条件;子句HAVING<条件>表示元组选择条件;子句HAVING<条件>必须和GROUP BY 子句配合使用;二、教材例题练习(不需要记录在实验报告上)在实验(2)创建的表及插入的示例数据(数据库TSC)基础上,完成教材P83 例3.9三、实验内容及步骤(在实验报告中记录每个查询的SQL语句)在实验(2)创建的表及插入的示例数据(数据库StudentCourse)基础上,完成①查询计算机系全体学生的信息②查询姓“李”的学生的学号和姓名。
③查询课程表中先行课为空的课程名。
④查询考试成绩有不及格的学生的学号。
⑤求选修了C1 课程或C2 课程的学生的学号及成绩。
⑥查询全体计算机系学生的姓名及其年龄。
⑦查询计算机系在1986-1987 年之间出生的学生的姓名。
⑧查询姓“李”的前2个学生(按姓名升序排列)的学号和姓名。
⑨查询选修了两门以上课程的学生学号与课程数。
⑩查询选修课程数大于等于2 的学生的学号、平均成绩和选课门数,并按平均成绩降序排列。
附:参考解答实验(4)、交互式SQL(3)—复杂查询2012-04-26 22:16:24| 分类:默认分类|字号订阅一、实验目的和注意事项实验目的:1.理解多表查询的概念;掌握多表查询的SELECT、 FROM、WHERE、JOIN子句的用法,特别要对比内连接、外连接的结果差异。
2.掌握查询中嵌套查询和组合查询的操作方法,进一步加深对SELECT 语句的理解。
注意事项:1、内连接、左外连接和右外连接的含义及表达方法;2、子句的使用,注意语句的层次嵌套关系和括号的配对使用问题;二、教材例题练习(不需要记录在实验报告上)在实验(2)创建的表及插入的示例数据(数据库TSC)基础上,完成1、教材P93 例3.19,注意some, all的使用方法,并掌握其相应的IN 、NOT IN的等价表示2、教材P94 例3.20,注意SQL Server 2000不支持 Unique谓词,请给出解决这个问题的SQL语句,并记录在教材例3.20的旁边。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
实验二1.打开数据库SQL Server 2000的查询分析器,用SQL语言建表student,表结构如下图所示:字段名类型长度含义id varchar 17 学生编号name varchar 10 姓名sex varchar 2 性别age integer 年龄score numeric 6,2 总成绩CREATE TABLE student( id varchar(17),name varchar(10),sex varchar(2),age integer,score numeric(6,2))2.用SQL语言向表student插入如下6条记录:A0001 赵一男24 480.00insert into student values('A0001','赵一','男','24','480.00');..........3.把所有学生年龄加一岁。
update student set age=age+14.把吴六改名为吴九。
update student set name=‘吴九’where name=‘吴六’5.添加学生李梅,学号H0007。
in sert into student values(‘H0007’, ‘李梅’, ‘女’, 19, ‘435.00’);6.删除1990年后出生的人。
(获取当前年的函数为YEAR(GETDATE()))delet from student where age<year(getdate())-19907.把李梅的性别和年龄分别用女和19岁填充。
update studentset sex=‘女’set age=‘19’where name= ‘李梅’7.删除分数低于400的人。
delet from student where score<4008.添加学生郭八,学号I0008,性别男,年龄20,总分411。
insert into student values(‘I0008’, ‘郭八’, ‘男’, 20, ‘411.00’);9.将所有学生的分数按总分为500,换算成百分制。
updata student set score=score/500*10010.删除学号为“C0003”的学生。
delet form student where id=‘C0003’11.将年龄为25岁的学生分数加3。
updata student set score=score+3 where age=25实验三1.打开数据库SQL Server 2000的查询分析器,用Create Table建表Student,表结构如下所示:字段名类型长度含义ID Varchar 20 学号Name Varchar 10 姓名Age Int 年龄Department Varchar 30 所在系create table student(id varchar(20),name varchar(10),age int,department varchar(30))2.用Create Table建表Course,表结构如下所示:字段名类型长度含义CourseID Varchar 15 课程号CourseName Varchar 30 课程名CourseBefore Varchar 15 先行课create table course(courseid varchar(15),coursename varchar(30),coursebefore varchar(15)) 3.用Create Table建表Choose,表结构如下所示:create table choose(id varchar(20),courseid varchar(30),score dec(5,2))4.用INSERT语句向表Student中插入3条记录:ID Name Age Department00001 张三20 计算机系insert into student values('00001','张三',20,'计算机系')insert into student values('00002','李四',19,'计算机系')insert into student values('00003','王五',21,'计算机系')5.INSERT语句向表Course中插入3条记录:CourseID CourseName CourseBeforeC1 计算机引论NullC2 PASCAL语言C1C3 数据结构C2insert into course values('C1','计算机引论','Null ').........\6.用INSERT语句向表Choose中插入7条记录:ID CourseID Score00001 C1 95 insert into choose values('00001','C1','95')....................7.用SELECT语句求计算机系学生的学号和姓名。
select department AS 计算机系,id AS 学号,name AS 姓名from student8.用SELECT语句求学生的学号、姓名、选的课程名及成绩。
select student.id AS 学号, AS 姓名,course.coursename AS 课程,choose.score AS 成绩from student,course,choosewhere student.id=choose.id and course.courseid=choose.courseid9.用SELECT语句求C1课程的成绩低于张三的学生的学号和成绩。
select id AS 学号,score AS 成绩from choosewhere courseid='C1'and score<9510.用SELECT语句求选了C2课程并且也选了C3课程的学生的学号。
select id AS 学号from choosewhere (courseid='C1')and(courseid='C3')实验四1. 建立教学数据库teaching2. 建立教学数据库的三个基本表:S (S#, SNAME, AGE, SEX) 学生(学号,姓名,年龄,性别)SC (S#, C#, GRADE ) 选修(学号,课程号,成绩)C (C#, CNAME, TEACHER) 课程(课程号,课程名,任课教师)CREATE DATABASE teachingcreate table S (S# varchar(20), SNAME varchar(30) ,AGE int,SEX varchar(2));create table SC (S# varchar(20), C# varchar(30) ,GRADE dec(5,2));create table C(C# varchar(30) ,CNAME Varchar(15),TEACHER varchar(30));3.输入数据基本表S的数据S1 WANG 20 M基本表C的数据C2 MATHS MA基本表SC的数据(空格为未修课)S#S1 S2 S3 S4 S5 S6C#C1 80 85 90 75 70 90C2 70 85 60insert into S values('S1','WANG','20','M');............insert into C values('C2','MATHS','MA');.........................insert into SC values('S1','C1','80');............4.建立男学生的视图schoolboy,属性包括学号、姓名和年龄。
CREATE VIEW schoolboyASSELECT S.S#, S.SNAME, S.AGEFROM S where S.SEX=('M')5在视图schoolboy中查询年龄为19的学生学号与姓名。
SELECT S#,SNAME FROM schoolboy where AGE='19'6将学号为S2的年龄改为21。
update schoolboy set S#=('21') where S#=('S2')7向男学生视图schoolboy中插入一个新的男生记录,其中学号为S7,姓名为MING,年龄为20。
insert into schoolboy values('S7','MING',20);8删除视图schoolboy中学号为S3的记录。
delete from schoolboy where S#=('S3')9建立女学生的视图,属性包括学号、姓名、选修课程名和成绩。
CREATE VIEW schoolgirlAS SELECT S.S#, S.SNAME,SC.GRADE, AMEFROM S INNER JOINSC ONS.S# = SC.S# INNER JOINC ON SC.C# = C.C#where S.SEX=('F')10在女学生视图中查询平均成绩大于80分的学生学号与姓名。
SELECT S#,SNAME FROM schoolgirl where GRADE>('80')11删除女学生视图。
DROP VIEW shoolgirl实验五1、在SQL SERVER 2000任一示例数据库中建立如下三个学生选课相关的表,并输入相应的记录行。
create table Student (sno varchar(20), sname varchar(30) , age int, sex varchar(2));create table Course(cno varchar(30) , cname Varchar(15), teacher varchar(30), office varchar(30));create table SC (sno varchar(20), cno varchar(30) , score dec(5,2));学生表Studentsno sname age sex98601 李强20 男insert into Student values('98601','李强','20','男');课程表Coursecno cname teacher officeC601 高等数学周振兴416 insert into Course values('C601','高等数学','周振兴','416');选课表SCsno cno score98601 C601 90insert into SC values('98601','C601','90');2、用SQL完成下列查询。