数据库原理中SQL语句实验指导书及答案
- 格式:doc
- 大小:110.50 KB
- 文档页数:15
《数据库系统原理》实验报告SQL Server版实验一SQL练习1一、实验目的1.掌握基本表的定义;2.掌握插入数据、修改数据和删除数据语句的常用形式。
二、实验学时2学时三、实验内容1.利用Enterprise Manager,新建一个数据库,命名为zyxt,并有以下要求:⑴该数据库记录某采油厂对油/水井实施作业时所消耗的成本。
(作业:为保证油水井正常生产所实施的工程项目)⑵成本的消耗分为预算、结算、入账三个状态。
预算:采油队向管理部门提出作业申请,并经管理部门批准后,由管理部门负责录入。
结算:某次作业施工结束后,由管理部门与施工单位共同核算各种成本,由管理部门负责录入。
入账:结算后,财务部门将成本计入采油厂账目,由财务部门录入。
⑶预算状态时需要录入的数据:(★:字符型◆货币型▲日期型)★单据号:某一作业项目的编号★预算单位:指需要对油水井实施作业的采油队代码★井号:需要实施作业的油水井◆预算金额★预算人▲预算日期⑷结算状态时需要录入的数据:(★:字符型◆货币型▲日期型▼数值型)调出某条预算记录,录入以下数据:▲开工日期▲完工日期★施工单位★施工内容◆材料费(要求另外用表单独记录材料消耗的明细)(★单据号★物码▼消耗数量◆单价)◆人工费◆设备费◆其它费用◆结算金额(材料费+人工费+设备费+其它费用)★结算人▲结算日期⑸入账状态时需要录入的数据:(★:字符型◆货币型▲日期型)调出某条结算记录,录入以下数据:◆入账金额★入账人▲入账日期⑹为了避免出现数据的不一致和方便数据录入,要求定义以下基础表:(★:字符型)单位代码表:★单位代码★单位名称油水井表:★井号★井别:油井/水井★单位代码(表示某口井由哪个单位负责管理)施工单位表:★施工单位名称物码表:★物码★名称规格★计量单位2.根据以上要求,在Query Analyzer中用建表语句定义所需的数据表。
CREATE TABLE单位代码表(单位代码VARCHAR(20),单位名称VARCHAR(20));CREATE TABLE油水井表(井号VARCHAR(20),井别VARCHAR(20),单位代码VARCHAR(20),);CREATE TABLE施工单位表(施工单位名称VARCHAR(30));CREATE TABLE物码表(物码VARCHAR(20),名称规格VARCHAR(20),计量单位VARCHAR(20));CREATE TABLE材料费(单据号VARCHAR(20),物码VARCHAR(20),消耗数量SMALLINT,单价NUMERIC(10,2),);CREATE TABLE成本材料消耗表(单据号VARCHAR(20),预算单位VARCHAR(20),井号VARCHAR(20),预算金额NUMERIC(10,2),预算人VARCHAR(20),预算日期DATE,开工日期DATE,完工日期DATE,施工单位VARCHAR(20),施工内容VARCHAR(20),材料费NUMERIC(10,2),人工费NUMERIC(10,2),设备费NUMERIC(10,2),其它费用NUMERIC(10,2),结算金额NUMERIC(10,2),结算人VARCHAR(20),结算日期DATE,入账金额NUMERIC(10,2),入账人VARCHAR(20),入账日期DATE,);3.在Query Analyzer中用数据插入语句录入以下数据:单位代码表:1122 采油厂112201 采油一矿112202 采油二矿112201001 采油一矿一队112201002 采油一矿二队112201003 采油一矿三队112202001 采油二矿一队112202002 采油二矿二队INSERTINTO单位代码表(单位代码,单位名称)VALUES('1122','采油厂');INSERTINTO单位代码表(单位代码,单位名称)VALUES('112201','采油一矿');INSERTINTO单位代码表(单位代码,单位名称)VALUES('112202','采油二矿');INSERTINTO单位代码表(单位代码,单位名称)VALUES('112201001','采油一矿一队');INSERTINTO单位代码表(单位代码,单位名称)VALUES('112201002','采油一矿二队');INSERTINTO单位代码表(单位代码,单位名称)VALUES('112201003','采油一矿三队');INSERTINTO单位代码表(单位代码,单位名称)VALUES('112202001','采油二矿一队');INSERTINTO单位代码表(单位代码,单位名称)VALUES('112202002','采油二矿二队');油水井表:(y001 油井112201001)(y002 油井112201001)(y003 油井112201002)(s001 水井112201002)(y004 油井112201003)(s002 水井112202001)(s003 水井112202001)(y005 油井112202002)INSERTINTO油水井表(井号,井别,单位代码)VALUES('y001','油井','112201001');INSERTINTO油水井表(井号,井别,单位代码)VALUES('y002','油井','112201001');INSERTINTO油水井表(井号,井别,单位代码)VALUES('y003','油井','112201002');INSERTINTO油水井表(井号,井别,单位代码)VALUES('s001','水井','112201002');INSERTINTO油水井表(井号,井别,单位代码)VALUES('y004','油井','112201003');INSERTINTO油水井表(井号,井别,单位代码)VALUES('s002','水井','112202001');INSERTINTO油水井表(井号,井别,单位代码)VALUES('s003','水井','112202001');INSERTINTO油水井表(井号,井别,单位代码)VALUES('y005','油井','112202002');施工单位表:作业公司作业一队作业公司作业二队作业公司作业三队INSERTINTO施工单位表(施工单位名称)VALUES('作业公司作业一队');INSERTINTO施工单位表(施工单位名称)VALUES('作业公司作业二队');INSERTINTO施工单位表(施工单位名称)VALUES('作业公司作业三队');物码表:(单价均为10)wm001 材料一吨wm002 材料二米wm003 材料三桶wm004 材料四袋INSERTINTO物码表(物码,名称规格,计量单位)VALUES('wm001','材料一','吨');INSERTINTO物码表(物码,名称规格,计量单位)VALUES('wm002','材料二','米');INSERTINTO物码表(物码,名称规格,计量单位)VALUES('wm003','材料三','桶');INSERTINTO物码表(物码,名称规格,计量单位)VALUES('wm004','材料四','袋');4.利用Query Analyzer录入以下数据:某作业项目编号zy2018001预算单位:112201001 井号:y001 预算金额:10000.00预算人:张三预算日期:2018-5-1 开工日期:2018-5-4完工日期:2018-5-25 施工单位:作业公司作业一队施工内容:堵漏材料费:7000.00(其中材料一:2000.00材料二:2000.00 材料三:2000.00 材料四:1000.00)人工费:2500.00 设备费:1000.00其它费用:1400.00结算金额:11900.00 结算人:李四结算日期:2018-5-26入账金额:11900.00 入账人:王五入账日期:2018-5-28INSERT INTO成本材料消耗表(单据号,预算单位,井号,预算金额,预算人,预算日期,开工日期,完工日期,施工单位,施工内容,材料费,人工费,设备费,其它费用,结算金额,结算人,结算日期,入账金额,入账人,入账日期)VALUES('zy2018001','112201001','y001',10000.00,'张三','2018-5-1','2018-5-4','2018-5-25','作业公司作业一队','堵漏',7000.00,2500.00,1000.00,1400.00,11900.00,'李四','2018-5-26',11900.00,'王五','2018-5-28');5.利用Enterprise Manager录入以下数据:⑴某作业项目编号zy2018002预算单位:112201002 井号:y003 预算金额:11000.00预算人:张三预算日期:2018-5-1 开工日期:2018-5-4完工日期:2018-5-23 施工单位:作业公司作业二队施工内容:检泵材料费:6000.00(其中材料一:2000.00材料二:2000.00 材料三:2000.00)人工费:1500.00 设备费:1000.00其它费用:2400.00结算金额:10900.00 结算人:李四结算日期:2018-5-26入账金额:10900.00 入账人:王五入账日期:2018-5-28⑵某作业项目编号zy2018003预算单位:112201002 井号:s001 预算金额:10500.00 预算人:张三预算日期:2018-5-1 开工日期:2018-5-6 完工日期:2018-5-23 施工单位:作业公司作业二队施工内容:调剖材料费:6500.00(其中材料一:2000.00 材料二:2000.00 材料三:2500.00)人工费:2000.00 设备费:500.00其它费用:1400.00 结算金额:10400.00 结算人:李四结算日期:2018-5-26 入账金额:10400.00 入账人:王五入账日期:2018-5-28 ⑶某作业项目编号zy2018004预算单位:112202001 井号:s002 预算金额:12000.00 预算人:张三预算日期:2018-5-1 开工日期:2018-5-4 完工日期:2018-5-24 施工单位:作业公司作业三队施工内容:解堵材料费:6000.00(其中材料一:2000.00 材料二:2000.00 材料四:2000.00)人工费:2000.00 设备费:1000.00其它费用:1600.00 结算金额:10600.00 结算人:李四结算日期:2018-5-26 入账金额:10600.00 入账人:赵六入账日期:2018-5-28 ⑷某作业项目编号zy2018005预算单位:112202002 井号:y005 预算金额:12000.00 预算人:张三预算日期:2018-5-1 开工日期:2018-5-4 完工日期:2018-5-28 施工单位:作业公司作业三队施工内容:防砂材料费:7000.00(其中材料一:2000.00材料二:2000.00 材料四:3000.00)人工费:1000.00 设备费:2000.00其它费用:1300.00结算金额:11300.00结算人:李四结算日期:2018-6-16.利用Query Analyzer完成以下操作:⑴将编号为zy2018005的项目的人工费和结算金额增加200元。
实验四SQL语言【实验目的】1.掌握SQL语言的使用方法2.利用SQL语句实现相关的操作3.能够独立写出一些较复杂的SQL语句【实验内容】1. 建立一个Student表,由Sno(学号)、Sname(姓名)、Ssex(性别)、Sage(年龄)、Sdept (所在系)五个属性组成。
其中学号不能为空,值是唯一的,并且姓名取值也唯一。
查询名为“创建Student”。
Create table student(sno char(6) not null unique,sname char(4) unique,ssex char(1),sage smallint,sdept char(20))2. 建立一个SC (学生选课)表,它由学号Sno、课程号Cno,修课成绩Grade组成,其中(Sno, Cno)为主码。
),查询名为“创建SC”。
Create table sc(sno char(6),cno char(3),grade single,primary key (sno,cno))3. 查询所有姓刘的学生的学号与姓名及其出生年份,查询名为“查找姓刘的学生”。
Selelct 学号,姓名,year(出生日期) as 出生年份from 学生表where 姓名like “刘*”4. 查询选修了计算机基础的所有学生的学号、姓名、成绩,查询结果按分数降序排列,查询名为“选修了计算机基础的学生”。
Select 学生表.学号,学生.姓名,选课成绩表.成绩from 学生表,课程表,选课成绩表where 学生表.学号=选课成绩表.学号and 课程表.课程编号=选课成绩表.课程编号and 课程表.课程名称=”计算机基础” order by 选课成绩表.成绩6. 查询所有年龄在20岁及20岁以下的学生姓名、年龄,查询名为“20岁及以下的学生”。
Select 姓名,年龄from 学生表where year(date())-year(出生日期)<=207. 查询考试成绩有不及格的学生的学号和姓名。
实验一SQL语言及相关操作一、实验目的本实验的目的是使学生掌握如何在SQL Server Management studio中进行查询分析以及对数据库中的表和数据进行操作,加深对SQL和SQL语言相关操作理解。
熟练掌握数据查询、表的更新等操作方法。
二、实验时数4学时三、实验内容:(1)利用SQL语句进行简单查询和连接查询操作。
1.列出所有course的课程号、课程名和学分。
2.查询所有蒙古族学生的学号、姓名和所在学院。
3.在score表中显示平均成绩都高于85分的学生学号、课程号和成绩。
4.查询选修课称号为001或005且平均成绩大于等于75分学生的学号、课程号和成绩。
5.查询信息管理学院1991年出生的所有男生的信息。
6.查询所有学生的年龄。
7.查询所有姓王或姓黄的学生的姓名、生日和所在班级名称。
8.查询先修课程为”数据结构”的所有课程。
9.查询信息管理学院非汉族同学的学号、姓名、性别及民族。
10.查找选修了“操作系统”的学生学号、成绩和姓名。
11.查找至少选修了一门其直接先修课编号为004的课程的学生学号和姓名。
12.查找至少选修了学号为0800001的学生所选课程的学生学号和姓名。
10413.查询出生日期在1991年以后的学生的学号、姓名、籍贯和年龄。
14.在student表中查询学生的学号、姓名和平均成绩,并按照平均成绩的降序排列。
15.查找了选修了以“C语言程序设计”为其直接先修课的课程的学生学号、课程号和成绩。
16.在score表中查询平均成绩大于80的学生的学号、课程号和成绩,并先按照课程号的升序、再按照成绩的降序排列。
17.查找信息管理学院学生选课情况,显示学生姓名、课程名和成绩。
18.统计student表中的男女学生的人数。
19.查询成绩最高分的学生的学号、课程号和相应成绩。
20.查询选课少于3门的学生的学号及其选课的门数。
(2) 利用SQL语句进行表的管理等操作。
1.给class表中的classname字段添加唯一约束。
sql实训答案【篇一:新sql——server实验练习答案】txt>答案上海师范大学计算机系目录第一部分企业管理器的使用 ....................................................................................................... .. 3试验一注册服务器 ............................................................................... 错误!未定义书签。
试验二创建数据库 ............................................................................... 错误!未定义书签。
试验三创建表 ....................................................................................... 错误!未定义书签。
实验四数据输入 ................................................................................... 错误!未定义书签。
实验五登录到数据库服务器 ............................................................... 错误!未定义书签。
第二部分 sql语言 ....................................................................................................... ................. 3 第二部分 sql语言 ....................................................................................................... .. (3)试验一数据库创建 ....................................................................................................... .......... 3 试验二创建表 ....................................................................................................... .................. 3 试验三创建数据完整性 ....................................................................................................... .. 5 试验四数据完整性试验 ....................................................................................................... .. 6 试验五索引 ....................................................................................................... .................... 10 试验六更新数据 ....................................................................................................... ............ 11 试验七 sql 查询语句 ....................................................................................................... .... 12 试验八视图 ....................................................................................................... .................... 15 试验九安全性控制实验 .......................................................................................................16 试验十存储过程 ....................................................................................................... ............ 17 试验十二触发器 ....................................................................................................... ............ 21 试验十二恢复技术 ....................................................................................................... ........ 25 试验十三事务 ....................................................................................................... ................ 26 试验十四锁 ....................................................................................................... .. (27)第一部分企业管理器的使用第二部分 sql语言试验一数据库创建目的:1掌握利用sql语言进行数据库的创建、维护。
实验四:管理SQL Server表数据一、实验目的熟悉数据表结构及使用特点;熟悉使用Management Stuio界面方式管理数据表数据;熟悉使用T-SQL语句管理数据表数据。
二、实验环境已安装SQL Server 2005 企业版的计算机(13台);具有局域网环境,有固定IP;三、实验学时2学时四、实验要求了解SQL Server数据表数据的管理方法;了解SQL Server数据类型;完成实验报告(部分题只需给出关键语句)。
五、实验内容及步骤以课本指定的数据库为例,并依据数据表的结构创建相对应的数据表(student、course、sc),请分别使用Management Stuio界面方式及T-SQL 语句实现进行以下操作:向各个数据表中插入如下记录:学生信息表(student)课程信息表(course)选课信息表(sc)insert into student.dbo.sc values('20051501','1',75)insert into student.dbo.course values('1','数据库','5',4)insert into student.dbo.student values('201015001','赵菁菁','女',23,'CS') 2.修改CS系姓名为“李勇”的学生姓名为“李咏”;update studentset Sname='李咏'where Sname='李勇'3.修改课程“数据处理”的学分为3学分;3.update courseset Ccredit=3where Cname ='数据处理'4.将选修课程“1”的同学成绩加5分;4.update scset Grade =Grade+5where Cno='1'5.将选修课程“大学英语”的同学成绩加5分;update scset Grade=Grade+5from course,scwhere o=o and ame='大学英语'6.将学号为“200515010”的学生信息重新设置为“王丹丹、女、20、MA”;update studentset Sname='王丹丹',Ssex='女',Sage=20,Sdept='MA'where Sno='200515010'7.修改借书证号为2005001的学生记录重新设置:名字为王婧婧、专业为信息管理、借书量增加5本;(因为无些相关的数据表帮无法实现)8.删除数据表student中无专业的学生记录;deletefrom studentwhere Sdept is null9.删除数据表student中计算机系年龄大于25的男同学的记录;deletefrom studentwhere Ssex='男' and Sage>25 and Sdept='CS'10.删除数据表course中学分低于1学分的课程信息;deletefrom coursewhere Ccredit<1实验五:数据库单表查询一、实验目的1.掌握SELECT语句的基本语法和查询条件表示方法;2.掌握查询条件表达式和使用方法;3.掌握GROUP BY 子句的作用和使用方法;4.掌握HAVING子句的作用和使用方法;5.掌握ORDER BY子句的作用和使用方法。
数据库原理SQLServer实验指导书数据库系统原理实验一、基本操作实验实验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个表的表级约束:每个表的PrimaryKey (主键)约束;借阅表与图书表间、借阅表与读者表之间的FOREIGNKEY(外码)约柬,要求按语义先确定外码约束表达式,再通过操作予以实现;实现借阅表的书号和读者编号的UNIQUE(惟一性)约束;实现读者性别只能是“男”或“女”的check(检查)约束。
2.提高操作实验建立学生_课程库操作,在查询分析器中用SQL命令实现。
库中表结构为:Student(sno,sname,sage,ssex,sdept):course(cno,cname,cpno,ccredit);sc(sno,cno,grade)。
数据库实践教程答案sql在数据库实践教程中,学生需要通过编写SQL语句来操作数据库。
SQL(Structured Query Language)是一种用于管理关系数据库系统的语言,学习和掌握SQL语言非常重要。
首先,我们需要了解常用的SQL操作语句,如SELECT、INSERT、UPDATE和DELETE。
SELECT语句用于查询数据库中的数据,INSERT语句用于向数据库中插入新的数据,UPDATE语句用于更新数据库中的数据,DELETE语句用于删除数据库中的数据。
这些操作语句是数据库操作的基础。
在编写SQL语句时,我们需要考虑表的结构和关系。
在数据库中,数据是以表的形式存储的,每个表由多个列组成,每一列代表一个字段。
表之间可以通过外键来建立关联关系,这样可以更好地组织和管理数据。
在编写SQL语句时,我们需要根据表之间的关系来进行数据查询、插入、更新和删除操作。
此外,在编写SQL语句时,我们还需要注意SQL的语法规则。
SQL语句一般由关键字、函数、运算符和标点符号组成,关键字用来表示操作的类型,函数用来对数据进行计算和处理,运算符用来进行条件判断和逻辑运算。
正确地使用这些语法元素可以确保SQL语句的执行正确和高效。
在实践教程中,学生需要运用所学知识来编写SQL语句,实现对数据库中数据的查询、插入、更新和删除操作。
编写SQL语句需要综合运用SQL的基本操作语句、表的结构和关系以及SQL的语法规则。
总之,数据库实践教程是学生掌握SQL语言的重要阶段。
通过编写SQL语句来操作数据库,学生可以更好地理解数据库的工作原理和应用场景,提升对数据库的数据管理和处理能力。
编写SQL语句需要对SQL的基本操作语句、表的结构和关系以及SQL的语法规则进行综合运用,只有掌握了这些要点,才能编写出高效、准确的SQL语句。
数据库SQL实验操作答案1、创立数据库:创立一个教学管理数据库,以自己的名字拼音首字母+下划线+SC作为库名〔如名字叫张三,那么:ZC_SC〕,〔1〕确定数据库名称;数据库用于学生管理,命名为如ZS_SC〔2〕确定数据库的位置;要求:数据文件和日志文件分别存储在E盘自己的目录下。
〔3〕确定数据库的大小;根据实际的数据量确定数据文件的初始大小为30MB,日志文件的初始大小为3MB。
〔4〕确定数据库的增长;根据实际情况,确定数据文件按20%增长,日志文件按1MB增长。
请利用查询分析器〔Query Analyzer〕,使用SQL语句指定参数创立数据库,给出实现代码和截图。
实现代码及截图样例: SQL语句: create database CYR_SC on primary ( name='CYR_SC_DATA', filename='E:\\CYR_SC_DATA.MDF', size=30MB, filegrowth=20% ) log on ( name='CYR_SC_LOG',filename='E:\\CYR_SC_LOG.LDF', size=3mb, filegrowth=1mb )……………查询分析器执行情况: SQL语句及执行结果截图显示 2、创立根本表:〔注意:请在表名前加上自己的姓名拼音的首字母,主键前加上自己的姓名拼音的首字母,例如张三为ZC_〕其描述的信息有:学生信息、课程信息、教师信息、学生选课成绩、授课信息、班级信息、系部信息、专业信息。
创立:student表(学生信息表)、course表〔课程信息表)、teacher表〔教师信息表)、student _course表〔学生选课成绩表)、teacher_course表〔教师上课课表〕等。
请利用查询分析器,使用SQL语句将下面各表建立到教学管理数据库中。
写出SQL语句〔注意级联删除设置〕,查看各数据表之间的关系,画出实体关系图〔ER图〕。
实验三用T-SQL编辑修改数据库数据一、实验目的熟练掌握在查询分析器中执行INSERT,UPDATE,DELETE语句来实现数据的添加、修改、删除等操作。
二、操作示例1.使用INSERT语句向表中添加数据。
1)向mydatabase数据库的kcxxb表添加下列新记录(插入所有列):use mydatabasegoinsert kcxxb values (‘046110’,‘多媒体应用技术’,70,4)select * from kcxxb --显示结果2)向xsxxb表添加记录(插入部分列):use mydatabasegoinsert xsxxb (xh,xm,csrq,address)values('04651020','黄小烽','1983-7-6','40-203')select * from xsxxb --查询显示结果3)创建一个与xsxxb表结构一样的空表aa,并把xsxxb表中性别(xb)列为“女”的记录添加到aa表中。
并查看aa表中的信息。
use mydatabasegoselect * into aa from xsxxb where 1=2 --1=2是永远为假的条件。
insert aa select * from xsxxb where xb= '女'select * from aa --查询显示结果2.UPDATE语句修改数据1)将xscjb表中的成绩(grade)减少3分。
USE mydatabasegoUPDATE xscjb SET grade=grade-32)将kcxxb表中课程名(kcm)为“哲学”的课时(ks)改为54。
Use mydatabaseGoUpdate kcxxb set ks=72 where kcm= '哲学' 3.DELETE语句删除记录1)删除aa表中出生日期(csrq)在1985年以后的记录。
数据库原理及应用实验指导书 - 答案实验一:数据库管理系统的安装与配置问题一数据库管理系统(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函数,用于连接和操作数据库。
实验四:管理SQL Server表数据一、实验目的熟悉数据表结构及使用特点;熟悉使用Management Stuio界面方式管理数据表数据;熟悉使用T-SQL语句管理数据表数据。
二、实验环境已安装SQL Server 2005 企业版的计算机(13台);具有局域网环境,有固定IP;三、实验学时2学时四、实验要求了解SQL Server数据表数据的管理方法;了解SQL Server数据类型;完成实验报告(部分题只需给出关键语句)。
五、实验内容及步骤以课本指定的数据库为例,并依据数据表的结构创建相对应的数据表(student、course、sc),请分别使用Management Stuio界面方式及T-SQL 语句实现进行以下操作:向各个数据表中插入如下记录:学生信息表(student)课程信息表(course)选课信息表(sc)insert into student.dbo.sc values('20051501','1',75)insert into student.dbo.course values('1','数据库','5',4)insert into student.dbo.student values('201015001','赵菁菁','女',23,'CS') 2.修改CS系姓名为“李勇”的学生姓名为“李咏”;update studentset Sname='李咏'where Sname='李勇'3.修改课程“数据处理”的学分为3学分;3.update courseset Ccredit=3where Cname ='数据处理'4.将选修课程“1”的同学成绩加5分;4.update scset Grade =Grade+5where Cno='1'5.将选修课程“大学英语”的同学成绩加5分;update scset Grade=Grade+5from course,scwhere o=o and ame='大学英语'6.将学号为“200515010”的学生信息重新设置为“王丹丹、女、20、MA”;update studentset Sname='王丹丹',Ssex='女',Sage=20,Sdept='MA'where Sno='200515010'7.修改借书证号为2005001的学生记录重新设置:名字为王婧婧、专业为信息管理、借书量增加5本;(因为无些相关的数据表帮无法实现)8.删除数据表student中无专业的学生记录;deletefrom studentwhere Sdept is null9.删除数据表student中计算机系年龄大于25的男同学的记录;deletefrom studentwhere Ssex='男' and Sage>25 and Sdept='CS'10.删除数据表course中学分低于1学分的课程信息;deletefrom coursewhere Ccredit<1实验五:数据库单表查询一、实验目的1.掌握SELECT语句的基本语法和查询条件表示方法;2.掌握查询条件表达式和使用方法;3.掌握GROUP BY 子句的作用和使用方法;4.掌握HAVING子句的作用和使用方法;5.掌握ORDER BY子句的作用和使用方法。
二、实验环境已安装SQL Server 2005 企业版的计算机(13台);具有局域网环境,有固定IP;三、实验学时2学时四、实验要求1.了解数据库查询;2.了解数据库查询的实现方式;3.完成实验报告;五、实验内容及步骤以数据库原理实验4数据库中数据为基础,请使用T-SQL 语句实现以下操作:1.列出所有不姓刘的所有学生;1.select *from studentwhere Sname not like '刘%'2.列出姓“沈”且全名为3个汉字的学生;select *from student1where Sname like'沈__'3.显示在1985年以后出生的学生的基本信息;select *from studentwhere YEAR(GETDATE())-Sage>19854.按照“性别、学号、姓名、年龄、院系”的顺序列出学生信息,其中性别按以下规定显示:性别为男显示为男生,性别为女显示为女生,其他显示为“条件不明”;select 性别=casewhen Ssex='男' then'男生'when Ssex='女' then'女生'else '条件不明'end,Sno 学号,Sname 码,Sage 年龄,Sdept 院系from student5.查询出课程名含有“数据”字串的所有课程基本信息;select *from coursewhere Cname like '%数据%'7.显示学号第八位或者第九位是1、2、3、4或者9的学生的学号、姓名、性别、年龄及院系;6.select Sno,Sname,Ssex,Sage,Sdeptfrom studentwhere Sno like '_______[1,2,3,4,9][1,2,3,4,9]%'8.列出选修了‘1’课程的学生,按成绩的降序排列;select student.*,sc.*from student,scwhere student.Sno =sc.Sno and o='1'order by Grade DESC9.列出同时选修“1”号课程和“2”号课程的所有学生的学号;select Snofrom scwhere Cno='1' and Sno in(select Snofrom scwhere Cno='2'10.列出课程表中全部信息,按先修课的升序排列;select *from courseorder by Cpno Asc11.列出年龄超过平均值的所有学生名单,按年龄的降序显示;select *from studentwhere Sage>(select AVG(Sage)from student)order by Sage DESC12.按照出生年份升序显示所有学生的学号、姓名、性别、出生年份及院系,在结果集中列标题分别指定为“学号,姓名,性别,出生年份,院系”;select Sno 学号,Sname 姓名,Ssex 性别,YEAR(GETDATE ())-Sage 出生年份,Sdept 所在院系from studentorder by YEAR(GETDATE ())-Sage13.按照院系降序显示所有学生的“院系,学号、姓名、性别、年龄”等信息,其中院系按照以下规定显示:院系为CS显示为计算机系,院系为IS显示为信息系,院系为MA显示为数学系,院系为EN显示为外语系,院系为CM显示为中医系,院系为WM显示为西医系,其他显示为院系不明;select Sdept=casewhen Sdept='CS' then '计算机系'when Sdept='IS' then '信息系'when Sdept='MA' then '数学系'when Sdept='EN' then '外语系'when Sdept='CM' then '中医系'when Sdept='WM' then '西医系'else '条件不明'end ,Sno,Sname,Ssex,Sagefrom studentorder by Sdept DESC14.显示所有院系(要求不能重复,不包括空值),并在结果集中增加一列字段“院系规模”,其中若该院系人数>=5则该字段值为“规模很大”,若该院系人数大于等于4小于5则该字段值为“规模一般”,若该院系人数大于等于2小于4则该字段值为“规模稍小”,否则显示“规模很小”;select Sdept ,院系规模=casewhen COUNT(Sno)>=5 then'规模很大'when COUNT(Sno)>=4then'规模一般'when COUNT(Sno)>=2then'规模稍小'else '规模很小'endfrom studentwhere Sdept is not Nullgroup by Sdept15.按照课程号、成绩降序显示课程成绩在70-80之间的学生的学号、课程号及成绩;select Sno,Cno,Gradefrom scwhere Grade between 70 and 80order by Cno,Grade DESC16.显示学生信息表中的学生总人数及平均年龄,在结果集中列标题分别指定为“学生总人数,平均年龄”;select count(*)学生总人数,AVG(Sage) 平均年龄from student17.显示选修的课程数大于3的各个学生的选修课程数;select Sno 学号,COUNT(Sno)选修课程数from scgroup by Snohaving COUNT(*)>=318.按课程号降序显示选修各个课程的总人数、最高成绩、最低成绩及平均成绩;use studentselect Cno '课程号',COUNT(*)'总人数',MAX(Grade)'最高分',MIN(Grade)'最低分',AVG(Grade)'平均分'from scgroup by Cnoorder by Cno desc19.显示平均成绩大于“200515001”学生平均成绩的各个学生的学号、平均成绩;use studentselect Sno '学号',AVG(Grade)'平均成绩'from scgroup by Snohaving AVG(Grade)>(select AVG(Grade)from scwhere Sno='200515001')20.显示选修各个课程的及格的人数、及格比率;use studentselect Cno'课程号' ,COUNT(*)'及格人数',cast(cast(COUNT(case when Grade>=60 then 1 end)as float)/COUNT(*)AS float(1))'及格率'from scgroup by Cno21.显示选修课程数最多的学号及选修课程数最少的学号;use studentselect Sno '学号',COUNT(*)'选修课程数'from scgroup by Snohaving COUNT(Cno)>=all( select COUNT(*)from scgroup by Sno)unionselect Sno '学号',COUNT(*)'选修课程数'from scgroup by Snohaving COUNT(Cno)<=all( select COUNT(*)from scgroup by Sno)22.显示各个院系男女生人数,其中在结果集中列标题分别指定为“院系名称、男生人数、女生人数”;select Sdept ,COUNT(case when Ssex='女'then 1 end)'女生人数',COUNT(case when Ssex='男'then 1 end)'男生人数'from studentgroup by Sdept,Ssex23.列出有二门以上课程(含两门)不及格的学生的学号及该学生的平均成绩;select Sno学号,AVG(Grade)平均成绩from scgroup by Snohaving COUNT(case when Grade<60 then 1 end)>=2实验六:数据库综合查询一、实验目的1.掌握SELECT语句的基本语法和查询条件表示方法;2.掌握查询条件种类和表示方法;3.掌握连接查询的表示及使用;4.掌握嵌套查询的表示及使用;5.了解集合查询的表示及使用。