sql 数据库 实验2答案
大工14秋《SQL数据库系统及应用》在线作业2答案
大工14秋《SQL数据库系统及应用》在线作业2
一,判断题
1. 聚合函数中SUM函数功能是求和。
A. 错误
B. 正确
?
正确答案:B
2. 常用的比较运算符包含=,>,<,>=,<=,<>,!=等。
A. 错误
B. 正确
?
正确答案:B
3. 比较运算符对多个表达式进行比较,返回TRUE,FALSE等值。
A. 错误
B. 正确
?
正确答案:B
4. 聚合函数中MAX函数功能是求最大值。
A. 错误
B. 正确
?
正确答案:B
5. 比较运算符中!=代表“恒等于”。
A. 错误
B. 正确
?
正确答案:A
6. GROUP BY子句用于对查询结果分组,该语句主要和汇总语句配合使用,比如SUM,AVG,MAX,MIN等。
A. 错误
B. 正确
?
正确答案:B
7. 聚合函数中MIN函数返回一组记录中的某个字段的最大值或者最小值。
A. 错误
B. 正确。
sql server 数据库管理与开发教程与实训(第2版习题答案)
12.我心中的太阳我心中的月亮
13.by百岁不是梦百岁
14.1931 7 142009-01-12 19:24:55.543
15.7719852015
16.35
17.减(-)乘(*)除(/)取余(%)
18.等于(=)不等于(<>)小于(<)小于等于(<=)大小相同与否
19.字符串联接、比较、逻辑
from学生信息表as xs
inner join教学成绩表as cj on cj.学号=xs.学号
group by xs.班级编号,课程编号
order by avg(分数) desc,xs.班级编号desc
e教学成绩管理数据库
go
select bj.名称,xs.学号,xs.姓名,avg(分数)
go
select xs.学号,姓名,名称,分数
from学生信息表as xs,教学成绩表as cj,课程信息表as kc
where xs.学号=cj.学号and cj.课程编号=kc.编号and班级编号='200303'
注意:编号为900012的课程由两个教师上
12.例6.30相同
13.create view班级课程成绩统计表
where datediff(year,出生日期,getdate())=25 or datediff(year,出生日期,getdate())=27
order by出生日期
e教学成绩管理数据库
go
select *
from学生信息表
where (datediff(year,出生日期,getdate())=25 or datediff(year,出生日期,getdate())=27)and性别='男'
数据库概念第二版,实验二 参考答案
实验二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)。
数据库实验答案实验二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的销售情况,要求显示相应的销售员的姓名、性别,销售日期、销售数量和金额,其中性别用“男”、“女”表示。
《数据库原理与应用》实验报告二答案
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
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、更改基本表的定义,增加列,删除列,修改列的数据类型。
数据库实验报告及答案
实验任务书(实验一、实验二)课程名称:数据库原理与技术实验报告要求: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。
SQL数据库 综合实训2 参考解答
一、实训目的通过完成以下实践与操作,牢固掌握SQL Server 中数据库的创建与管理、数据表的创建与管理、约束的分析与创建、表中数据的输入与删除;二、实训环境PC机+Windows XP操作系统+SQL Server 2000;三、实训内容与要求实践1:设有一数据库GradeManager(成绩管理),包括四个表:学生表(Student)、课程表(Course)、班级表(Class)以及成绩表(Grade)。
四个表的结构如下:根据需要,定义好各个表的约束,比如在Student表中,性别只能是“男”或“女”;在Grade表中,成绩的取值范围为0-100;建立好四个数据表之间的参照完整性关系;用SQL语句创建库与四个表(在创建表结构同时定义各种约束)。
create database GradeManagergouse GradeManagercreate table Student(Sno char(7) not null constraint prik_Sno primary key clustered,Sname varchar(20) not null ,Ssex char(2) not null constraint Ssex_sex check(Ssex='男' or Ssex='女'),Sage smallint,Clno char(5) not null)create table Course(Cno char(1) not null constraint prik_Cno primary key clustered,Cname varchar(20) not null ,Credit smallint)create table Class(Clno char(5) not null constraint prik_Clno primary key clustered, Speciality varchar(20) not null,Inyear char(4) not null,Number int,Moniter char(7) foreign key references Student(Sno))create table Grade(Sno char(7) not null foreign key references Student(Sno),Cno char(1) not null foreign key references Course(Cno),Gmark decimal(4,1) constraint Grade_Gmark check(Gmark<=100 and Gmark>=0))Go实践2:给学生表增加一属性Nation(民族),数据类型为Varchar(20);用select语句查询,查看是否确实已经增加了一个字段;然后删除学生表中的属性Nation,之后用select语句查询操作结果;use GradeManageralter table Student add Nation varchar(20)gouse GradeManagerselect * from Studentgouse GradeManageralter table Student drop column Nationgouse GradeManagerselect * from Studentgo实践3:向四个表中分别插入如下记录,之后用select语句查询操作结果;(此处输入SQL代码及运行结果)--向表Student中输入数据use GradeManagerinsert into Student values('2000101','李勇','男',20,'00311') insert into Student values('2000102','刘诗晨','女',19,'00311') insert into Student values('2000103','王一鸣','男',20,'00312') insert into Student values('2000104','张婷婷','女',21,'00312') insert into Student values('2001101','李勇敏','女',19,'01311') insert into Student values('2001102','贾向东','男',22,'01311') insert into Student values('2001103','陈宝玉','男',20,'01311') go--向表Course中输入数据use GradeManagerinsert into Course values('1','数据库',4)insert into Course values('2','离散数学',3)insert into Course values('3','管理信息系统',2)insert into Course values('4','操作系统',4)insert into Course values('5','数据结构',4)insert into Course values('6','数据处理',2)insert into Course values('7','C语言',4)go--向表Class中输入数据use GradeManagerinsert into Class values('00311','计算机软件','2000',120,'2000101') insert into Class values('00312','计算机应用','2000',140,'2000103') insert into Class values('01311','计算机软件','2001',220,'2001103') go--向表Grade中输入数据use GradeManagerinsert into Grade values('2000101','1',92)insert into Grade values('2000101','3',88)insert into Grade values('2000101','5',86)insert into Grade values('2000102','1',78)insert into Grade values('2000102','6',55)insert into Grade values('2000103','3',65)insert into Grade values('2000103','6',78)insert into Grade values('2000103','5',66)insert into Grade values('2000104','1',54)insert into Grade values('2000104','6',83)insert into Grade values('2001101','2',70)insert into Grade values('2001101','4',65)insert into Grade values('2001102','2',80)insert into Grade values('2001102','4',90)insert into Grade values('2001102','6',83)insert into Grade values('2001103','4',76)insert into Grade values('2001103','6',56)go实践4:把学号为”2001101”的学生的成绩修改为70分,之后用select语句查询操作结果;use GradeManagerupdate Grade set Gmark='70' where Sno='2001101'gouse GradeManagerselect * from Grade where Sno='2001101'go实践5:删除学号为”2001101”的学生的成绩记录,之后用select语句查询操作结果;use GradeManagerdelete from Grade where Sno='2001101'gouse GradeManagerselect * from Grade where Sno='2001101'go实践6:将01311班的全体学生的成绩置零,之后用select语句查询操作结果;use GradeManagerselect Sno from Student where Clno='01311'go--得到三个学号2001101、2001102、2001103,然后用update命令更新Grade 表:use GradeManagerupdate Grade set Gmark='0' where (Sno='2001101' or Sno='2001102' or Sno='2001103')go--验证update操作结果use GradeManagerselect * from Grade where (Sno='2001101' or Sno='2001102' orSno='2001103')go实践7:删除2001级计算机软件的全体学生的选课记录,之后用select语句查询操作结果;--先从表Class中查出2001级的计算机软件专业班级号use GradeManagerselect Clno from Class where (Speciality='计算机软件' and Inyear='2001') go//查到班级号01311,再用班级号从表Student中查出这个班级的学生学号use GradeManagerselect * from Student where Clno='01311'go--得到三个学号2001101、2001102、2001103,然后用delete命令删除Grade 表中有关成绩记录:use GradeManagerdelete from Grade where (Sno='2001101' or Sno='2001102' or Sno='2001103') go--验证delete操作结果use GradeManagerselect * from Grade where (Sno='2001101' or Sno='2001102' orSno='2001103')go实践8:学生李勇已退学,从数据库中删除有关他的记录,之后用select语句查询操作结果。
SQLSERVER2008实用教程实验参考答案(实验2)
实验2 创建数据库和表1、在D盘根目录下新建文件夹,并命名为Data,用来存储实验环境新建的数据库。
2、使用T-SQL语句创建数据库:USE masterGO--YGGL数据库如果存在,则将其删除IF EXISTS(SELECT name FROM sys.databases WHERE name='YGGL') DROP DATABASE YGGLGOUSE masterGO--新建数据库CREATE DATABASE YGGLON(NAME='YGGL_Data',FILENAME='D:\Data\YGGL.mdf',SIZE=10MB,MAXSIZE=50MB,FILEGROWTH=5%)LOG ON(NAME='YGGL_Log',FILENAME='D:\Data\YGGL_log.ldf',SIZE=2MB,MAXSIZE=5MB,FILEGROWTH=1MB)3、在YGGL数据库下建三个表Employees、Departments、Salary。
--切换到数据库YGGL下USE YGGLGO--新建Employees表CREATE TABLE Employees(EmployeeID char(6)NOT NULL PRIMARY KEY,Name char(10)NOT NULL,Education char(4)NOT NULL,Birthday date NOT NULL,Sex bit NOT NULL DEFAULT 1,WorkYear tinyint NULL,Address varchar(40)NULL,PhoneNumber char(12)NULL,DepartmentID char(3)NOT NULL)--新建Departments表CREATE TABLE Departments(DepartmentID char(3)NOT NULL PRIMARY KEY,DepartmentName char(20)NOT NULL,Note varchar(100)NULL)--新建Salary表CREATE TABLE Salary(EmployeeID char(6)NOT NULL PRIMARY KEY,InCome float NOT NULL,OutCome float NOT NULL)--建立Employees表的外键ALTER TABLE Employees WITH CHECK ADD CONSTRAINTFK_Employees_Departments FOREIGN KEY(DepartmentID)REFERENCES Departments(DepartmentID)--启用外键约束ALTER TABLE Employees CHECK CONSTRAINT FK_Employees_Departments--建立Salary表的外键ALTER TABLE Salary WITH CHECK ADD CONSTRAINT FK_Salary_Employees FOREIGN KEY(EmployeeID)REFERENCES Employees(EmployeeID)--启用外键约束ALTER TABLE Salary CHECK CONSTRAINT FK_Salary_Employees。
实验二 参考答案
实验二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。
数据库实验2 数据定义 答案
实验二数据定义一、实验目的1、掌握使用SQL语句创建和删除数据库;2、掌握使用SQL语句创建和删除数据表,创建各种完整性约束,修改表的结构;3、掌握索引的创建和删除方法。
二、实验内容(一)数据库的建立使用CREATE DATABASE语句创建名为“gongcheng”的数据库。
(二)数据表操作1.建立数据表create table s(SNO nchar(20)primary key,SNAME nchar(20)unique,CITY nchar(20),);create table P(PNO nchar(20)primary key,PNAME nchar(20),COLOR nchar(20),WEIGHT nchar(20)check(weight>=0 and weight<=50),);create table J(JNO nchar(20)primary key,JNAME nchar(20)not null unique,CITY nchar(20),);create table SPJ(SNO nchar(20),PNO nchar(20),JNO nchar(20),QTY int,primary key (SNO,PNO,JNO),foreign key (SNO)references S(SNO),foreign key (PNO)references P(PNO),foreign key (JNO)references J(JNO),);在创建的“gongcheng”数据库中使用SQL语句建立4个关系,如下:供应商表S (Sno,Sname,City)零件表P(Pno,Pname,Color,Weight)工程项目表J(Jno,Jname,City)供应情况表SPJ(Sno,Pno,Jno,QTY)其中:供应商表S由供应商代码(SNO)、供应商姓名(SNAME)、供应商所在城市(CITY)组成;零件表P由零件代码(PNO)、零件名(PNAME)、颜色(COLOR)、重量(WEIGHT)组成;工程项目表J由工程项目代码(JNO)、工程项目名(JNAME)、工程项目所在城市(CITY)组成;供应情况表SPJ由供应商代码(SNO)、零件代码(PNO)、工程项目代码(JNO)、供应数量组成(QTY),表示某供应商供应某种零件给某工程项目的数量为QTY。
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命令实现。
《数据库原理》实验2——有答案
《数据库原理》实验2——有答案实验二:管理SQL Server 2000数据库一、实验目的1.了解数据库常用对象及组成;2.熟悉SQL的基本概念和特点;3.熟练掌握T-SQL 语句中的数据定义的使用方法;4.熟悉在SQL Server 2000中创建及编辑数据库;5.熟练掌握SQL的数据定义子句的使用方法。
二、实验环境已安装SQL Server 2000企业版的计算机;具有局域网网络环境,有固定ip地址;三、实验学时2学时四、实验要求1.熟练使用Management Stuio界面方式创建及编辑数据库;2.熟练使用T-SQL 语句创建及编辑数据库;3.完成实验报告。
五、实验准备知识(也可参考SQL Server联机丛书)1.数据库相关属性1)逻辑名称:数据文件和日志文件名称2)文件类型:数据文件及日志文件3)文件组:各个数据文件所属的文件组名称4)初始大小:文件的最原始大小5)自动增长:文件按指定的大小增长,也可限制到最大容量。
6)路径:存放文件的物理目录7)文件名:显示数据文件和日志文件的物理名称2.默认数据库属性1)主数据文件为xx.mdf ,日志文件为xx_log.ldf;2)只有一个文件组Primary;3)主数据文件初始大小为3MB,增量为1MB;4)日志文件初始大小为1MB,增量为10%;5)主数据文件和日志文件都存放在C:\Program Files\Microsoft SQLServer\MSSQL.2\MSSQL\DATA目录下,文件分别为xx.mdf 和xx_log.ldf 。
3.使用界面创建数据库步骤【SQL Server Management Studio】→【对象资源管理器】→【数据库】→【新建数据库】→设置数据库相关属性(名称、大小、位置)4.启动SQL Server 2005查询分析器【SQL Server Management Studio】→【新建查询】5.命令方式下创建数据库CREATE DATABASE database_name /*指定数据库名*/[ON 子句] /*指定数据库文件和文件组属性[LOG ON 子句] /*指定日志文件属性*/6.命令方式修改数据库Alter database database_name{add file [,…n] [to filegroup filegroupname]|add log file [,…n]|remove file logical_file_name [with delete]|modify file六、实验内容及步骤1、假设SQL Server服务已启动,并以Administrator身份登录计算机(文件名称自定);请分别使用Management界面方式和T-SQL语句实现以下操作:1)要求在本地磁盘D创建一个学生-课程数据库(名称为student),只有一个数据文件和日志文件,文件名称分别为stu和stu_log,物理名称为stu_data.mdf 和stu_log.ldf,初始大小都为3MB,增长方式分别为10%和1MB,数据文件最大为500MB,日志文件大小不受限制。
数据库实验二,sql查询语句
实验二:数据查询语言实验内容SQL数据查询语句:例5-1:(选择表中的若干列) 求全体学生的学号、姓名、性别和年龄。
select sno,sname,sex,sage from student;例5-2:(不选择重复行) 求选修了课程的学生学号。
select distinct cno from sc where cno is not null;例5-3:(选择表中的所有列) 求全体学生的详细信息。
select * from student;例5-4:(使用表达式) 求全体学生的学号、姓名和出生年份。
select sno,sname,birthday from student;例5-5:(使用列的别名) 求学生的学号和出生年份,显示时使用别名“学号”和“出生年份”。
select sno as"学号",birthday as"出生年份" from student;例5-6:(比较大小条件) 求年龄大于19岁的学生的姓名和年龄。
select sname,age from studentwhere age>19;例5-7:(比较大小条件) 求计算机系或经济管理系年龄大于18岁的学生的姓名、系和年龄。
select sname,depname ,agefrom student,departmentwhere student.depno=department.depnoand age>18;例5-8:(确定范围条件) 求年龄在19岁与22岁(含20岁和22岁)之间的学生的学号和年龄。
select sno,age from studentwhere age in(19,22);例5-9:(确定范围条件) 求年龄不在19岁与22岁之间的学生的学号和年龄。
select sno,age from studentwhere age not in(19,22);例5-10:(确定集合条件) 求在下列各系的学生信息:数学系、计算机系。
实验二 参考答案
实验二SQL Sever中的单表查询参考答案1. 查询所开课程的课号,课程名。
SELECT CNO,CNAMEFROM COURSE2. 查询计算机系年龄不到21岁的所有男生的姓名和出生年份。
SELECT SNAME 姓名,YEAR(GETDA TE())-SAGE 出生年份FROM STUDENTWHERE SDEPT='CS' AND SAGE<213. 查询已被学生所选课的课号。
SELECT DISTINCT CNOFROM SC4. 查询所有有成绩的学生学号和课程号,并为各列分别取相应的中文别名。
SELECT SNO 学号,CNO 课程号FROM SCWHERE GRADE IS NOT NULL(2) 按照《数据库系统概论》P75页中的SPJ数据库及数据实现以下查询:1. 查询使用各种零件的数量在100和300(包括100和300)之间的项目号,分别采用比较大小和确定范围两种方法实现。
SELECT DISTINCT JNOFROM SPJWHERE QTY>=100 AND QTY <=300SELECT DISTINCT JNOFROM SPJWHERE QTY BETWEEN 100 AND 3002. 查询地点在‘北京’、‘上海’的供应商代码和供应商名字。
SELECT SNO,SNAMEFROM SWHERE CITY IN('北京','上海')或SELECT SNO,SNAMEFROM SWHERE CITY='北京' OR CITY='上海'3. 查询供应商名中包含‘方’这个汉字的供应商信息。
SELECT *FROM SWHERE SNAME LIKE '%方%'4. 查询零件名以‘刀’字结尾,包含三个汉字的零件信息。
SELECT *FROM PWHERE PNAME LIKE '__刀'5. 查询使用了供应商S1所供应零件的工程项目数。
数据库实验2 SQL Server2005数据库的管理(答案)
实验2 SQL Server数据库的管理学号:18103317专业:电子信息工程一、实验内容及步骤1.在SQL Server管理平台中创建studentsdb数据库。
(1)运行SQL Server管理器平台,在管理平台的对象资源管理器中展开服务器。
(2)右击“数据库”项,在快捷菜单中选择“新建数据库”菜单项.在新建数据库对话框的名称文本框中输入学生管理数据库名studentsdb。
2.选择studentsdb数据库,在其快捷菜单中选择“属性”菜单项,查看“常规”、“文件”、“文件组”、“选项”、“权限”和“扩展属性”等页面。
3,打开studentsdb数据库的“属性”对话框,在“文件”选项卡中修改studentsdb 数据文件的“分配的空间”大小为2MB。
指定“最大文件大小”为5MB。
在“事务日志”选项卡中修改studentsdb数据库的日志文件的大小在每次填满时自动递增5%。
4.单击“新建查询”打开查询设计窗口,在查询设计器中使用Transact-SQL 语句CREATE DATABASE创建studb数据库。
然后通过系统存储过程sp_helpdb 查看系统中数据库信息。
EXEC sp_helpdb 'studb'5.在查询设计器中使用Transact-SQL语句ALTER DATABASE修改studb 数据库的设置,指定数据文件大小为5MB.最大文件大小为20MB,自动递增大小为1MB。
ALTER DATABASE studbMODIFY FILE(NAME=studb,SIZE=8,MAXSIZE=40)6.在查询设计器中为studdb数据库增加一个日志文件,命名为studb_Log2,大小5MB。
最大文件大小为10MB。
ALTER DATABASE studbADD LOG FILE(NAME=studb_Log2,FILENAME='D:\studb_Log2',SIZE=5,MAXSIZE=20)7.使用查询设计器将studb数据库的名称更改为student_db。
数据库实验报告实验二参考答案[最终版]
数据库实验报告实验二参考答案[最终版]第一篇:数据库实验报告实验二参考答案[最终版]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 数据库的逻辑结构和物理结构的特点。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
实二:创建及管理数据库
1.管理数据库
1)要求在本地磁盘D创建一个学生-课程数据库(名称为student),只有一个
数据文件和日志文件,文件名称分别为stu和stu_log,物理名称为stu_data.mdf 和stu_log.ldf,初始大小都为3MB,增长方式分别为10%和1MB,数据文件最大为500MB,日志文件大小不受限制。
CREATE DATABASE student
ON
(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,
FILEGROWTH= 1MB)
2)创建一个Company数据库,该数据库的主数据文件逻辑名称为
Company_data,物理文件为Company.mdf,初始大小为10MB,最大尺寸为无限大,增长速度为10%;数据库的日志文件逻辑名称为Company_log,物理文件名为Company.ldf,初始大小为1MB,最大尺寸为50MB,增长速度为1MB。
CREATE DATABASE company
ON
(NAME=company_data,
FILENAME='D:\company.mdf',
SIZE= 10MB,
MAXSIZE=unlimited,
FILEGROWTH= 10%)
LOG ON
(NAME=company_log,
FILENAME='D:\company.ldf',
SIZE= 1MB,
MAXSIZE= 50MB,
FILEGROWTH= 1MB)
3)创建数据库DB,具有2个数据文件,文件逻辑名分别为DB_data1和DB_data2,
文件初始大小均为5MB,最大为100MB,按10%增长;只有一个日志文件,初始大小为3MB,按10%增长;所有文件都存储在D盘文件夹ceshi中。
CREATE DATABASE DB
ON
(NAME=DB_data1,
FILENAME='D:\ceshi\DB1.mdf',
SIZE= 5MB,
MAXSIZE= 100MB,
FILEGROWTH= 10%),
(NAME=DB_data2,
FILENAME='D:\ ceshi\DB2.ndf',
SIZE= 5MB,
MAXSIZE= 100MB,
FILEGROWTH= 10%)
LOG ON
(NAME=company_log,
FILENAME='D:\ ceshi\DB.ldf',
SIZE= 3MB,
MAXSIZE=unlimited,
FILEGROWTH= 10%)
4)在数据库student中增加数据文件stu2,保存在D盘中,初始大小为10MB,
最大大小为50 MB,按10%增长;
ALTER DATABASE student
ADD FILE
(NAME=stu2,
FILENAME='D:\stu2.ndf',
SIZE=10MB,
MAXSIZE=50MB,
FILEGROWTH=10%
)
5)在数据库student中添加日志文件stu_log2,保存在D盘中,初始大小为
1MB,最大无限制,增长方式按照1MB增长;
ALTER DATABASE student
ADD LOG FILE
(NAME=stu_log2,
FILENAME='D:\stu_log2.ldf',
SIZE=1MB,
MAXSIZE=unlimited,
FILEGROWTH=1MB
)
6)修改数据库student主数据文件的大小,将主数据文件的初始大小修改为
10Mb,增长方式为20%;
ALTER DATABASE student
MODIFY FILE
(NAME=stu,
SIZE=10MB,
FILEGROWTH=20%
)
7)删除数据库student辅助数据文件和第二个日志文件;
ALTER DATABASE student
remove FILE stu2
go
ALTER DATABASE student
remove FILE stu_log2
8)删除数据库company。
DROP DATABASE company。