数据库实验答案
数据库实验内容-答案
实验内容:实验一:数据库的操作使用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的外部键。
数据库实验答案(樊辰自制,仅供参考)
create database StudentCoursegouse studentcoursego--在student数据库中,创建三张表create table students(Sno char(7) Primary Key,Sname varchar(8) NOT NULL,Ssex char(2),Sbirthday datetime,Sdept char(10),Smemo char(30))gocreate table courses(Cno char(4),Cname varchar(12),CpreCno char(4),Ccredit tinyint,constraint PK_course primary key(cno))gocreate table sc(Sno char(7) Foreign key references students(sno),Cno char(4) Foreign key references courses(cno),grade tinyint,primary key(sno,cno))go--分别向三张表中添加数据库insert into students values('0602001','钟振华','男','1987-05-01','计算机','优秀毕业生') insert into students values('0602002','吴家硕','女','1987-03-24','计算机','爱好:音乐') insert into students values('0602003','吴春斌','男','1988-07-01','计算机',NULL) insert into students values('0701001','王腾飞','男','1988-05-04','机电','爱好:音乐') insert into students values('0701002','林世伟','女','1987-04-03','机电','爱好:体育') insert into students values('0701003','李乐仪','女','1986-03-03','机电',null)insert into students values('0703001','李奇','男','1988-09-17','工商管理',null)goinsert courses values('c1','数据结构',null,4)insert courses values('c2','数据库原理','c1',4)insert courses values('c3','大型数据库','c2',3)insert courses values('c4','高尔夫',null,1)goinsert sc values('0602001','c1',61)insert sc values('0602001','c2',72)insert sc values('0602001','c3',88)insert sc values('0602002','c1',null)insert sc values('0602002','c2',61)insert sc values('0701001','c1',50)insert sc values('0701001','c2',null)insert sc values('0701002','c3',78)insert sc values('0701003','c1',52)insert sc values('0701003','c3',87)go--查询表中数据select * from studentsgo--删除表中数据delete scgo--删除表drop table studentsgo--3①查询计算机系全体学生的信息select *from Students--3②查询姓“李”的学生的学号和姓名。
数据库实验多表查询参考答案
from OrderMasterwhere orderSum=(select max(orderSum)from OrderMaster)(8)在订单主表中查询订单金额大于“E2005002业务员在2008-1-9这天所接的任一张订单的金额”的所有订单信息。
SELECT*FROM OrderMasterWHERE orderSum>any(SELECT orderSumFROM OrderMasterWHERE salerNo='E2005002'AND orderDate='20080109')(9)查询单价高于400元的商品编号、商品名称、订货数量和订货单价。
SELECT a.productNo,productName,quantity,priceFROM Product a, OrderDetail bWHERE a.productNo=b.productNo AND price>400ORDER BY productName(10)分别使用左外连接、右外连接、完整外部连接查询单价高于400元的商品编号、商品名称、订货数量和订货单价,并分析比较检索的结果。
左外连接命令:SELECT a.productNo,productName,quantity,priceFROM Product a LEFT OUTER JOIN OrderDetail bON a.productNo=b.productNoWHERE price>400Select a.productNo , a.productName , b.quantity,b.priceFrom OrderDetail As b left JOIN Product As aON(a.productNo=b.productNo)and price>400•这两个左外连接,第一个是先去掉单价小于等于400的商品,然后执行左外连接,该查询的结果表明商品表中所有单价高于400的商品全部被订购了第二个左外连接是将那些单价小于等于400的商品用空值替代右外连接命令:SELECT a.productNo,productName,quantity,priceFROM Product a RIGHT OUTER JOIN OrderDetail bON a.productNo=b.productNoWHERE price>400Select a.productNo , a.productName , b.quantity,b.priceFrom OrderDetail As b RIGHT JOIN Product As aON(a.productNo=b.productNo)and price>400全连接命令:SELECT a.productNo,productName,quantity,priceFROM Product a FULL OUTER JOIN OrderDetail bON a.productNo=b.productNoWHERE price>400Select a.productNo , a.productName , b.quantity,b.price From OrderDetail As b full JOIN Product As a ON(a.productNo=b.productNo)and price>400右外连接和全外连接的分析同左外连接从上述结果可知:若表a和表b做外连接,且b表是外码表,则a和b表左外连接可能会出现空值,但是右连接一定不会出现空值,全外连接与左外连接一样的结果。
数据库实验及其答案
《数据库系统概论》实验报告书专业班级学号姓名指导教师安徽工业大学计算机学院实验一:数据定义/数据操纵语言[ 实验日期 ] 2011 年 4 月 10 日[ 实验目的 ]熟悉SQL SERVER上机环境;熟练掌握和使用DDL语言,建立、修改和删除数据库表;熟练掌握和使用DML语言,对数据进行增加、修改和删除操作。
[ 实验内容 ]1.先建立数据库:STUDENT用两种方式建立:在查询分析器中以DDL语言方式建立.步骤为:先在指定的地方建立放置数据库文件的文件夹(如学生数据库),然后将建立的数据库文件放到指定的文件夹中.2.SQL数据定义语句:例1-1: (建立数据库表) 建立教学数据库的四个数据库表,其中Student表中不包含SSEX(C,2) 字段,Sname 字段为Sname(C,8)且可为空。
create table Student(SNO char(5) primary key,SNAME char(8) NULL,SDEPT char(2),SCLASS char(2),SAGE smallint)create table Course(CNO char(3) primary key,CNAME char(16),CTIME smallint)create table Teach(TNAME CHAR(8),TSEX CHAR(2),CNO CHAR(3),TDATE smalldatetime,TDEPT CHAR(2)) create table Score (sno char(5),cno char(3),Score float);例1-2: (修改数据库表) 在Student表中增加SSEX(C,2) 字段。
alter table student add SSEX char(2)例1-3: (修改数据库表) 将Student表中把Sname 字段修改为Sname(C,10)且为非空。
数据库原理及应用实验指导书答案
数据库原理及应用实验指导书 - 答案实验一:数据库管理系统的安装与配置问题一数据库管理系统(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函数,用于连接和操作数据库。
数据库实验报告及答案
实验任务书(实验一、实验二)课程名称:数据库原理与技术实验报告要求: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操作查询了学生与其选修课程的关联信息。
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表中查询所有学生的选课成绩情况,分别统计各分数段人数,并输出统计结果。
数据库技术与应用实验报告及答案
数据库技术与应用实验报告册所在学院________________班级________________学号________________姓名________________批阅教师________________时间: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. 连接查询操作。该实验包括等值连接、自然连接、求笛卡儿积、一般连接、外连接、内连接、左连接、右连接和自连接等。
数据库实验(实验七数据查询)实验报告答案
实验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) 查询信息系、计算机系学生的姓名、系名,结果按系名升序,按姓名降序排序。
数据库实验答案
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计算机型号、速度、以及硬盘容量。
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 数据库的逻辑结构和物理结构的特点。
数据库实验四(含答案)
实验四使用SQL语句创建和删除数据库、表一. 实验目的:1、了解SQL Server 2005数据库的逻辑结构和物理结构。
2、掌握使用SQL 语句创建和删除数据库。
3、学会使用T-SQL语句创建表。
二. 实验准备1.明确能够创建数据库的用户必须是系统管理员,或是被授权使用CREATE DATABASE语句的用户。
2.了解用SQL语句创建和删除数据库的基本语法。
3.是用查询分析器,完成用SQL语句创建和删除基本表。
三. 实验要求1、熟练使用查询分析器进行数据库的创建和删除操作。
2、用查询分析器,完成用SQL语句创建和删除基本表。
3、完成实验报告。
四. 实验内容一、数据库1.以下是创建数据库userdb1的SQL语句,create database userdb1on(name=userdb4_data,--数据文件的逻辑名称,注意不能与日志逻辑同名filename='g:\xygl\userdb4.mdf' ,--物理名称,注意路径必须存在size=5,--数据初始长度为5Mmaxsize=10,--最大长度为10Mfilegrowth=1)--数据文件每次增长1Mlog on( name=userdb4_log,filename='g:\xygl\userdb4.ldf ' ,size=2 ,maxsize=5 ,filegrowth=1)运行上诉语句建立数据库userdb12.根据步骤1的sql语句,写出创建实验二中“学生信息”数据库的sql语句,并建立“学生信息”数据库.(.mdf的名字可以修改)3.数据库的修改(alter database 数据库名add file),将一个大小为10MB 的数据文件mrkj添加到userdb1的数据库中,该数据文件的大小为10MB,最大的文件大小为100MB,增长速度为2MB,物理地址与原有的mdf,ldf文件放在一起。
alter database 数据库名 add file()注括号内格式同下:( name=userdb4_log,filename='g:\xygl\userdb4.ldf ' ,size=2 ,maxsize=5 ,filegrowth=1)4.修改文件alter database数据库名modify file()注括号内表示修改后的属性信息,格式同下:( name=userdb4_log,filename='g:\xygl\userdb4.ldf ' ,size=2 ,maxsize=5 ,filegrowth=1)5.删除文件mrkj(alter database数据库名remove file+文件名)6.用SQL语句删除步骤一建立的数据库userdb1。
数据库实验及作业部分参考答案
实验三关系查询与连接首先,将sales表中tot_amt的值计算出来。
update sales set tot_amt=0goselect order_no,tot=sum(qty*unit_price)into aa1from sale_itemgroup by order_nogoselect * from aa1goupdate sales set tot_amt=totfrom sales,aa1where aa1.order_no=sales.order_nogo1、查找所有经理的姓名、职称、薪水。
select emp_name ,title,salaryfrom employeewhere title='经理'2、查找出姓“王”并且姓名的最后一个字为“功”的员工。
select *from employeewhere emp_name like '王%功'//3、添加一条记录至employee表(用INSERT…..INTO)。
insert into employee(emp_no,emp_name,sex,dept,title,date_hired,salary)values('E0025','彭江','M','业务','职员',1900/01/21,43200)//4、将每个员工的薪水上调3%。
update employeeset salary=salary*1.03select *from employee3、查找住在上海或北京的女员工,并显示其姓名、所属部门、职称、住址select emp_name,dept,title,addrfrom employeewhere (addr='上海市' or addr= '北京市')and sex='F'4、在表sales中挑出销售金额大于等于10000元订单select *from saleswhere tot_amt>=10000.005、选取订单金额最高的前10%的订单数据。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
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 资产>=100000005)找出所有的男影星或者是住址中含有 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计算机型号、速度、以及硬盘容量。
select 型号,速度,硬盘容量from PC电脑where 价钱 < 60002、同上要求,另外将 "速度" 改名为 "兆赫",将 "硬盘" 改名为 "G字节"。
select 型号,速度兆赫,硬盘容量 G字节from PC电脑where 价钱 < 60003、找出打印机的制造商。
select 制造商from 产品where 产品类型 = '打印机'4、找出价格高于2000元的"便携式电脑"的型号、内存容量及屏幕大小。
select 型号,内存,屏幕大小from 便携式电脑where 价钱 > 60005、从"打印机"关系中找出所有彩色打印机的元组。
select *from 打印机where 是否彩色 = '是'6、找出具有300GB以上的硬盘容量而价格低于2000元的所有个人计算机的型号、速度及硬盘。
select 型号,速度,硬盘容量from PC电脑where 硬盘容量>300 and 价钱 <60001、找出配置了容量至少为300GB硬盘的便携式电脑的制造商及其速度。
select 制造商,速度from 产品,便携式电脑where 产品型号=便携式电脑.型号 and 硬盘>3002、找出由生产厂商"苹果"生产的所有产品的型号和价格。
select 型号,价钱from PC电脑where 型号 in(select 产品型号from 产品where 制造商='苹果')unionselect 型号,价钱from 便携式电脑where 型号 in(select 产品型号from 产品where 制造商='苹果')unionselect 型号,价钱from 打印机where 型号 in(select 产品型号from 产品where 制造商='苹果')3、找出所有出售"便携式电脑"(而不出售PC)的生产厂商。
select 制造商from 产品where 产品类型 LIKE '便携式电脑' and 制造商 not in(select 制造商from 产品where 产品类型 LIKE 'PC电脑' or 产品类型 LIKE '打印机' )4、找出在两种或两种以上PC上出现的硬盘容量。
select 硬盘容量from PC电脑group by 硬盘容量having count(*)>=25、找出拥有相同速度和内存的PC的成对的型号。
select distinct Q.型号,P.型号from PC电脑 Q, PC电脑 Pwhere Q.速度=P.速度 and Q.内存=P.内存 and Q.型号<P.型号1、找出速度至少为1500MHz的"PC电脑"制造商。
("=any"和"in") select distinct 制造商from 产品where 产品类型='PC电脑' and 产品型号 in(select 型号from PC电脑where 速度>=1500)2、找出价格最高的打印机。
(注意 ">all" 和 ">any" 的区别) (">=all"和"=max()") select 型号from 打印机where 价钱 >=all(select 价钱from 打印机)3、找出速度低于任何PC的便携式电脑。
(注意"<all"和"<any"的区别)select 型号from 便携式电脑where 速度 < all(select 速度from PC电脑)4、找出具有最高价格的机器(PC,便携式电脑或打印机)的型号。
select 型号from PC电脑where 价钱=(select MAX(价钱)from PC电脑)unionselect 型号from 便携式电脑where 价钱=(select MAX(价钱)from 便携式电脑)unionselect 型号from 打印机where 价钱=(select MAX(价钱)from 打印机)5、找出具有最低价格的彩色"打印机"的制造商。
("=any和in" "<=all和MIN()") select 制造商from 产品where 产品型号 =any(select 型号from 打印机where 价钱<=all(select 价钱from 打印机where 是否彩色 ='是'))6、找出在具有最小内存容量的所有 PC 中,具有最快处理器的 PC 制造商。
select 制造商from 产品where 产品型号 =any(select 型号from PC电脑where 速度 =(select MAX(速度)from PC电脑where 内存<=all(select 内存from PC电脑))and 内存 in(select min(内存)from pc电脑))select 制造商from 产品where 产品型号 in(select 型号from PC电脑where 速度=(select MAX(速度)from PC电脑where 内存=(select MIN(内存)from PC电脑))and 内存 in(select MIN(内存)from pc电脑))select 制造商from 产品,PC电脑where 产品.产品型号=PC电脑.型号 andPC电脑.速度=(select MAX(速度)from PC电脑where 内存<=all(select 内存from PC电脑))and 内存 in(select min(内存)from pc电脑)create view vproduct(制造商,产品型号,产品类型,价钱,速度) asselect 制造商,产品型号,产品类型,价钱,速度from 产品,PC电脑where 产品.产品型号=PC电脑.型号unionselect 制造商,产品型号,产品类型,价钱,速度from 产品,便携式电脑where 产品.产品型号=便携式电脑.型号1、找出销售便携式电脑但不销售 PC 的厂商。
select 制造商from vproductwhere 产品类型 LIKE '便携式电脑' and 制造商 not in( select 制造商from 产品where 产品类型 LIKE 'PC电脑' or 产品类型 LIKE '打印机')2、找出至少生产两种不同的计算机(PC或便携式电脑)且极其速度至少为133的厂商。
select distinct 制造商from vproductwhere 速度>133 and 产品类型 LIKE 'PC电脑' or 产品类型 LIKE '便携式电脑' and 制造商 in(select min(制造商)from vproductgroup by 制造商having COUNT(产品型号)>=2)3、找出生产最高速度的计算机(PC电脑或便携式电脑)厂商。
select distinct 制造商from vproductwhere 速度>133 and 产品类型 LIKE 'PC电脑' or 产品类型 LIKE '便携式电脑' and 制造商 in(select min(制造商)from vproductgroup by 制造商having COUNT(产品型号)>=2)create view 最高速度1asselect distinct 制造商from 产品,PC电脑where 产品.产品型号=PC电脑.型号and 速度=(select MAX(速度)from PC电脑)unionselect distinct 制造商from 产品,便携式电脑where 产品.产品型号=便携式电脑.型号and 速度=(select MAX(速度)from 便携式电脑)4、找出至少生产三种不同速度 PC的厂商。