数据库实验第三次
数据库实验第三次
![数据库实验第三次](https://img.taocdn.com/s3/m/7b696681af45b307e87197a4.png)
南昌航空大学实验报告2016 年月日课程名称:数据库原理及应用实验名称: SQL-更新操作学号:姓名:同组人:指导教师评定:签名:实验目的:利用INSERT、UPDATE和DELETE命令(或语句)实现对表(或试图)数据的添加、修改与删除等更新操作,这里主要介绍对表的操作。
实验内如与要求:建表和数据库的代码:Create database jxglUSE jxglGOCreate Table Student(Sno CHAR(5) not null primary key(Sno),Sname varchar(20),Sage smallint check(Sage>=15 AND Sage<=45),Ssex char(2) default'男'check(Ssex='男' OR Ssex='女' ),Sdept char(2));Create Table Course(Cno char(2)NOT NULL primary key(Cno),Cname VARCHAR(20),Cpno char(2),Ccredit SMALLINT);Create Table SC(Sno char(5) NOT NULL CONSTRAINT S_F FOREIGN KEY REFERENCES Student(Sno),Cno CHAR(2) NOT NULL,Grade smallint check ((Grade IS NULL)OR(Grade between 0 and 100)), Primary key(Sno,Cno),foreign key(Cno) references Course(Cno));insert into Student values('98001','钱横',18,'男','CS');insert into Student values('98002','王林',19,'女','CS');insert into Student values('98003','李民',20,'男','IS');insert into Student values('98004','赵三',16,'女','MA');insert into Course values('1','数据库系统','5',4);insert into Course values('2','数学分析',null,2);insert into Course values('3','信息系统导论','1',3);insert into Course values('4','操作系统_原理','6',3);insert into Course values('5','数据结构','7',4);insert into Course values('6','数据处理基础',null,4);insert into Course values('7','C语言','6',3);insert into SC values('98001','1',87);insert into SC values('98001','2',67);insert into SC values('98001','3',90);insert into SC values('98002','2',95);insert into SC values('98002','3',88);图:Student表:Course表:SC表:请实践以下命令式更新操作1、在学生表Student和学生选课表SC中分别添加表5-1和表5-2中的记录表5-1:表5-2:代码:Insert Into Student Values('99010','赵青江','18','男','CS'); Insert Into Student Values('99011','张丽萍','19','女','CH'); Insert Into Student Values('99012','陈景欢','20','男','IS'); Insert Into Student Values('99013','陈婷婷','16','女','PH'); Insert Into Student Values('99014','李军','16','女','EH'); Insert Into SC Values('99010','1','87');Insert Into SC Values('99010','2',null);Insert Into SC Values('99010','3','80');Insert Into SC Values('99010','4','87');Insert Into SC Values('99010','6','85');Insert Into SC Values('99011','1','52');Insert Into SC Values('99011','2','47');Insert Into SC Values('99011','3','53'); Insert Into SC Values('99011','5','45'); Insert Into SC Values('99012','1','84'); Insert Into SC Values('99012','3',null); Insert Into SC Values('99012','4','67'); Insert Into SC Values('99012','5','81');插入后:Student表:插入后:SC表:2、备份Student表到TS中并清空TS表。
数据库第三次
![数据库第三次](https://img.taocdn.com/s3/m/46f85f210066f5335a81212b.png)
第三次实验步骤第2题create database Libraryon primary(name=Library_dat,filename='F:\data\Library_dat.mdf',size=10mb,maxsize=50mb,filegrowth=5mb)log on(name=Library_log,filename='F:\data\library_log.ldf',size=10mb,maxsize=50mb,filegrowth=5mb)第3题create table readers(编号char(10) primary key,姓名char(8),读者类型int,已借书量int)create table books(编号char(15) not null,书名char(42) not null,作者char(8),出版社char(28),出版日期datetime,定价float(8))create table borrowinf(读者编号char(10) not null,图书编号char(15) not null,借期datetime not null,还期datetime)create table readtype(类型编号int not null,类型名称char(8) not null,限借数量int not null,借阅期限int)4.insertinto Readersvalues('2002060328','王立群',1,18);insertinto Booksvalues('F12.245','计算机文化基础','刘凌志','青山',2000-8-12,21.8);5. create database KCGLon primary(name=KCGL_Dat,filename='F:\data\KCGL_Dat.MDF',size=10mb,maxsize=50mb,filegrowth=5mb)log on(name=KCGL_Log,filename='F:\data\KCGL_Log.LDF',size=10mb,maxsize=50mb,filegrowth=5mb)6. create table STUDENT(学号char(9) primary key,姓名char(20),性别char(4) check(性别='男' or 性别='女'), 班级名char(10),系别代号int,地址char(20),出生日期datetime)create table COURSE(课程号int primary key,课程名char(20),教师char(20))create table SC(学号char(9),课程号int,成绩int,primary key(学号,课程号),foreign key (学号) references STUDENT(学号), foreign key (课程号) references COURSE(课程号) )7. insertinto COURSEvalues('05','信息系统',’江玉世’)insertinto COURSEvalues('06','数据结构','张牧')8.update readtypeset 限借数量=30 where 类型名称='教师';9.deletefrom bookswhere 书名='数据结构';10.select *from readers;11.select *from readers,books,borrowinfwhere readers.编号='2002060328' and readers.编号=borrowinf.读者编号and books.编号=borrowinf.图书编号;12.select 书名,作者from bookswhere 出版社='清华大学出版社';13.select *from bookswhere 书名like '*程序设计*';14.15.select count(编号)from books16.select sum(定价)from books17.select 出版社,count(出版社) as 数量from booksgroup by 出版社18.select readers.编号,count(readers.编号) as 数量from readers,books,borrowinfwhere 借期>= 2004/1/1 and 借期<=2004/12/31 and readers.编号=borrowinf.读者编号and books.编号=borrowinf.图书编号group by readers.编号19.select *from readers,books,borrowinfwhere 借期>= 2004/1/1 and 借期<=2004/12/31 and readers.编号=borrowinf.读者编号and books.编号=borrowinf.图书编号and 作者='梁晓峰'20.select *from bookswhere 定价>(select avg(定价)from books);21.select *from bookswhere 出版社='高等教育出版社' and 定价>(select avg(定价)from books);22.select *from STUDENT,COURSE,SCwhere 课程名='数据库' and STUDENT.学号=SC.学号and COURSE.课程号=SC.课程号;23.25.select max(成绩) as 最高,min(成绩) as 最低,avg(成绩) as 平均from SC;26.select 课程号,max(成绩)from SCgroup by 课程号;27.select 学号,count(学号) as 选课数from SCgroup by 学号having count(学号)>=2;28.select *from STUDENTwhere 学号in(select 学号from SC);29.select *from STUDENTwhere 学号not in(select 学号from SC);30.select STUDENT.学号,姓名,COURSE.课程号,成绩from STUDENT,COURSE,SCwhere STUDENT.学号=SC.学号and COURSE.课程号=SC.课程号and 成绩=(select max(成绩) from SC,COURSE where COURSE.课程号=SC.课程号and 课程名='C语言')31.select COURSE.课程号,课程名from COURSE,SCwhere COURSE.课程号=SC.课程号and COURSE.课程号in (select 课程号from SCgroup by 课程号having count( 课程号)>=2)32.(1)select product.型号,屏幕尺寸,报价from product,quotationtwhere 面板类型='MVA' and product.型号=quotationt.型号(2)select 型号from quotationtwhere 经销商='世纪蓝博' or 经销商='华人方创' and 报价is not null(3).select distinct 型号,sum(库存量) as 数量from quotationtgroup by 型号(4).select 型号from quotationtgroup by 型号having count(经销商)='1'(5).select distinct product.型号from product,quotationtwhere product.型号not in(select quotationt.型号from quotationt);(6).select distinct 经销商from quotation as xwhere not exists(select *from quotation as ywhere y.型号like '飞利浦%'and not exists (select * from quotation as z where z.经销商=x.经销商and z.型号=y.型号));(7).insertinto product(型号,屏幕尺寸,面板类型)values ('三星S22B360HW','22','TN')8.insertinto distributor(经销商,联系人) values('捷扬诚信','张青伟')9.update productset 屏幕比例='16:9'where 型号='三星S22B360HW';。
数据库第三次试验
![数据库第三次试验](https://img.taocdn.com/s3/m/16e5a02d647d27284b735171.png)
综合性设计性实验报告
学院:经济学院班级:081行管第三学年第一学期
5. 查询使用供应商S1所供应的零件的工程名称(两种方法得到相同结果,如下)
7.查询上海厂商供应的所有零件号码(两种方法得到相同的结果,如下)8.查询使用上海产的零件的工程名称
9.查询没有使用天津产的零件的工程号码
填写说明:
1.实验类型:验证性、设计性或综合性。
2.表格不够填写,可抬高,增加页数。
3.签名、日期必须手写。
实验报告评分参考标准:
1、实验报告内容完整、能独立完成报告(10)
2、实验报告能较好的反映实验过程(20)
3、有原始数据,测试结果与结论准确(40)
4、对实验结论进行分析,思路清晰(20)
5、报告书写工整、认真(10)。
JAVA第三次实验完整版
![JAVA第三次实验完整版](https://img.taocdn.com/s3/m/a33e29f0b8f67c1cfad6b8e8.png)
实验报告
院(系): 计算机科学学院
专业年级 : 电子信息科学与技术1403班姓名 : 卢丽琼
学号 : 21409030312
2016年 12 月 26 日
实验三JDBC编程
一、目的
通过Java数据库访问程序的编写、调试,使学生掌握JDBC编程的基本方法,熟悉常用的JDBC API,促进学生对概念的理解,培养动手能力。
二、基本要求
学生需要按时达到指定实验室上机。
调试教学中使用的程序示例,并加以修改,增加程序的功能;实现数据库访问的优化。
完成实验后,需要按时提交实验报告。
三、实验内容
1)复习数据库SQL语句的编写。
2)编写(JavaODBC-JDBC驱动)公共模块。
3)建立数据库应用模型,对数据库进行操作。
4)调试程序,实现数据库的访问。
四:实验步骤与结果
五:实验心得
通过本次试验,我了解了JDBC的基本概念并且深入了解了其注册方法,我明白了如何调用数据库,怎样建立数据库,以及数据库的基本架构,更深入的了解了JA V A.。
数据库原理实验报告-实验三-数据完整性与安全性控制
![数据库原理实验报告-实验三-数据完整性与安全性控制](https://img.taocdn.com/s3/m/6b5cccbef18583d04864591f.png)
《数据库原理》实验报告题目:实验三数据完整性与安全性控制学号班级日期2016.10.18一、实验容、步骤以及结果1.利用图形用户界面对实验一中所创建的Student库的S表中,增加以下的约束和索引。
(18分,每小题3分)(1)非空约束:为出生日期添加非空约束。
非空约束:取消表S中sbirth的勾。
可能需要重建表。
(2)主键约束:将学号(sno)设置为主键,主键名为pk_sno。
设主键:单击数据库Student-->单击表-->单击S-->右击sno-->选择‘修改’命令-->对话框中右击sno-->选择‘设置主键’-->修改主键名为‘pk_sno’-->保存(3)唯一约束:为(sname)添加唯一约束(唯一键),约束名为uk_sname。
唯一约束:单击数据库Student-->单击表-->单击S-->右击sname-->选择‘修改’命令→右击sname-->选择‘索引和键’命令-->打开‘索引和键’框图-->添加-->是否唯一改为‘是’-->名称改为‘us_sname’-->关闭。
(4)缺省约束:为性别(ssex)添加默认值,其值为“男”。
设默认约束:单击数据库Student→单击表→单击S→右击sno→选择‘修改’命令→单击cno-->在默认值栏输入‘男’→保存(5)CHECK约束:为SC表的成绩(grade)添加CHECK约束,约束名为ck_grade,其检查条件为:成绩应该在0-100之间。
(6)外键约束:为SC表添加外键约束,将sno,cno设置为外键,其引用表分别是S表和C表,外键名称分别为fk_sno,fk_cno。
2.在图形用户界面中删除以上小题中已经创建的各种约束,用SQL语言分别重新创建第1题中的(2)-(6)小题.(15分,每小题3分,提示:alter table add constraint)删除约束:单击数据库Student-->表-->单击S-->展开键、约束。
第三次试验——ER图
![第三次试验——ER图](https://img.taocdn.com/s3/m/5d828e04de80d4d8d15a4fdd.png)
完成之后的CDM模型(参考)
完成之后的PDM模型(参考)
ቤተ መጻሕፍቲ ባይዱ
最终文件清单:
1:一个后缀名为CDM的文件 2:一个后缀名为PDM的文件 3:一个后缀名为CDB的文件(它是CDM的备份 文件,有的同学可能没有) 4:一个后缀名为PDB的文件(它是PDM的备份 文件,有的同学可能没有) 5:CDM的报告文件report1.rtf,PDM的报告文件 report2.rtf 6:crebas.sql
计算机信息管理基础
第三次实验课——ER图
实验背景: school数据库由如下表格组成,如表A1~ A3(见下页)所示,描述一个学校的学生、 教师、课程关系。
实验要求: a) 用s-designer软件画出该数据库ER图; b) 生成Word文档报告;
实验步骤——建立概念数据模型CDM(Concept Data Model):
实验步骤——生成物理数据模型PDM(Physical Data Model):
5:选择Dictionary——Generate Physical Model——在 DataBase Name下拉菜单中选择一种数据库——点击OK, PDM就建立好了; 6:【选做】为Students表与Courses表之间的Relation表 添加Score属性(表示成绩),为Teachers与Courses表 之间的Relation表添加Time属性(表示上课时间); 7:选择Edit——Add Title为PDM添加版本信息; 8:选择File——Create Report——Full PDM Report—— Save RTF为ER图生成报告文档report1.rtf 9:选择Database——Generate Database——在 Directory栏选择文件保存路径——点击Generate Script
《数据库技术》第三次实验内容
![《数据库技术》第三次实验内容](https://img.taocdn.com/s3/m/7707d90476c66137ee0619fa.png)
数据库技术实验创建库和表1.在'D:\SQL2000\DataBase\路径下创建数据库xscj,要求:主数据文件逻辑名为xscj_Data,物理名为xscj_Data.MDF,初始大小为10MB,最大允许为300MB,文件以5MB递增。
事务日志文件逻辑名为xscj_Log,物理名为xscj_Log.LDF,初始大小为10MB,最大允许为200MB,文件以2MB递增。
2.创建表参见教材附录A的要求:CREATE TABLE xs()CREATE TABLE kc()CREATE TABLE xs_kc()上面的SQL代码调试正确之后,请将xscj数据库整个删除,再进行下面的操作。
带完整数据的XSCJ数据库的还原:先下载我课件中的homework备份。
点击后找到你下载下来的homework 的备份(我课件中XSCJ数据库的备份)所在的位置然后一直“确定”下去,就可以还原XSCJ 数据库了,下面的操作都在这个数据库上进行。
如果报错,把第二幅图中的选项改为计算机上正确的文件路径即可。
学生成绩数据的简单和复杂查询实验步骤以xscj数据库为例,使用查询分析器完成以下的查询语句:(1) 查询xs表中的所有学生的信息以及仅查询学生姓名。
(2) 查询出XS表中的前10个或前面10%的学生信息。
(3) 查询总学分<50的所有学生的学号,姓名,专业名。
(4) 将XS_KC表中的学生学号,课程号及成绩输出,其中成绩按70%的分数显示,并且将成绩列名改为‘考试所占分数’。
(5) 查询XS表中的学生相关信息,并以学生姓名,所学专业,出生时间作为列名。
(6) 查询XS_KC表,显示学生成绩在80到89之间的学生选课信息。
(7) 从KC表中找出学时大于60的课程信息,并按照升序和降序显示。
(8) 找出姓王的所有学生。
(9) 查询总学分大于50的所有学生的姓名,性别,专业和选修课程号和成绩(10)查询计算机专业的学分大于50的学生的姓名及所选课程名和成绩。
SQL数据库实验报告 实验三
![SQL数据库实验报告 实验三](https://img.taocdn.com/s3/m/78208de19b89680203d825c5.png)
实验3 SQL Server数据表的管理1.实验目的(1)掌握使用SQL Server管理平台和Transact-SQL语句CREA TE TABLE和ALTER TABLE创建和修改表的方法。
(2)掌握在SQL Server管理平台中对表进行插入、修改和删除数据操作的方法。
(3)掌握使用Transact-SQL语句对表进行插入、修改和删除数据操作的方法。
(4)了解SQL Server的常用数据类型。
2.实验内容及步骤(1)启动SQL Server管理平台,在对象资源管理器中展开studentsdb数据库文件夹。
(2)在studentsdb数据库中包含有数据表student_info、curriculum、grade,这些表的数据结构如图1-2至图1-4所示。
图1-2 学生基本情况表student_info图1-3 课程信息表curriculum图1-4 学生成绩表grade(3)在SQL Server管理平台中创建student_info、curriculum表。
(4)在SQL Server 管理平台中,将student_info 表的学号列设置为主键,非空。
(5)使用Transact-SQL语句CREA TE TABLE在studentsdb数据库中创建grade表。
(6)student_info、curriculum、grade表中的数据如图1-5至图1-7所示。
图1-5 student_info的数据图1-6 curriculum的数据图1-7 grade的数据(7)在SQL Server管理平台中为student_info、curriculum、grade表添加数据。
(8)使用Transact-SQL语句INSERT INTO...V ALUES向studentsdb数据库的grade表插入数据:学号为0004,课程编号为0001,分数为80。
(9)使用Transact-SQL语句ALTER TABLE修改curriculum表的“课程编号”列,使之为非空。
数据库第三次实验报告
![数据库第三次实验报告](https://img.taocdn.com/s3/m/d03566a1af1ffc4ffe47acd2.png)
《数据库系统概论》实验报告姓名班级学号日期题目:实验 3:视图操作和安陈鑫100111062011302526 2013-10-23全性控制一实验内容及步骤结果:(1)在 Student 数据库中,利用图形用户界面,创建一个选修了数据库课程并且是1986 年出生的学生的视图,视图中包括学号,性别,成绩这三个信息。
运行结果:(2) 用两种不同的SQL语句创建课本128 页第 11 题中要求的视图(视图名: V_SPJ)1第一种方法:create view v_spjasselect sno , pno , qtyfrom spj, jwherespj . jno= j . jnoand j . jname=' 三建'2第二种方法:create view v_spjasselect sno , pno , qtyfrom spjwhere jno in( select jnofrom jwhere j . jname =' 三建 ' ).(3)用 SQL语句完成课本 128 页第 11 题中对视图 V_SPJ的查询第一问:select *from v_spj第二问:select pno , qtyfrom v_spjwhere sno = 'S1' ;.(4) 用 T-SQL 语句操作视图的数据。
(15 分,每题 5 分)1给视图 V_SPJ中增加一条数据 ( 基本表中有插入的数据即可 ) 。
insert into v_spj ( sno , pno , qty )values ( 'S6' , 'P6' , 600 );2修改视图 V_SPJ中的任意一条数据的供应数量。
update v_spjset sno ='s1'where qty = 400 ;3删除视图 V_SPJ中的任意一条数据。
deletefrom v_spjwhere qty = 200(5) 在图形用户界面中创建新登录名以及用户。
数据库第三次实验
![数据库第三次实验](https://img.taocdn.com/s3/m/b665d9761711cc7931b71687.png)
SQL高级查询一、实验目的:熟练掌握数据表的连接查询、嵌套查询和集合查询以及数据更新为后继学习作准备。
二、实验属性(验证性)了解并掌握SQL企业控制管理器的使用;掌握基本表的数据查询。
三、实验仪器设备及器材a)计算机。
b)S QL SERVER 2008数据库。
四、实验要求(预习、实验前、实验中、实验后等要求)1.预习教材第三章,熟悉SQL语句。
2.掌握多表查询语句的一般格式。
3.掌握多表无条件、有条件查询及查询结果排序与分组。
4.掌握多表连接、嵌套和集合查询语句的一般格式及各种使用方法。
五、实验原理SQL语言应用。
六、实验步骤:(1) 启动SQL查询分析器;(2) 选择SQL SERVER后,按确认;(3) 选择数据库;12(4) 验证如下例子:1、聚集函数的使用1.1 查询学生总人数。
1.2 查询选修了课程的学生人数。
1.3 查询选修C01号课程的学生平均成绩。
1.4 查询选修C01号课程的学生最高分数。
2.1 求每门课的课程号(Cno)及相应的选课人数。
2.2 查询选修了3门或3门以上课程的学生学号(Sno)。
3.1 查询每个学生及其选修课程的情况。
(Cname)及成绩(Grade)。
选修的课程名(Cname)。
4 带谓词IN的嵌套查询4.1 查询选修了编号为“C02”的课程的学生姓名(Sname)和所在系(Sdept)。
和系名(Sdept)。
七、实验总结这次实验是进一步的高级查询,比上次实验做得更加深入一点,当然也是建立在上一次的基础之上。
这一次查询使用了聚集函数、分组、不同表的连接查询、带in的嵌套查询,是为了能更加的实用,更接近工作中要用到的知识。
每一次做实验都会有新的收获,在实验中不断的积累才能不断提高自己。
数据库实验3-实验报告
![数据库实验3-实验报告](https://img.taocdn.com/s3/m/f5e2bb17e87101f69e3195b2.png)
实验三数据管理操作一、实验目的1.熟悉大型数据库实验环境,以MS SQL SERVER为例。
2.掌握DDL语句,使用DDL语句完成数据表的创建。
3.掌握DML语句,使用DML语句完成数据的插入、修改和删除4.掌握MS SQL SERVER的备份和还原5.掌握MS SQL SERVER的权限分配二、实验内容(1)用DDL(数据定义语句中的Create database)创建一个新数据库FlightDB,数据库文件的设置都可以使用默认值。
(2)用DDL(数据定义语句中的Create Table)创建三张表1.航班表(hbb)包括如下字段:航班号(hbh):字符型,6位定长,主码,以CZ、CA、FM开头始发地(sfd):字符型,可变长统一编码字符型20位长,非空目的地(mdd):字符型,可变长统一编码字符型20位长,非空原价(YJ):整型,非空,必须>=02.乘客表(Ckb)包括如下字段:身份证号(sfzh):字符型,20位变长字符串,主码姓名(xm):可变长统一编码字符型,10位长3.售票表(spb)包括如下字段:航班号(hbh):主码身份证号(sfzh):主码起飞日期(qfrq):日期时间型,非空售票日期(sprq):日期时间型,非空,默认值为当前时间实价(sj):整型,非空其中:航班号为引用航班表的外码,身份证号为引用乘客表的外码。
(3)用DML(数据操纵语句中的Insert)在hbb表中插入如下数据CZ1301,北京,上海,1200CZ1209,南京,昆明,1300CZ1502,上海,北京,1200CA1130,成都,北京,1800CA1230,拉萨,广州,1500CA1401,广州,南京,1600(4)对数据库进行一次完整备份,备份名为BackupFull (5)用DML(数据操纵语句中的Insert)在乘客表和售票表中插入如下数据代码乘客91201 王曼91202 张飞91203 刘羽蕴91204 王若雨91205 张蕊航班号乘客起飞售票实价CZ1301 91201 2001-12-20 2001-11-20 900CZ1209 91202 2001-12-20 2001-11-20 800CZ1502 91201 2002-5-8 2002-5-2 1000CA1230 91201 2001-12-5 2001-12-4 1100CA1401 91202 2002-4-5 2002-4-4 1200CZ1301 91203 2001-12-20 2001-11-20 900CZ1209 91204 2001-12-20 2001-11-20 800CZ1502 91205 2002-5-8 2002-5-2 1000(6)对数据库进行一次差异备份,备份名为BackupAdd1(7)用DML(数据操纵语句中的Update)将所有目的地是北京的航班的原价提高10%(8)用DML(数据操纵语句中的Delete)将“张飞”乘客删除,注意同时删除售票记录和乘客基本信息。
数据库第三次大作业(全答案)
![数据库第三次大作业(全答案)](https://img.taocdn.com/s3/m/b61d9125cd1755270722192e453610661fd95a53.png)
数据库第三次大作业(全答案){4.作业3——存储过程与触发器设计任务任务:1)为BookStore数据库增加一个用户oper1,允许oper1对图书表和借还表进行修改操作。
use BookStoregoexec sp_addlogin operl,'(此处为密码)','BookStore'goexec sp_addrolemember'db_datareader','operl'】grant update on图书表to operlgrant update on借还表to operl2)设计存储过程a)数据初始化过程sp_Init。
包含的操作有:所有的用于测试图书信息、教师信息、历史记录清空,输入图书分类、输入管理员信息、输入借书规定。
略,界面进行输入或者代码输入作业用数据b)某教师在某时间借了某本书,由某管理员办理。
create procedure proc_lendbook@aid char(10),—@atime datetime,@ISBN char(20),@aname nchar(4)asbeginupdate图书表set状态='借出'where ISBN=@ISBN—insert into借还表(ISBN,教师工号,借办代理人,借出日期) values(@ISBN,@aid,@aname,@atime)endc)某教师在某时间还了某本书,由某管理员办理create procedure proc_returnbook@bid char(10),@btime datetime,`@ISBN char(20),@bname nchar(4)asbeginupdate图书表set状态='库存'where ISBN=@ISBNupdate借还表!set还办代理人=@bname,归还日期=@btimewhere教师工号=@bid and ISBN=@ISBNendd)查看某人的全部借还书记录create procedure proc_getReaderlog@cname n char(4),@@cid char(10)asbeginselect b.姓名,c.书名,a.借出日期,归还日期from借还表 a join教师表 b on a.教师工号=b.教师工号join图书表 c on=where b.姓名=@cname or b.教师工号=@cidende)。
数据库实验三-实验九含参考答案
![数据库实验三-实验九含参考答案](https://img.taocdn.com/s3/m/d3b46f23aaea998fcc220e6c.png)
select max(grade),min(grade),avg(grade) from sc where cno='001' 例 3-7:(分组查询) 求各门课程的平均成绩与总成绩。
select cno,avg(grade),sum(grade) from sc group by cno 例 3-8:(分组查询) 输入以下查询语句并执行,观察出现的其结果并分析其原因。 SELECT SNAME,SDEPT,COUNT(*)FROM STUDENT WHERE SDEPT=’CS’ GROUP BY SDEPT;
选择列表中的列'STUDENT.Sname' 无效,因为该列没有包含在聚合函数或GROUP BY 子句中。
例 3-9:(分组查询) 分析以下语句为什么会出现错误。并给出正确的查询语句。 SELECT SAGE FROM STUDENT GROUP BY SNO;
选择列表中的列'STUDENT.Sage' 无效,因为该列没有包含在聚合函数或GROUP BY 子句中。
实验五:数据查询语言
[ 实验目的 ]
体会 SQL 语言数据查询功能的丰富和复杂。
[ 实验内容 ]
3. SQL 数据查询语句: 例 3-1:(涉及空值查询) 求缺少学习成绩的学生的学号和课程号。 select sno,cno from sc where grade is null 例 3-2:(控制行的显示顺序) 求选修 003 课程或 004 课程的学生的学号、课程号和分数。 select sno,cno,grade from sc where cno in('003','004') order by grade 例 3-3:(组函数) 求学生总人数。
数据库原理第三次实验
![数据库原理第三次实验](https://img.taocdn.com/s3/m/1bcd349083d049649b6658f7.png)
实验三Navicat for MySQL 的使用基础
学号2013213046 姓名马龙
一、实验内容
⏹启动Navicat for MySQL。
在MySQL –新建连接中完成连接参数配置,并完
成连接测试和保存连接参数。
⏹查看mysql 数据库的help_category 表的定义、表中数据与索引、完整性约束等。
⏹查看mysql 数据库的其它数据库对象,如视图、索引、存储过程、函数、触发器。
在Navicat for MySQL 中打开查询,新建查询,运行简单的SQL 语句,如select * from help_keyword where help_keyword_id<=3;观察下结果。
二、遇到的问题及解决
Navicat for MySQL安装完成后无法连接
在服务中启动MYSQL服务。
点击运行,搜索服务,找到服务启动栏,启动mysql服务。
三、心得体会
通过此次本实验了解并掌握了如何使用Navicat for MySQL连接数据库、浏览数据库对象、运行库对象、运行SQL 语句和SQL 脚本,以及如何编辑和运行SQL 语句。
数据库实验报告3
![数据库实验报告3](https://img.taocdn.com/s3/m/664661540a4e767f5acfa1c7aa00b52acfc79c1f.png)
数据库实验报告3数据库实验报告3引言:数据库是现代信息管理的关键工具之一,它能够高效地存储和管理大量的数据。
在数据库的设计和实验中,我们需要掌握各种操作和技巧,以便更好地利用数据库来满足实际需求。
本篇实验报告将介绍数据库实验的第三次实验内容和结果,以及我在实验过程中遇到的问题和解决方法。
实验目的:本次实验的主要目的是学习和掌握数据库的索引和视图的创建和使用。
索引和视图是数据库中非常重要的组成部分,能够提高查询效率和数据管理的灵活性。
通过本次实验,我将深入了解索引和视图的原理和应用,并能够熟练地创建和使用它们。
实验内容:本次实验主要包括索引的创建和使用,以及视图的创建和使用两个部分。
在索引的创建和使用部分,我首先学习了索引的原理和分类,了解了索引在数据库中的作用和优势。
然后,我通过实际操作在数据库中创建了几个索引,并进行了查询测试,比较了有索引和无索引的查询效率差异。
结果显示,有索引的查询速度更快,能够大大提高查询效率。
在视图的创建和使用部分,我学习了视图的定义和使用方法,了解了视图在数据库中的应用场景。
我通过实际操作创建了几个视图,并进行了查询测试,验证了视图的灵活性和便利性。
实验结果:通过本次实验,我成功地创建了多个索引和视图,并进行了相应的查询测试。
实验结果显示,有索引的查询速度明显快于无索引的查询,证明了索引在提高查询效率方面的重要作用。
另外,我也发现了视图在数据管理中的灵活性,通过创建视图,我可以方便地对数据库中的数据进行筛选和组合,满足不同的查询需求。
实验问题及解决方法:在实验过程中,我遇到了一些问题,但通过查阅文献和请教老师,我成功地解决了这些问题。
首先,我在创建索引时遇到了命名冲突的问题,通过为每个索引指定唯一的名称,我成功地解决了这个问题。
其次,我在创建视图时遇到了语法错误的问题,通过仔细检查语法和参考示例,我找到了错误并进行了修改。
最后,我在查询测试中遇到了性能问题,通过优化查询语句和调整索引,我成功地提高了查询的性能。
数据库 实验三答案
![数据库 实验三答案](https://img.taocdn.com/s3/m/bbf13f26647d27284b73518f.png)
实验3 SQL语言一、实验目的1、掌握SQL中运算符和表达式的使用。
2、掌握实用SQL语言查询数据库。
二、实验要求1、所有的实验过程请严格按照实验内容的步骤进行。
2、对关键步骤截屏并复制到实验报告的相应位置。
三、实验设备、环境设备:计算机环境:WINDOWS XP、SQL SERVER 2000中文版四、实验原理、方法上机操作五、实验内容准备工作:还原学生成绩管理数据库;注意:写SQL语句时,注意学生成绩管理数据库中表名称和字段名称的对应。
1、使用SQL查询分析器,对学生成绩管理数据库完成如下查询操作:1)简单查询(1)求数学系学生的学号和姓名。
(2)求选修了课程的学生学号。
(3)求选修C1课程的学生学号和成绩,并要求对查询结果按成绩的降序排列,如果成绩相同则按学号的升序排列。
(4)求选修课程0001且成绩在80~90之间的学生学号和成绩,并将成绩乘以系数0.8输出。
(5)求数学系或计算机应用系姓王的学生的信息。
(6)求缺少了成绩的学生的学号和课程号。
2)连接查询(1)查询每个学生的情况以及他(她)所选修的课程。
(2)求学生的学号、姓名、选修的课程名及成绩。
(3)求选修0001课程且成绩为90分以上的学生学号、姓名及成绩。
3)嵌套查询(1)求选修了0003的学生学号和姓名。
(2)求0001课程的成绩高于王军的学生的学号和成绩。
(3)求其他系中比计算机系某一学生年龄小的学生。
4)使用分组和函数查询(1)求学生的总人数。
(2)求选修了课程的学生人数。
(3)求课程和选修0001的人数。
(4)求选修课超过3门课的学生学号。
2、设职工-社团数据库有三个基本表:职工(职工号,姓名,年龄,性别)社会团体(编号,名称,负责人,活动地点)参加(职工号,编号,参加日期)试用SQL语句表达下列操作:1)定义职工表、社会团体表和参加表,注意主码和参照关系2)为职工表、社会团体表和参加表天添加适量数据(可用企业管理器)。
数据库实验第三次实验报告
![数据库实验第三次实验报告](https://img.taocdn.com/s3/m/4a028cf0770bf78a65295437.png)
《数据库系统概论》实验报告姓名:专业班级:学号:实验3:视图、事务与游标1.定义一个视图,包括购买者的姓名、所在州和他们所订购玩具的名称、价格和数量。
视图定义:CREATE VIEW vwOrderWrapperASSELECT cOrderNo, cToyId, siQty, vDescription, mWrapperRate FROM OrderDetail JOIN WrapperON OrderDetail.cWrapperId = Wrapper.cWrapperId2.基于(1)中定义的视图,查询显示所有California州的购买者的姓名和他们所订购玩具的名称及数量。
UPDATE vwOrderWrapperSET siQty = 2, mWrapperRate = mWrapperRate + 1WHERE cOrderNo = ‘000001’3.名为prcGenOrder的存储过程产生存在于数据库中的定单号:CREATE PROCEDURE prcGenOrder@OrderNo char(6) OUTPUTasSELECT @OrderNo=Max(cOrderNo) FROM OrdersSELECT @OrderNo=CASEWHEN @OrderNo>=0 and @OrderNo<9 Then‘00000’+Convert(char,@OrderNo+1)WHEN @OrderNo>=9 and @OrderNo<99 Then‘0000’+Convert(char,@OrderNo+1)WHEN @OrderNo>=99 and @OrderNo<999 Then‘000’+Convert(char,@OrderNo+1)WHEN @OrderNo>=999 and @OrderNo<9999 Then‘00’+Convert(char,@OrderNo+1)WHEN @OrderNo>=9999 and @OrderNo<99999 Then‘0’+Convert(char,@OrderNo+1)WHEN @OrderNo>=99999 Then Convert(char,@OrderNo+1)ENDRETURN当购物者确认定单时,应该出现下面的步骤:(1)用上面的过程产生定单号。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
南昌航空大学实验报告2016 年月日课程名称:数据库原理及应用实验名称:SQL-更新操作学号:姓名:同组人:指导教师评定:签名:实验目的:利用INSERT、UPDA TE和DELETE命令(或语句)实现对表(或试图)数据的添加、修改与删除等更新操作,这里主要介绍对表的操作。
实验内如与要求:建表和数据库的代码:Create database jxglUSE jxglGOCreate Table Student(Sno CHAR(5) not null primary key(Sno),Sname varchar(20),Sage smallint check(Sage>=15 AND Sage<=45),Ssex char(2) default'男'check(Ssex='男' OR Ssex='女' ),Sdept char(2));Create Table Course(Cno char(2)NOT NULL primary key(Cno),Cname VARCHAR(20),Cpno char(2),Ccredit SMALLINT);Create Table SC(Sno char(5) NOT NULL CONSTRAINT S_F FOREIGN KEY REFERENCES Student(Sno), Cno CHAR(2) NOT NULL,Grade smallint check ((Grade IS NULL)OR(Grade between 0 and 100)),Primary key(Sno,Cno),foreign key(Cno) references Course(Cno));insert into Student values('98001','钱横',18,'男','CS');insert into Student values('98002','王林',19,'女','CS');insert into Student values('98003','李民',20,'男','IS');insert into Student values('98004','赵三',16,'女','MA');insert into Course values('1','数据库系统','5',4);insert into Course values('2','数学分析',null,2);insert into Course values('3','信息系统导论','1',3);insert into Course values('4','操作系统_原理','6',3);insert into Course values('5','数据结构','7',4);insert into Course values('6','数据处理基础',null,4);insert into Course values('7','C语言','6',3);insert into SC values('98001','1',87);insert into SC values('98001','2',67);insert into SC values('98001','3',90);insert into SC values('98002','2',95);insert into SC values('98002','3',88);图:Student表:Course表:SC表:请实践以下命令式更新操作1、在学生表Student和学生选课表SC中分别添加表5-1和表5-2中的记录表5-1:表5-2:代码:InsertInto Student Values('99010','赵青江','18','男','CS'); InsertInto Student Values('99011','张丽萍','19','女','CH'); InsertInto Student Values('99012','陈景欢','20','男','IS'); InsertInto Student Values('99013','陈婷婷','16','女','PH'); InsertInto Student Values('99014','李军','16','女','EH'); InsertInto SC Values('99010','1','87');InsertInto SC Values('99010','2',null);InsertInto SC Values('99010','3','80');InsertInto SC Values('99010','4','87');InsertInto SC Values('99010','6','85');InsertInto SC Values('99011','1','52');InsertInto SC Values('99011','2','47');InsertInto SC Values('99011','3','53');InsertInto SC Values('99011','5','45');InsertInto SC Values('99012','1','84');InsertInto SC Values('99012','3',null);InsertInto SC Values('99012','4','67');InsertInto SC Values('99012','5','81');插入后:Student表:插入后:SC表:2、备份Student表到TS中并清空TS表。
代码:未清空前TS表:select*into TSfrom Student;清空后TS表:3、给IS系的学生开设7号课程,建立所相应的选课记录,成绩暂定为60分。
代码:表:insertinto SCselect Sno,Cno,60from Student,Coursewhere Sdept='IS'and Cno='7';4、把年龄小于等于16岁的女生计录保存到表TS中。
代码:图:insertinto TSselect*from Studentwhere Sage<=16 and Ssex='女';5、在表Student中检索每门课均不及格的学生学号、年龄、性别及所在系等信息。
代码:图:select sno,sname,sage,sdeptfrom studentwhere sno in(select Snofrom SCwhere Grade<60groupby Snohaving count(sno)=count(cno));6、将学号“99011”的学生姓名改为刘华,年龄增加一岁。
代码:修改前:update Studentset Sname='李华',Sage=Sage+1where Sno='99011'; 修改后:7、把选修了“数据库系统”课程而成绩不及格的学生成绩全改为空值。
代码:图:update SCset Grade=NULLwhere Sno in(select Snofrom SCwhere Grade<60 and Cno=(select Cnofrom Coursewhere Cname='数据库系统'))8、将Student的前四位学生的年龄均增加1岁。
代码:更改前:更改后:update Studentset Sage=Sage+1where Sno in(selecttop 4 Snofrom student)9、学生王林在3课程中作弊,该课程成绩改为空值。
代码:更改前:更改后:update SCset Grade=NULLwhere Sno=(select Snofrom Studentwhere Sname='王林')and Cno= 3;10、把成绩低于总平均成绩的女同学的成绩提高5%。
代码:更改前:更改后:update SCset Grade=Grade+Grade*0.05where Sno in(select Snofrom SCwhere Grade<(select Avg(Grade)from SC)and Sno in(select Snofrom Studentwhere Ssex='女'))11、在基本表中SC中修改课程号为“2”号课程的成绩,若成绩小于等于80分时降低2%若成绩大于80分时降低1%(用两个UPDATE语句实现)。