当前位置:文档之家› 数据库实验8-9-参考答案

数据库实验8-9-参考答案

数据库实验8-9-参考答案
数据库实验8-9-参考答案

实验八实验内容(2)

二、实验内容与步骤

1.SQL数据查询命令的应用

(9) 查询基础工资最高的教师姓名和职称

(10) 查询各部门基础工资与职务补贴之和的最高值、最低值

(11) 查询人数大于等于4人的部门名称和人数

(12) 按部门编号的降序显示教师姓名、部门编号和职称

(13) 查询工资表的数据,存放到数组中

(14) 查询工资表的数据,存放到临时表中

4.使用rsgl数据库,写出分组和统计计算查询的SQL命令

(1) sele count(*) 财政系人数from zgqk where bmbh=;

( sele bmbh from bm where bmmc="财政系")

或者

sele count(*) 财政系人数from zgqk,bm where;

bm.bmbh=zgqk.bmbh and bmmc="财政系"

或者

sele count(b mbh) 财政系人数from zgqk,bm where;

bm.bmbh=zgqk.bmbh and bmmc="财政系"

(2) sele bmmc, count(zgqk.bmbh) 人数from zgqk ;

right join bm on zgqk.bmbh=bm.bmbh group by bm.bmbh

注意:

①count(zgqk.bmbh)中必须为zgqk.bmbh,目的是不统计.NULL.内容的记录。可以

先查看右连接情况:sele * from zgqk right join bm on zgqk.bmbh=bm.bmbh

②此应该采用右连接right join,因为“统计每个系”,必须考虑bm表中的所有系

部。

③group by bm.bmbh,分组应该按照bm的bmbh分组,而不是zgqk的bmbh;运

行①中的sele * from zgqk right join bm on zgqk.bmbh=bm.bmbh,查看运行结果

就知道原因了。

(3) sele bmbh, count(*) 教授人数from zgqk where ;

zc=”教授” group by bmbh order by 教授人数desc

或者

sele bmmc, count(*) 教授人数from zgqk, bm;

where zgqk.bmbh=bm.bmbh and zc=”教授”;

group by zgqk.bmbh order by 教授人数desc

注意:因为该题有where zc=”教授”的限定,所以不需要再类似(2)题的设置。

(4) sele sum(jcgz+zwgz+zjgz) 全体职工工资from gz

(5) sele bmmc, count(*) jcgz 超过1800人数from zgqk, bm, gz;

where zgqk.bmbh=bm.bmbh and zgqk.zgbh=gz.zgbh and jcgz>=2500;

group by zgqk.bmbh

(6) sele top 1 xm, count(*) 数目from zgqk, kyqk where zgqk.zgbh=kyqk.zgbh;

group by kyqk.zgbh order by 数目desc

或者

sele top 1 xm, count(xm) 数目from zgqk, kyqk where zgqk.zgbh=kyqk.zgbh;

group by xm order by 数目desc

(7) sele top 1 bmmc, count(*) 数目from zgqk, bm, kyqk where zgqk.bmbh=bm.bmbh;

and zgqk.zgbh=kyqk.zgbh group by bmmc order by 数目desc

(8) sele zgqk.zgbh, xm, jcgz+zwgz+zjgz+fljj yfgz from zgqk, gz;

where zgqk.zgbh=gz.zgbh into table zggz

(9) sele bmmc, sum(jcgz+zwgz+zjgz+fljj-sdf-mqf) sfgz from zgqk, bm, gz;

where zgqk.bmbh=bm.bmbh and zgqk.zgbh=gz.zgbh;

group by bmmc order by sfgz desc into cursor sfgz

5.利用所建立的xsgl数据库,使用SQL_Select完成下列查询:

(1) 查询系号为"d01"的男学生信息

select * from student where dno="d01" and sex="男"

(2) 查询所有学生某门课(如"C001")的成绩,并按成绩由高到低的顺序输出

sele sname,grade from student,sc where;

student.sno=sc.sno and cno="c001" order by grade desc

若不显示姓名,则命令为:sele grade from sc where cno="c001" order by grade desc

(3) 查询89、90两年出生的女同学的名单

sele sname from student where;

sex="女" and birthday between {^1989/01/01} and {^1990/12/31}

(4) 查询“计算机基础”课不及格的学生名单(输出学生的学号、姓名及成绩)

Sele sno,sname,grade from student,sc where student.sno=sc.sno and ;

sno=(sele sno from course where cname=”计算机基础”) and grade<60

(5) 查询同时选修了"C001"和"C002"的学生的学号

Sele a.sno from sc a, sc b where a.sno=b.sno;

and https://www.doczj.com/doc/443853392.html,o="C001" and https://www.doczj.com/doc/443853392.html,o="C002"

(6) 查询选修了"C001"、但没有选修"C002"的学生的学号

Sele sno from sc where ;

sno in (Sele sno from sc where cno="C001" ) and ;

sno not in (Sele sno from sc where cno="C002")

(7) 查询至少选修了"C001"和"C002"中一门课的学生

Sele sno from sc where cno="C001" union ;

sele sno from sc where cno="C002"

或者

Sele dist sno from sc where ;

sno in (Sele sno from sc where cno="C001" ) or ;

sno in (Sele sno from sc where cno="C002")

(8) 求女学生的学生总数

sele count(sno) from student where sex="女"

(9) 查询有多少名同学计算机基础课不及格

Sele count(*) from sc where ;

cno=(sele cno from course where cname=”计算机基础”) and grade<60

(10) 求每个系的学生数而不是求学生总数。希望得到类似下面的输出:

dno count(*)

d01 120

d02 65

sele dno,count(*) from student group by dno

(11) 查询每个学生已获得的学分(注:成绩及格即取得相应课程的学分)

Sele sno,sum(credit) from sc,course where https://www.doczj.com/doc/443853392.html,o=https://www.doczj.com/doc/443853392.html,o group by sno

(12) 查学分大于30分的学生(只输出学号)

Sele sno from sc,course where https://www.doczj.com/doc/443853392.html,o=https://www.doczj.com/doc/443853392.html,o group by sno having sum(credit)>30

(13) 查询从未被选修的课程

sele cname from course where cno not in (sele cno from sc)

实验九参考答案

二、实验内容与步骤

1.SQL数据修改命令练习

(1)向zgqk表中插入一条记录,zgbh, xm, xb, xl, xw, zc等字段的值分别为。

Insert into zgqk(zgbh, xm, xb, xl, xw, zc) ;

values(“199009”,”和红”,”女”,”研究生”,”博士”,”助教”)

(2)向zgqk表中插入3条记录,其zgbh字段的第一个字母均设置为”A”,如“A00001”。

Insert into zgqk values("A00001","和红1", "女",{^1969/12/21},{^1999/12/21}, ;

"研究生","博士","助教",.t.,"aa","A","105")

Insert into zgqk values("A00002","和红2", "女",{^1969/12/21},{^1999/12/21}, ;

"研究生","博士","助教",.t.,"aa","A ","105")

Insert into zgqk values("A00003","和红3", "女",{^1969/12/21},{^1999/12/21}, ;

"研究生","博士","助教",.t.,"aa","A","105")

(3)删除上题中插入的3条记录。

Dele from zgqk where zgbh like “A%”

recall

Dele from zgqk where “A” $ zgbh

pack

(4)将gz表中jcgz+zwgz<2000的教师的zwgz增加200元。

Upda gz set zwgz=zwgz+200 where jcgz+zwgz<2000

(5)将zgqk和gz表中zc字段值为“教授”的教师的zwgz增加10%。

Upda gz set zwgz=zwgz*1.1 where zgbh in (sele zgbh from zgqk where zc=“教授”) 2.SQL数据定义命令练习一

(1) 用SQL命令建立xsgl数据库和表

建立xsgl数据库:Create database xsgl

建立学生数据表:

Create Table student (sno C (6), sname C(6) , sex C(2) , birthday D , dno C(3))

建立系数据表:

Create Table dep(dno C(4), dname C(30), tel C(8))

建立课程数据表:

Create Table course (cno C(4), cname C(30), credit C(2), quota N(2))

建立选课数据表:

Create Table sc (sno C(6),cno C(8), grade N(3))

(2) 为表Student以sno字段为索引关键字建立主索引。

Alter Table student Alter sno C(6) Primary Key

(3) 为Sc表的grade字段增加有效性规则:grade>=0 and grade0<=100

Alter Table sc Alter grade ;

Set Check grade>=0 Or grade<=100

(4) 修改表dep的dname字段宽度为35

Alter Table dep Alter dname C(35)

(5) 删除表course的quota字段

Alter Table course Drop quota

(6) 为表course添加quota(n,2)字段

Alter Table course Add quota N(2)

(7) 完成上述命令后用表设计器查看其结构

(8) 按照sc表结构创建新表sc1

Create Table sc1 (sno C(6),cno C(8), grade N(3))

(9) 删除表sc1

Drop Table sc1

(10) crea view age as sele zgbh, xm, xb, zc, bmmc, year(date())-year(csrq) nl ;

from zgqk, bm where zgqk.bmbh=bm.bmbh

(11) Drop View age

4.SQL数据定义命令练习二

(1) 建立yygl数据库:Create database yygl

建立职员数据表:

Create Table 职员(职员号C (3), 姓名C(6) , 性别C(2) , 组号N(1),职务C(10)) 建立客户数据表:

Create Table 客户(客户号C(4), 客户名C(36), 地址C(36), 所在城市C (36)) 建立订单数据表:

Create Table 订单(订单号C(4), 客户号C(4), 职员号 C (3), 签订日期D, 金额N(6,2))

(2) Alter Table职员Alter 性别set Check 性别="男" or 性别="女" Error "错误"

(3) Alter Table客户Alter所在城市set default 所在城市="北京"

(4) Alter Table职员Add 手机号码C(11)

(5) Alter Table 职员Drop 组号

(6) sele * From zgqk into table 职员1

Drop Table 职员1

数据库实验3答案

实验三:交互式SQL语句的使用 1、实验目的 (1)掌握数据库对象的操作过程,包括创建、修改、删除 (2)熟悉表的各种操作,包括插入、修改、删除、查询 (3)熟练掌握常用SQL语句的基本语法 2、实验平台 使用SQL Server提供的Microsoft SQL Server Management Studio工具,交互式使用SQL语句。 3 实验容及要求 选择如下一个应用背景之一: ●学生选课系统 ●习题3、4、和5中使用的数据库 ●其它你熟悉的应用 (1)建立一个数据库和相关的表、索引、视图等数据库对象,练习对表、索引和视图的各种操作。 (2)要求认真进行实验,记录各实验用例及执行结果。 (3)深入了解各个操作的功能。 实验要求包括如下方面的容: 3.1 数据定义 1.基本表的创建、修改及删除 2.索引的创建 3.视图的创建 3.2 数据操作 完成各类更新操作包括: 1.插入数据

2.修改数据 3. 删除数据 3.3 数据查询操作 完成各类查询操作 1.单表查询 2.分组统计 3. 连接查询 4. 嵌套查询 5. 集合查询 3.4 数据操作 1.创建视图 2.视图查询 参考示例: 建立一个学生选课数据库,练习对表、视图和索引等数据库对象的各种操作。 一、数据定义 创建学生选课数据库ST,包括三个基本表,其中Student表保存学生基本信息,Course表保存课程信息,SC表保存学生选课信息,其结构如下表: 表1. Student表结构 表2. Course表结构

表3. SC表结构 1.创建、修改及删除基本表 (1)创建Student表 CREATE TABLE Student (Sno CHAR(8)PRIMARY KEY, Sname CHAR(8), Ssex CHAR(2)NOT NULL, Sage INT, Sdept CHAR(20) ); (2)创建Course表 CREATE TABLE Course (Cno CHAR(4)PRIMARY KEY, Cname CHAR(40)NOT NULL, Cpno CHAR(4), Ccredit SMALLINT, ); (3)创建SC表 CREATE TABLE SC (Sno CHAR(8)FOREIGN KEY (Sno)REFERENCES Student(Sno), Cno CHAR(4), Grade SMALLINT, ); (4)创建员工表Employee

山东大学数据库实验答案2—8

山东大学数据库实验答案2—8 CREATE TABLE test2_01 AS SELECT SID, NAME FROM pub.STUDENT WHERE sid NOT IN ( SELECT sid FROM pub.STUDENT_COURSE ) CREATE TABLE test2_02 AS SELECT SID, NAME FROM PUB.STUDENT WHERE SID IN ( SELECT DISTINCT SID FROM PUB.STUDENT_COURSE WHERE CID IN ( SELECT CID FROM PUB.STUDENT_COURSE WHERE SID='200900130417' ) ) CREATE TABLE test2_03 AS

select SID,NAME from PUB.STUDENT where SID in ( select distinct SID from PUB.STUDENT_COURSE where CID in (select CID from PUB.COURSE where FCID='300002') ) CREATE TABLE test2_04 AS select SID,NAME from PUB.STUDENT where SID in ( select distinct SID from PUB.STUDENT_COURSE where CID in (select CID from PUB.COURSE where NAME='操作系统') intersect select distinct SID from PUB.STUDENT_COURSE where CID in (select CID from PUB.COURSE where NAME='数据结构') ) create table test2_05 as with valid_stu(sid,name) as ( select SID,NAME from PUB.STUDENT where AGE=20 and SID in (select SID from PUB.STUDENT_COURSE) ) select sid,name as name,ROUND(avg(score)) as avg_score,sum(score) as sum_score from PUB.STUDENT_COURSE natural join valid_stu where SID in (select SID from valid_stu) group by SID,NAME create table test2_06 as

《数据库原理与应用》实验题目及答案

《数据库原理与应用》实验作业布置 实验1 数据库的建立修改与删除 完成以下实验报告: 《数据库原理与应用》实验报告 实验1 数据库的建立修改与删除 二、实验环境 操作系统:Windows XP。 数据库管理系统:MS SQL Server 2000 或MS SQL Server 2008。 三、实验目的 1.熟悉SQL Server 2000上机环境,学会SQL Server 2000“企业管理器”以及“查询分析器”的启动与退出;或熟悉MS SQL Server 2008上机环境,学会SQL Server Management Studio的启动与退出。 2.掌握建立数据库的两种方法。 3.掌握查看和修改数据库的两种方法。 4.掌握删除数据库的两种方法。 四、实验内容 (一) 规定内容 1. 在用户方便的存储空间上建立存放用户数据库的文件夹。本实验在D盘根目录下建立文件夹:D:\SQL2000DB,再建立存放T_SQL源代码的文件夹:D:\SQL2000DB\T_SQL 2.利用企业管理器创建学生课程数据库ST,参数如表1.1所示。 3.利用企业管理器查看ST数据库的属性。 4.使用T-SQL语句建立学生-课程数据库ST,参数如表1.1所示。 5.使用T-SQL 语句建立数据库JXDB,参数如表1.2所示。

6.使用T-SQL语句为数据库JXDB添加文件组JX_Group2,并为此文件组添加1个数据文件JXDB_Data4;添加1个日志文件JXDB_log1。参数由用户自己设定。 7.使用T-SQL语句修改数据库JXDB中次数据文件JXDB_Data4的属性:文件初始大小改为5M,增长方式改为每次按20%增长。删除日志文件JXDB_log1。 8.使用T-SQL语句删除数据库JXDB。 (二) 自定内容 五、出现的问题及解决方法 实验2 表结构的建立修改删除及完整性约束条件定义 完成以下实验报告: 《数据库原理与应用》实验报告 一、实验题目 实验2 表结构的建立修改删除及完整性约束条件定义 二、实验环境 操作系统:Windows XP。 数据库管理系统:MS SQL Server 2000或MS SQL Server 2008。 三、实验目的 1.掌握建立、修改与删除表结构的两种方法。 2.掌握定义完整性约束条件的方法。 3.掌握利用企业管理器和使用T-SQL语句向表中插入记录的方法。 四、实验内容 (一) 规定内容 1.对学生课程数据库ST进行完整性约束条件规划设计。 设计结果如表2.1所示。

数据库实验报告

合肥工业大学实验报告一 课程名称:数据库系统原理及应用学号: 20095382 姓名:魏泽民 专业班级:电子商务09-1班 指导教师:马华伟 二零一一年十月

一、实验目的: (1)熟练掌握数据更新语句,灵活地操作插入数据、修改数据和删除数据; (2)熟练掌握关系数据库中的完整性概念的应用; (3)了解数据录入的方法和过程。 (4)掌握单表查询的基本方法; (5)掌握连接查询的基本方法; (6)熟练掌握以下练习,并进行以下各类查询: ①选择表中的若干列、查询全部列、查询经过计算的值; ②选择表中的若干元组,即消除取值重复的行与查询满足指定条件的元组(包 括:比较大小、确定范围、确定集合、字符匹配、涉及空值和多种条件查询); ③对查询结果排序; ④使用集函数; ⑤对查询结果分组 (7)熟练掌握以下练习,并进行下列各类连接查询: ①等值与非等值连接查询; ②自身连接; ③外连接; ④复合条件连接; (8)掌握嵌套查询的基本方法; (9)掌握集合查询的基本方法; (10)熟练掌握查询视图操作 (11)熟练掌握更新视图操作 (12)熟练关系的完整性概念,领会视图的用途 (13)练习以下各类查询: ①带有IN谓词的子查询; ②带有比较运算符的子查询; ③带有ANY或ALL谓词的子查询; ④带有EXISTS谓词的子查询; ⑤视图查询与更新操作; 二、实验要求: (1)为了便于程序正确性测试,需要对自己建立起来的数据表录入一些模拟数据(模拟数据是指符合数据格式要求的假数据),然后按照教材中结构化查询语言SQL章节例题和习题自己组织SQL语句:

(2)设计的SQL程序应该涵盖数据更新操作的全部内容不,包括插入、修改、删除; (3)综合运用SQL语句实现数据插入、修改、删除等操作的综合运用能力。 (4)按照SQL语言编程要求,实现各类查询和检索操作; (5)利用后台的SQL平台环境,编程验证数据库的控制保护功能。 (6)将查询视图命令等价改写为对数据表的查询操作命令,利用SQL编程设计完成并进行效率分析。 三、实验内容: (1)根据以下给定的数据表信息分别对student, course, score, teacher, teching 表进行数据插入和修改,以完成给定的数据录入,同时要求输入班级同学名录模拟客观真实情况,给student、score表添加30条以上记录,以便以后查询应用方便。 Student表:

数据库实验1-6参考答案

实验一SQL Server使用初步 一、实验目的 1、熟悉SQL Server2000的组成及基本功能。 2、掌握SQL Server2000的登录及注册。 3、掌握SQL Server2000企业管理器的使用方法。 4、熟悉查询分析器的基本使用。 二、实验预习 1、什么是数据库管理系统DBMS?你所知道的DBMS有哪些? 答:DBMS是位于用户和操作系统之间的一层数据管理软件。常见的DBMS主要有:Oracle、db2、SQL Server、MySQL、PostgreSQL、SQLite、Firebird等等。 2、SQL Server 2000(2005)的安装步骤? 答:以企业版安装为例,步骤为: 将企业版安装光盘插入光驱后,出现以下提示框。请选择“安装 SQL Server 2000 组件” 出现下面对话框后,选择 "安装数据库服务器" 。 选择 "下一步",然后选择 "本地计算机" 进行安装。 在 "安装选择" 窗口,选择 "创建新的SQL Server实例..."。对于初次安装的用户,应选用这一安装模式,不需要使用 "高级选项" 进行安装。 "高级选项" 中的内容均可在安装完成后进行调整。 在 "用户信息" 窗口,输入用户信息,并接受软件许可证协议。 在“安装定义”窗口,选择“服务器和客户端工具”选项进行安装。 在“实例名”窗口,选择“默认”的实例名称。 在“安装类型”窗口,选择“典型”安装选项,并指定“目的文件夹”。 在 "服务账号" 窗口,请选择 "对每个服务使用统一账户..." 的选项。 在 "身份验证模式" 窗口,选择 "混合模式..." 选项,并设置管理员"sa"账号的密码。 最后按“下一步”即可完成安装。 检测安装:如果安装成功,应该能成功启动SQL Server,并且能和SQL Server 客户端连接上。 可以通过服务管理器来进行启动。

数据库实验题目和答案

按照如下方式重新定义四张表: 定义新的books表,其所拥有的属性与属性类型与原有的books表一致 以列级完整性的方式定义属性bookId为主码,同时在定义的时候必须提供约束名 定义属性category为”非空” ,同时在定义的时候必须提供约束名 create table Books( bookId number(9,0) constraint BooksKey primary key, title varchar(80), author varchar(40), year integer, category varchar(15) constraint B1 not null ); commit; 定义新的customers表,其所拥有的属性与属性类型与原有的customers表一致 以表级完整性的方式定义属性cid为主码 以列级完整性的方式定义属性cname为”唯一”,同时在定义的时候必须提供约束名 create table Customers ( cid number(9,0), cname char(40) constraint C1 unique, age integer, primary key(cid) ); commit; 定义新的purchases表,其所拥有的属性与属性类型与原有的purchases表一致 定义属性cid与bookId为主码,同时在定义的时候必须提供约束名 以列级完整性的方式定义属性bookId为外码,它参照Books表的主码,同时在定义的时候必须提供约束名。当删除Books表中的某一本书时,级联删 除与它相关的购买记录 以表级完整性的方式定义属性cid为外码,它参照customers表,同时在定义的时候必须提供约束名。当删除customers表中的某个顾客时,如果存在 与该客户相关的购买记录,拒绝删除。 create table Purchases( cid number(9,0), bookId number(9,0)

数据库实验报告8

. 西安科技大学 《数据库原理及应用》 课程设计报告 题目:寄宿学校管理信息系统的设计与实现 学院:计算机科学与技术学院 专业及班级:软件工程1202及1203班 学号: 1208010206 1208010207 1208010303 姓名:李倩魏楠楠王青枝 日期: 2014年7月9日 目录 1课程设计目的及意义 (2)

2设计内容及人员分工 (2) 3 需求分析 (2) 3.1 需求陈述 (2) 3.2 功能需求 (2) 3.3 数据需求 (3) 3.4 其它需求 (3) 4 数据库设计 (3) 4.1概念结构设计 (3) 4.2逻辑结构设计 (4) 4.3数据表结构设计 (4) 5 系统功能设计 (6) 6 系统实现 6.1 开发环境 (7) 6.2 数据库的创建与连接技术 (7) 4.3 主要功能的运行结果及代码 (9) 7 总结 (13) 参考文献 (13)

1、课程设计的目的和意义 课程设计目的:通过本课程设计,培养学生具有C/S模式的数据库应用软件系统的设计和开发能力;熟练掌握SQL Server数据库的使用,熟练掌握使用VC、VB或其它开发工具开发数据库应用的能力;为毕业设计打下坚实的基础。学生根据所学的数据库原理与程序设计的知识, 通过对一个实际问题的分析,设计与实现,将原理与应用相结合,使学生学会如何把书本上学到的知识用于解决实际问题,培养学生的动手能力;另一方面,使学生能深入理解和灵活掌握教学内容。 课程设计的意义:通过对这个系统的设计,让我们更加熟悉SQL Sever 2008的相关操作,也巩固了这学期学习的数据库的一些知识,让我们更懂得数据库的重要性无论是在生活中,还是在软件的设计和制作过程中。让我们学会了数据库的设计,经历了数据库设计的几个阶段,比如需求分析,概念结构设计,逻辑结构的设计,都让我们努力的去想,去做,懂得数据库的优化,想想怎么做才是最好的。做出一个比较满意的数据库设计。 2、设计内容及人员分工 魏楠楠:数据库的需求分析,概念设计 王青枝:数据库逻辑设计,表结构设计 李倩:数据库触发器创建实现 3、需求分析 3.1 需求陈述: 某寄宿学校需要开发一个信息管理系统,通过该管理系统可以对学生的日常事务进行管理: 校长助理:可以对学生的档案进行管理,可以进行新增、删除、查询、修改等操作。 财务人员:进行每月的收费和退费工作,每个学生的每月费用包括住宿费,伙食费220,在6-8月收取空调费20,在11-2月收取取暖费20,每个学期的开学初(3月、9月)收取书本费(不定)。住宿费分三种情况:双职工的子女为60,单职工的子女80元,父母均不在本单位工作为100元。每个班的老师在每天要申报本班学生的出勤表,由校长助理完成各班的考勤录入,考勤情况决定上月的伙食退费,以每天10元计算。 学生家长:在对退费有疑问时,可以查询学生的出勤情况。校长助理可以对学生班级进行管理(新增、删除等),可以进行新学生的编班工作和调班工作,档案录入工作,查询班级名册等情况。 3.2功能需求: 3.2.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 sname from students where grade='2001' order by sid asc; (2)查询学生的选课成绩合格的课程成绩。 程序:Select score from choices where score>'59';

(3)查询课时是48或60的课程的名称。 程序:select cname from courses where hour='48'or hour='60'; (4)查询所有课程名称中含有data的课程编号。 程序:select cid from courses where cname like'%data%';

(5)查询所有选课记录的课程号(不重复显示)。 程序:select distinct cid from choices; (6)统计所有教师的平均工资。 程序:select avg(salary) from teachers;

数据库实验答案

实验二 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.00 insert into student values('A0001','赵一','男','24','480.00');.......... 3.把所有学生年龄加一岁。 update student set age=age+1 4.把吴六改名为吴九。 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

数据库实验报告

数据库系统概论实验报告 实验任务: 任务一:数据的定义部分 (一)数据定义: 一、基本表创建,修改,更新,删除 1.建立基本表 在数据库中建立3张基本表:Student、Course和SC. 1)创建学生表Student CREATE TABLE Student( SNO INT PRIMARY KEY, //学号SNO(INT型,主码) SNAME CHAR(8) UNIQUE, //姓名SNAME(CHAR型,长度为8,其值唯一) SEX CHAR(2), //性别SEX(CHAR型,长度为2) DEPTNO INT); //所在系DEPTNO (INT型) 2)创建课程表Course CREATE TABLE Course( CNO INT, //课程号CNO(INT型) CNAME CHAR(20) NOT NULL, //课程名CNAME(CHAR型,长度为20,非空) TNO INT, //授课教师编号TNO(INT型) CREDIT INT, //学分CREDIT(INT型) PRIMARY KEY(CNO,TNO)); //(CNO,TNO)为主码 3)创建学生选课表SC,所有属性均为INT型 CREATE TABLE SC( SNO INT, //学号SNO CNO INT, //课程号CNO GRADE INT, //成绩GRADE PRIMARY KEY(SNO,CNO)); //(SNO,CNO)为主码 4)创建教师表Teacher,由以下属性所组成:教师编号TNO(INT型,主码),教师姓名TNAME(CHAR型,长度为8,非空),所在系DEPTNO(INT型) CREATE TABLE Teacher( TNO INT PRIMARY KEY, TNAME CHAR(8) NOT NULL, DEPTNO INT); 5)创建系表Dept,由以下属性所组成:系号DEPTNO(INT型,主码),系名DNAME(CHAR 型,长度为20,非空)。 CREATE TABLE Dept( DEPTNO INT PRIMARY KEY, DNAME CHAR(20) NOT NULL); 2.修改基本表 在Student表中加入属性AGE(INT型) ALTER TABLE Student ADD AGE INT;

数据库试验答案

计算机与信息学院 数据库实验报告 专业班级 学生姓名及学号 课程教学班号 任课教师 实验指导教师 实验地点 2012 ~2013 学年第二学期

实验1 使用向导创建和删除数据库 一、实验目的 1.熟悉SQL Server 中SQL Server Management Studio的环境 2.了解SQL Server 数据库的逻辑结构和物理结构 3.掌握使用向导创建和删除数据库的方法 二、实验要求 1.熟练使用SSMS进行数据库的创建和删除操作。 2.完成实验报告。 三、实验内容 设有一学籍管理系统,其数据库名为“EDUC”。 初始大小为10MB,最大为50MB,数据库自动增长,增长方式是按5%比例增长; 日志文件初始为2MB,最大可增长到5MB,按1MB增长。 数据库的逻辑文件名为“student_data”, 物理文件名为“student_data.mdf,存放路径为“E:\sql_data”。 日志文件的逻辑文件名为“student_log”, 物理文件名为“student_log.ldf”,存放路径为“E:\sql_data”。 四、实验步骤

1.使用SQL Server Management Studio(简称SSMS)创建数据库。 (1)启动SSMS 在开始菜单中:所有程序-SQL Server 2005 -SQL Server Management Studio单击“连接”按钮,便可以进入【SQL Server Management Studio】窗口。如果身份验证选择的是“混合模式”,则要输入sa的密码。 (2)建立数据库 在“对象资源管理器”窗口,建立上述数据库EDUC。在数据库节点上右击选择新建。同时建立一个同样属性的数据库EDUC1。

数据库实验2-1答题文件(答案)

第2章VisualFoxPro入门 实验2-1 初识VFP 实验要求 打开其中的“实验2-1答题文件.doc”文件,简答或按题目要求实现如下操作。 实验 1.VFP的安装与卸载 ●卸载VFP操作步骤: (1)单击“开始”按钮,单击打开“控制面板”,再双击“添加或删除程序”打开“添加或删除程序”面板,选中需要卸载(删除)的VFP程序,单击“更改/删除”按钮,如图1-1-1所示。按照提示步骤即可完成卸载(删除)VFP程序的操作。 图1-1-1卸载(删除)VFP程序 ●安装VFP操作步骤: (1)双击老师提供的资料“VFP60.RAR”,解压缩到文件夹VFP60,双击文件夹VFP60中的SETUP.EXE安装图标,开始进行安装,如图1-1-2所示。 图1-1-2卸载(删除)VFP程序 1

(2)单击“下一步”按钮,出现如1-1-3所示界面,单击选中“接受协议”。 图1-1-3VFP程序用户许可协议 (3)单击“下一步”按钮,出现如1-1-4所示界面,要求用户输入产品的ID号,如果正确,“下一步”按钮变为可选状态。 图1-1-4输入产品的ID号 (4)单击“下一步”按钮,选择公用安装文件夹的位置,默认安装路径是“C:\Program Files\Microsoft Studio\Common”,用户可单击“浏览”按钮,重新指定路径,如图1-1-5所示。 2

图1-1-5选择安装目标文件夹 (5)单击“下一步”按钮,进入VFP的安装程序界面,单击“继续”按钮,按提示完成一系列操作,如图1-1-6所示。 图1-1-6安装程序界面 (6)安装结束后,显示安装成功的界面,如图1-1-7所示。单击“确定”按钮完成安装。 图1-1-7安装成功界面 2.VFP的启动方法 用不同的方法启动VFP,认识VFP6的主窗口,了解VFP的菜单栏。 (1)VFP的启动方法有: 方法一:单击“开始”按钮,选择【程序】→【Microsoft Visual FoxPro 6.0】→【Microsoft Visual FoxPro 6.0】,即可启动VFP程序。 方法二:直接双击桌面上的快捷图标“Microsoft Visual FoxPro 6.0”即可启动VFP 程序。 (2)Visual FoxPro主窗口界面即Visual FoxPro的工作环境,启动Visual FoxPro 6.0后,打开如图1-1-8所示的界面,了解VFP的菜单栏。 3

同济大学数据库实验5答案

create proc procA as select* from student exec proca create proc procB @_year char(4) as select* from student where year(birthday )=@_year declare @_year char(4) set @_year ='1994' exec procB@_year create proc procf @_Snum char(30) as select s.snum ,avg(score)as平均成绩,count(https://www.doczj.com/doc/443853392.html,um)as选秀门数,sum(1-score/60)as不及格门数 from student s,course c,sc,sections st where s.snum =sc.snum and sc.secnum =st.secnum and https://www.doczj.com/doc/443853392.html,um =https://www.doczj.com/doc/443853392.html,um and S.Snum =@_Snum group by S.Snum DECLARE @_SUNM char(30) set @_SUNM ='s001' exec procf@_sunm CREATE PROC Procd @_snum char(4),@_avg int out,@_selected_course int out,@_failed_course int out AS SELECT @_avg=AVG(score),@_selected_course=COUNT(cnum),@_failed_course=sum(1-score/60) FROM sc JOIN sections ON sc.secnum =sections.secnum WHERE snum=@_snum

数据库实验答案

实验3 使用T-SQL语言完成单表查询 一、实验目的 掌握使用T-SQL语言完成单表查询 掌握常用谓词的用法 掌握where子句的用法 掌握order by 子句的用法 掌握group by 子句和having短语的用法 实验环境 Microsoft SQL Server 2000。 实验内容和要求 查询全体学生的详细信息。 查询所有课程的详细信息。 查询所有选课记录的详细信息,要结果表中的列名以中文的形式显示,分别为:学号,课程号,成绩。 查询已被学生选修了的课程的编号。 查询系别编号为“d002”的学生的姓名和性别。 查询年龄在19至21岁或者性别为“女”的学生的学号和所在系别编号。 查询系别编号为d001、d002和d003的学生的学号和姓名。 查询课程名为“C_”开头的课程名和学分。 某些学生入学后还没有确定所在的系,查询还没有确定系的学生的姓名。 查询成绩大于60分的学生的学号、课程号和成绩,并将查询结果按课程编号升序排列,同一课程的成绩按分数降序排列。 查询学校所开设的总的课程数。 计算2号课的学生成绩总和以及平均成绩,对应的列名分别为“总成绩”和“平均成绩”。 查询选修了3号课程的学生的最高分和最低分,对应的列名分别为“最高分”和“最低分”。 求各个系别的编号以及各系的人数。 查询选课人数大于等于2人的课程编号以及选课的人数。 查询学生2选修课程的总成绩对应的列名为“总成绩”,并显示出学号。 查询有2门以上课程是80分以上的学生的学号及课程数。 查询选修了1号课的学生的学号和成绩,结果按成绩降序、学号升序排列。 实验1 使用T-SQL语言建库、建表 实验2 向表中增、删、改数据 实验目的 掌握使用T-SQL建库、建表、修改表; 掌握使用T-SQL对表中数据进行插入、删除和修改。 实验环境 Microsoft SQL Server 2000。 实验内容和要求 建立数据库STDB 在数据库STDB中建立四个表:

数据库实验7-1答题文件(答案)

第7章SQL结构化查询语言 实验7-1 SQL基本操作 实验要求 1.将服务器上的数据源文件夹“data7-1”下载到本地盘(比如E:\); 2.打开其中的“实验7-1答题文件.doc”文件,边做实验边将各题的操作步骤或所用的命令记录在该文件中。实验完成后将实验完成后将整个文件夹上传到你的“作业”文件夹中。 3、在答题时将答案的文字格式加上蓝色加粗。 实验步骤 1.“学生.dbf”的SQL语言的简单查询 操作步骤: 在命令窗口中依次输入如下命令: (1) 使用set default to 命令设置默认路径: set default to E:\ data7-1 (2) 查询“学生.dbf”中的所有字段的内容: SELECT * FROM 学生 (3) 查询“学生.dbf”中的“姓名”、“出生日期”和“性别”字段的内容: SELECT 姓名,出生日期,性别FROM 学生 (4) 查询“学生.dbf”中的所有女生的记录内容,并按年龄降序排列: SELECT * FROM 学生WHERE 性别="女" ORDER BY 年龄DESC (5) 查询“学生.dbf”中出生日期在1983年1月1日至1984年1月1日的所有学生“姓名”、“出生日期”和“性别”字段的内容: SELECT 姓名,性别,出生日期FROM 学生; WHERE 出生日期>= date(1983,1,1) ; AND 出生日期<= date(1984,1,1) 或: SELECT 姓名,性别,出生日期FROM 学生; WHERE 出生日期between date(1983,1,1) and date(1984,1,1) 或: 70

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;

数据库上机实验题目和答案

试用SQL的查询语句表达下列查询: 1.检索王丽同学所学课程的课程号和课程名。 select Cno ,Cname from c where Cno in (select cno from sc where sno in (select sno from s where sname='王丽' )) 2.检索年龄大于23岁的男学生的学号和姓名。 select sno,sname from s where sex='男' and age>23 3.检索‘c01’课程中一门课程的女学生姓名 select sname from s where sex='女' and sno in (select sno from sc where cno='c01') 4.检索s01同学不学的课程的课程号。 select cno from c where cno not in (select cno from sc where sno ='s01') 5.检索至少选修两门课程的学生学号。 select sc.sno from s,sc where s.sno=sc.sno group by sc.sno having count(https://www.doczj.com/doc/443853392.html,o)>=2 6.每个学生选修的课程门数。 解法一: select so.sno sno,https://www.doczj.com/doc/443853392.html,ount,s.sname from(select sc.sno sno,count(sc.sno) ccount from sc,s where s.sno=sc.sno group by sc.sno ) so,s where s.sno=so.sno 解法二: select sc.sno sno,s.sname,count(sc.sno) ccount from sc,s where s.sno=sc.sno group by sc.sno,sname

数据库上机实验8实验报告

上机实验八——完整性约束的实现 一、实习目的: 掌握SQL中实现数据完整性的方法,加深理解关系数据模型的三类完整性约束。 二、实习准备: 1.复习“完整性约束SQL定义” 2.完成习题四第10题中的各项操作的SQL语句。 3.了解SQL Server 中实体完整性、参照完整性和用户自定义完整性的实现手段 三、实习内容: 1.验证习题四第10题四个表结构的SQL语句。 表一:Sstudent CREATE TABLE Sstudent (Sno char(7) NOT NULL PRIMARY KEY, Sname VarChar(20) NOT NULL, Ssex Char(2) NOT NULL DEFAULT('男') check(Ssex IN('男','女')), Sage smallint check(Sage >14 AND Sage<65), Clno Char(5) NOT NULL REFERENCES Cclass(Clno) ON UPDATE CASCADE); 表二:Ccourse CREATE TABLE Ccourse (Cno Char(1) NOT NULL PRIMARY KEY, Cname VarChar(20) NOT NULL, Credit Smallint CHECK(Credit IN(1,2,3,4,5,6)));

表三:Cclass CREATE TABLE Cclass (Clno Char(5) NOT NULL PRIMARY KEY, Speciality VarChar(20) NOT NULL, Inyear Char(4) NOT NULL, Number Integer CHECK(Number>1 AND Number<100), Mointor Char(7) REFERENCES Student(Sno) ); 表四:Ggrade CREATE TABLE Ggrade (Sno Char(7) NOT NULL REFERENCES Student(Sno) ON DELETE CASCADE ON UPDATE CASCADE, Cno Char(1) NOT NULL REFERENCES Course(Cno) ON DELETE CASCADE ON UPDATE CASCADE, Gmark Numeric(4,1) CHECK(Gmark>0 AND Gmark<100), PRIMARY KEY(Sno,Cno)); 2. SQL Server中提供了那些方法实现实体完整性、参照完整体和用户自定义完整性 答:实体完整性:是通过主码的定义(PRIMARY KEY)来实现的; 参照完整性:是利用外部码(REFERENCES)的说明,以限制相关表中某些属性的取值,当用户违反规则时,提供三种:RESTRICT(限制策略),CASCADE(级联策略),SET NULL(置空策略); 用户自定义完整性:check约束,对元组的CHECK约束

数据库实验8-9-参考答案

实验八实验内容(2) 二、实验内容与步骤 1.SQL数据查询命令的应用 (9) 查询基础工资最高的教师姓名和职称 (10) 查询各部门基础工资与职务补贴之和的最高值、最低值 (11) 查询人数大于等于4人的部门名称和人数 (12) 按部门编号的降序显示教师姓名、部门编号和职称 (13) 查询工资表的数据,存放到数组中 (14) 查询工资表的数据,存放到临时表中 4.使用rsgl数据库,写出分组和统计计算查询的SQL命令 (1) sele count(*) 财政系人数from zgqk where bmbh=; ( sele bmbh from bm where bmmc="财政系") 或者 sele count(*) 财政系人数from zgqk,bm where; bm.bmbh=zgqk.bmbh and bmmc="财政系" 或者 sele count(b mbh) 财政系人数from zgqk,bm where; bm.bmbh=zgqk.bmbh and bmmc="财政系" (2) sele bmmc, count(zgqk.bmbh) 人数from zgqk ; right join bm on zgqk.bmbh=bm.bmbh group by bm.bmbh 注意: ①count(zgqk.bmbh)中必须为zgqk.bmbh,目的是不统计.NULL.内容的记录。可以 先查看右连接情况:sele * from zgqk right join bm on zgqk.bmbh=bm.bmbh ②此应该采用右连接right join,因为“统计每个系”,必须考虑bm表中的所有系 部。 ③group by bm.bmbh,分组应该按照bm的bmbh分组,而不是zgqk的bmbh;运 行①中的sele * from zgqk right join bm on zgqk.bmbh=bm.bmbh,查看运行结果 就知道原因了。 (3) sele bmbh, count(*) 教授人数from zgqk where ; zc=”教授” group by bmbh order by 教授人数desc 或者 sele bmmc, count(*) 教授人数from zgqk, bm; where zgqk.bmbh=bm.bmbh and zc=”教授”; group by zgqk.bmbh order by 教授人数desc 注意:因为该题有where zc=”教授”的限定,所以不需要再类似(2)题的设置。 (4) sele sum(jcgz+zwgz+zjgz) 全体职工工资from gz (5) sele bmmc, count(*) jcgz 超过1800人数from zgqk, bm, gz; where zgqk.bmbh=bm.bmbh and zgqk.zgbh=gz.zgbh and jcgz>=2500; group by zgqk.bmbh

相关主题
文本预览
相关文档 最新文档