数据库实验3报告
实验3:使用SQL语句创建并管理数据库

序号:云南大学软件学院实验报告课程:数据库原理与实用技术实验学期:2015-2016学年第二学期任课教师:张云春专业:信息安全学号:20141120206 姓名:严鑫成绩:实验3使用SQL语句创建并管理数据库做删除或修改操作时,请注意备份数据库一、CAP数据库1、用T-SQL语句创建并管理数据库CAP:记录创建数据库的SQL语句。
CREATE DATABASE capon(name='cap',filename='d:\cap.mdf',size=5mb,maxsize=30mb,filegrowth=10%)log on(name='caplog',filename='d:\cap.ldf',size=5mb,maxsize=25mb,filegrowth=1mb)2、修改数据库:将“CAP数据库”的数据库最大容量更改为无限制(UNLIMITED),然后将“CAP数据库”的日志文件增长方式改为2MB。
记录SQL语句。
alter database capmodify file(name=cap,filename='d:\cap.mdf',maxsize=unlimited)alter database capmodify file(name=caplog,filename='d:\cap.ldf',filegrowth=2)3、用T-SQL语句在“CAP数据库”创建数据表,数据表的结构见教材。
记录创建表的SQL语句。
create table customers(cid char(10)not null,cname char(10)not null,city char(10)not null,discnt char(10)null,primary key(cid))create table agents(aid char(10)not null,aname char(10)not null,city char(10)not null,[percent]char(10)null,primary key(aid))create table products(pid char(10)not null, pname char(10)not null, city char(10)not null, quantity char(10)not null, price char(10)not null, primary key(pid))create table orders(ordno char(10)not null, [month]char(10)not null, cid char(10)not null,aid char(10)not null,pid char(10)not null,qty char(10)not null, dollars char(10)not null, primary key(ordno))4、向表中添加记录,使用Insert Into 语句分别向四张表中添加教材上的数据记录。
数据库实验三

计算机与信息学院实验报告系:专业:年级:姓名:学号:22 实验室号计算机号22 实验时间:2013年10月29日指导教师签字:成绩:报告退发(订正、重做)实验名称:(三)数据库的定义实验一、实验目的和要求(1)掌握SQL Server查询分析器的使用方法,加深对SQL和Transact-SQL语言的查询语句的理解。
(2)熟练掌握简单表的数据查询、数据排序和数据连接查询的操作方法。
(3)熟练掌握数据查询中的分组、统计、计算和组合的操作方法。
二、实验内容和原理1. 基本操作实验用Transact-SQL语句表示下列操作.在学生-课程库中实现其数据查询操作:(1)求数学系学生的学号和姓名。
(2)求选修了高等数学的学生学号、姓名和成绩。
(3)求选修C1课程的学生学号和成绩,并要求对查询结果按成绩降序排列,如果成绩相同则按学号升序排列。
(4)获选修课程C1且成绩在80~90分之间的学生学号、姓名及成绩,并将成绩乘以系数0.8输出。
(5)求数学系或计算机系姓张的学生的信息。
(6)求缺少了成绩的学生的学号和课程号。
(7)求C1课程的成绩高于张三的学生学号和成绩。
(8)求其他系中比计算机系学生年龄都小的学生。
(9)查询选修了全部课程的学生的姓名。
(10)求至少选修了学生“张三”所选修的全部课程的学生学号和姓名。
(11)查询每一门课的间接先行课(即先行课的先行课)。
在图书-图书库中实现其查询操作。
(1)查找这样的图书类别:要求类别中最高的图书定价不低于全部按类别分组的图书平均定价的2倍。
(2)求机械工业出版社出版的各类图书的平均定价,用GROUP BY表示。
(3)列出计算机类图书的书号、名称及价格,最后求出册数和总价格。
(4)列出计算机类图书的书号、名称及价格,并求出各出版社这类书的总价格,最后求出全部册数和总价格。
(5)查询计算机类和机械工业出版社出版的图书。
(6)在图书-借阅库中实现其查询操作:将计算机类的书存入永久的计算机图书表中,将借书日期在1999年以前的借阅记录存入临时的超期借阅表。
数据库完整性实验总结(必备6篇)

数据库完整性实验总结第1篇时间流水,短短的两周就流逝了,回想在这两周的实训生活,我从单一,片面的学习进入了全面,系统的学习,学好它更是一项大任务。
而对于如何学好它,光靠理论知识是远远不够的,_同志曾经就说过“实践是检验真理的唯一标准”!正如大师傅炒菜,知道炒菜的程序,主料、调料一清二楚,不真正掌勺,永远也成不了“大厨”。
而学校给我们提供了这样一个机会,让我们自己_掌勺_,使我们从实践中,加深了对数据库的理解。
经过这次的实训,我们对数据库有了更深的了解,从书面的明白到实践的理解,接触到了自己以前没有接触到的东西,并让我加深了数据库知识的学习和理解,也使我进一步了解数据库,这次实训可以为我们以后真正的实际数据库系统设计提供很好的借鉴。
更使我明白遇到什么挫折,不气馁,不放弃,勇于探索,才会让自己离成功越来越近!俗话说:知之为知之,不知为不知!不要不懂装懂,有什么不懂的要敢于向_知之者_请教!知识是慢慢积累而成的,我们学习不仅要学习理论知识,而实践也是非常重要的,只有当两者结合,才会获得收获!我们这次实习对我们的认识起到了很大的启发作用,使我们以后在接触数据库的过程中少走点弯路。
也使我们对人生和社会有了更清楚的认识,任何的成功都有艰辛和汗水铺出来的,没有那么多的意外收获。
我们要学的还有很多,要接触的还不知道有多少,以后的路还很漫长,我相信我会更加努力的,把握现在,为自己的未来而奋斗,展开双翅飞向美好的未来!在这里很感谢xxx老师给我们传授了这么多的知识和经验,让我们在毕业之际更好的填补自己的不足。
数据库完整性实验总结第2篇在学习《数据库原理及应用》这门课之前,就和课本上提到的一个观点一样,认为它只是存放数据的仓库而已,但是现在我深深体会到这个观点是多么的片面。
数据库是长期存储在计算机内,有组织、可共享的大量的数据集合,前者只能表达它的一方面而已。
数据库技术发展到今天已经是一门非常成熟的技术,它的技术水平、应用水平多比初始时都有了很大的改变,但是它的最基本的特征却没有变,概括起来有以下几个方面:第一点:数据库是相互关联的的数据集合;即在数据库中不仅要能够表示数据本身,还要能够表示数据与数据之间的关系。
数据库实验报告(通用3篇)

数据库实验报告(通用3篇)数据库试验报告篇1一、实训时间:20_年5月13日至5月24日二、实训地点:三、实训目的与意义:1,这次实习可以使我们在课本上学到的学问用于实践增加了我对电脑技巧的一些认知。
2,通过这次实习也可以让我体验到上班族的生活为我将来毕业后找工作打下了基础。
3,并且这次实习可以非常好的关心我完成将来的毕业论文。
四、实训感悟:还依旧记得来的第一天对这里很茫然,不知道实习要做些什么。
然后经过老师的急躁讲解,熟悉了自己实习要做些什么,得到了许多心理熟悉,对许多问题都有了一些更深的了解。
同时,我熟识了河北玛世电子商务有限公司,总部位于国家命名的“中国丝网之乡”、“中国丝网产业基地”、中国丝网产销基地“、”中国丝网出口基地“—河北省安平县。
使我们队公司有了更进一步的了解实习,就是在实践中学习。
经过这半个月的实习训练,我了解到自己所学的如何在实践中运用。
当然学的更多的是如何在更新网站内容和添加商品,每天不厌其烦的更新添加,观察自己的胜利更多的是兴奋。
还有发布了一些关于公司产品的博客,比如新浪,网易。
而后又尝试在百度知道上提问与回答,在回答问题的过程中,通过网站搜寻相关内容来回答各种丝网问题,通过百度知道这个平台,我对公司又了更一步的了解。
经过半个月的实训我学到了许多之前没有学过没有接触到的东西,熟悉到自己的不足,需要更加努力,才能尽快的学会在社会上生活,敢于面对社会的压力,使自己可以在社会上成长进展。
数据库试验报告篇2由于平常接触的都是一些私人项目,这些项目大都是一些类库,其他人的沟通相对可以忽视不计,因此也就不考虑规范化的文档。
实际上从学习的经受来看,我们接触的学问体系都是属于比较老或比较传统的,与现在进展快速的IT行业相比许多状况已不再适用,尤其是当开源模式渐渐走近开发者后更是如此。
虽然这次是一个数据库课程设计,由于本人在选择项目的时候是本着对自己有实际应用价值的角度考虑的,所以其中也涉及到一些数据库以外的设计。
数据库原理实验报告(3)实验三数据表的创建与管理实验

南京晓庄学院《数据库原理与应用》课程实验报告实验三数据表的创建与管理实验所在院(系):数学与信息技术学院班级:学号:姓名:1.实验目的(1)理解SQL Server 2005常用数据类型和表结构的设计方法。
理解主键、外键含义,掌握建立各表相关属性间参照关系的方法。
(2)熟练掌握使用SQL Server Management Studio图形工具创建表,删除表,修改表结构,插入及更新数据的方法。
(3)熟练掌握使用Transact-SQL语句创建表,删除表,修改表结构,插入及更新数据的方法。
2.实验要求基本实验:(1)在实验二所创建的“TM”数据库中合理设计以下各表逻辑结构:学生信息(学号,姓名,性别,籍贯,出生日期,民族,学院/系别号,班级号)课程信息(课程号,课程名称,课程所属模块,课程类别,学分,学时)学习信息(学号,课程号,考试成绩,平时成绩)院系信息(院系号,院系名称)要求确定各个字段的名称、类型、是否有默认值,是否主键等信息。
(2)依据你所设计的表结构,使用SQL Server Management Studio图形工具在“TM”数据库中创建学生信息表和课程信息表,并试验在图形界面中修改表结构,删除数据表,输入并更新数据的方法。
(3)依据你所设计表结构,使用Transact-SQL语句创建学习信息表和院系信息表,并试验使用T-SQL语句修改表结构,删除数据表,插入和更新数据的方法。
(4)找出已创建各表之间相关属性的参照关系,并在相关表中增加引用完整性约束。
(5)按要求完成实验报告。
扩展实验:(1)在“TM”数据库中补充设计以下各表结构:教师信息(教师号,姓名,性别,出生日期,学历,学位,入职时间,职称,院系号)授课信息(教师号,课程号,学期)班级信息(班级号,班级名称,专业号)专业信息(专业号,专业名称,学制,学位)图书信息(图书号,书名,作者,出版社,出版日期,册数,价格,分类)借书偏息(学号,图书号,借出时间,归还时间)奖励信息(学号,奖励类型,奖励金额)(2)设计并实现各表之间相关属性的参照关系。
MySQL数据库应用-实验训练3 数据增删改操作.docx

实验训练3 数据增删改操作实验目的:基于实验1创建的汽车用品网上商城数据库Shopping,练习Insert、Delete、TRUNCATE TABLE、Update语句的操作方法,理解单记录插入与批量插入、DELETE与TRUNCATE TABLE语句、单表修改与多表修改的区别。
实验内容:【实验3-1】插入数据(1)使用单记录插入Insert语句分别完成汽车配件表Autoparts、商品类别表category、用户表Client 、用户类别表Clientkind 、购物车表shoppingcart、订单表Order、订单明细表order_has_Autoparts、评论Comment的数据插入,数据值自定;并通过select语句检查插入前后的记录情况。
INSERT INTO 目标表 SELECT * FROM 来源表;insert into insertTest select * from insertTest2;INSERT INTO 目标表 (字段1, 字段2, ...) SELECT 字段1, 字段2, ... FROM 来源表;(这里的话字段必须保持一致)insert into insertTest2(id) select id from insertTest2;INSERT INTO 目标表(字段1, 字段2, ...)SELECT 字段1, 字段2, ...FROM 来源表WHERE not exists (select * from 目标表where 目标表.比较字段 = 来源表.比较字段);1>.插入多条记录:insert into insertTest2(id,name)select id,namefrom insertTestwhere not exists (select * from insertTest2where insertTest2.id=insertTest.id);2>.插入一条记录:insert into insertTest(id, name)SELECT 100, 'liudehua'FROM dualWHERE not exists (select * from insertTestwhere insertTest.id = 100);(2)使用带Select的Insert语句完成汽车配件表Autoparts中数据的批量追加;并通过select语句检查插入前后的记录情况。
数据库原理实验报告-实验三-数据完整性与安全性控制

《数据库原理》实验报告题目:实验三数据完整性与安全性控制学号班级日期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-->展开键、约束。
数据库原理实验报告(数据查询)

数据库原理实验报告实验三数据查询班级:×××姓名:×××学号:×××数据查询一、[实验目的]1.掌握SQL的单表查询操作2.掌握SQL的连接查询操作3.掌握SQL的嵌套查询操作4.掌握SQL的集合查询操作二、[实验内容]本实验的主要内容是:1.简单查询操作。
包括投影、选择条件表达,数据排序,使用临时表等。
2.连接查询操作。
包括等值连接、自然连接、求笛卡儿积、一般连接、外连接、内连接、左连接、右连接和自连接等。
3.在SQL Server查询分析器中,使用IN、比较符、ANY或ALL和EXISTS操作符进行嵌套查询操作。
4.组合查询与统计查询。
(1)分组查询实验。
该实验包括分组条件表达、选择组条件的表达方法。
(2)使用函数查询的实验。
该实验包括统计函数和分组统计函数的使用方法。
(3)组合查询实验。
(4)计算和分组计算查询的实验。
三、[实验方法]1.将查询需求用Transact-SQL语言表示。
2.在SQL Server查询分析器的输入区中输入Transact-SQL查询语句。
3.设置查询分析器结果区为Standard Execute(标准执行)或Execute to Grid方式。
4.发布执行命令,查看查询结果;如果结果不正确,进行修改,直到正确为止。
5查询分析器的主要作用是编辑Transact-SQL,将其发送到服务器,并将执行结果及分析显示出来(或进行存储)。
查询分析功能主要是通过测试查询成本,判断该查询是否需要增加索引以提高查询速度,并可以实现自动建立索引的功能。
图5- 错误!未定义书签。
SQL Server 2000查询分析器查询分析器的界面如图5- 错误!未定义书签。
所示。
在查询生成器中的左边窗口是对象浏览器,其中按树结构列出了数据库对象;右上方是SQL代码区域,用于输入SQL的查询语句;右下方为结果区,用于显示查询结果和分析结果。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
实验三数据更新、视图、权限管理实验3.1 数据更新1 实验内容(1) 使用INSERT INTO语句插入数据,包括插入一个元组或将子查询的结果插入到数据库中两种方式。
(2) 使用SELECT INTO语句,产生一个新表并插入数据。
(3) 使用UPDATE语句可以修改制定表中满足WHERE子句条件的元组,有三种修改的方式:修改某个元组的值;修改多个元组的值;带子查询的修改语句。
(4) 使用DELETE语句删除数据:删除某一个元组的值;删除多个元组的值;带子查询的删除语句。
2 实验步骤在数据库School上按下列要求进行数据更新可在SQL代码前加下面两句SQL语句,用于确保当前使用的是School数据库Use Schoolgo(1)使用SQL语句向STUDENTS表中插入元组(编号:12345678 名字:LiMing EMAIL:LM@年级:2002)。
Insert into STUDENTS values('12345678','LiMing','LM@','2002')(2)对每个课程,求学生的选课人数和学生的最高成绩,并把结果存入数据库。
使用SELECTINTO和INSERT INTO两种方法实现。
Insert into:create table Courses_maxScore(cid char(20),Count_courses int,maxScore int)insert into Courses_maxScore (cid,Count_courses,maxScore)select cid,count(*)as Count_courses,max(score)as maxScore from CHOICES group by cidselect*from Courses_maxScoreSelect into:select cid,Count_courses,maxScore into cnCourses_maxScore from Courses_maxScoreselect*from cnCourses_maxScore(3)在STUDENTS表中使用SQL语句将姓名为LiMing.的学生的EMAIL改为LM@。
update STUDENTS set email='LM@'where sname='LiMing'(4)在TEACHERS表中使用SQL语句将所有教师的工资翻倍。
update TEACHERS set salary=salary*2(5)将姓名为waqcj的学生的课程C++的成绩加10分。
update CHOICES set score=score+10where cid=(select cid from COURSES where cname='c++')and sid=(select sid from STUDENTS where sname='waqcj')select score from CHOICES,COURSES,STUDENTS where CHOICES.cid=COURSES.cid and CHOICES.sid=STUDENTS.sid and cname='c++'and sname='waqcj'(6) 在STUDENTS表中使用SQL语句删除姓名为LiMing的学生信息。
delete from STUDENTS where sname='LIMING'(7)删除所有选修课程C的选课记录。
delete from CHOICES where cid=(select cid from COURSES where cname='c')delete from CHOICES where no in(select no from CHOICES,COURSES where CHOICES.cid=COURSES.cid and cname='c') (6011 行受影响)select*from CHOICES,COURSES where CHOICES.cid=COURSES.cid and cname='c'(8)对COURSES表做删去时间>80的元组的操作,讨论该删除操作所受到的约束。
delete from COURSES where hour>80select*from COURSES where hour>80实验3.2 视图操作1实验内容(1)使用CREATE VIEW命令建立视图。
(2)对视图进行查询(3)更新视图(4)使用DROP VIEW命令删除视图。
2实验步骤在数据库School上按下列要求进行视图的有关操作可在SQL代码前加下面两句SQL语句,用于确保当前使用的是School数据库Use Schoolgo(1)建立薪水大于3000的教师的视图t_view,并要求进行修改和插入操作时仍需保证该视图只有薪水大于3000的教师信息。
create view t_view(salary_new)asselect salary from TEACHERS where salary>3000with check optionselect*from t_view(2)在视图t_view中查询邮件地址为xibl@的教师的相关信息。
select*from t_view where email='xibl@'(3)向视图t_view中插入一个新的教师记录,其中教师编号为199999998,姓名为abc,邮件地址为abc@,薪水为5000。
insert into t_view values('199999998','abc','abc@',5000)(4)在视图t_view中将编号为200010493的教师的薪水改为6000。
update t_view set salary=6000 where tid='200010493'(5)删除视图t_view。
drop view t_viewselect*from t_view3.3 用户标识与鉴别1实验内容由系统提供一定的方式让用户标识自己的名字和身份。
2实验步骤(1)在SSMS中,设置SQL Server的安全认证模式。
(2)在SSMS中建立一个名为“张三”的登陆用户、School数据库用户。
exec sp_addlogin'张三','123456','School'exec sp_adduser'张三'(3)在SSMS中取消“张三”这个用户。
exec sp_dropuser'张三'exec sp_droplogin'张三'(4)学习【参考命令】中的几个命令,了解利用命令实现上述步骤。
3.4 自主存取控制1实验内容定义用户权限,将用户权限登记到数据字典中,并对用户进行合法权限检查。
2实验步骤(1)在SSMS中建立一个名为“张三”的登陆用户、School数据库的用户。
参见实验3.3的试验步骤(2)(2)使用查询验证“张三”这个用户名是否具有对学生表的SELECT权限。
select SYSTEM_USERexecute as user='张三' select system_userselect*from STUDENTS(3)将School数据库的操作权限赋予数据库用户张三。
revert select system_usergrant all privileges on students to张三grant all privileges on choices to张三grant all privileges on courses to张三grant all privileges on teachers to张三execute as user='张三'select system_user3.5 视图机制在自主存取控制上的应用1实验内容在视图机制上定义用户权限,将用户权限登记到数据字典中,并对用户进行合法权限检查。
2实验步骤(1)在数据库School上创建用户“张三”,具体操作参见实验3.3中的试验步骤(2)。
(2)新建查询,用管理员身份登陆数据库。
在choices表上创建视图ch_view,并显示其内容(选课课程号为10005)。
select system_usercreate view ch_view as (select*from choices where cid='10005')(3)在视图ch_view上给用户张三赋予INSERT的权限。
select system_usergrant insert on ch_view to张三(4)将视图ch_view上score列的权限赋予用户张三。
grant update(score),select(score ) on ch_view to张三(5)以用户张三登陆查询分析器,对ch_view进行查询操作。
execute as user='张三' select system_userselect*from ch_view(6)以用户张三登陆查询分析器, 对no为500127998的学生的成绩进行修改,改为90分。
grant select(no)on ch_view to张三execute as user='张三'select system_userupdate ch_view set score=90 where no='500127998'(7)收回对用户张三对视图ch_view查询权限的授权revoke select on ch_view from张三总结:通过本次实验,我对数据更新、视图、权限管理我了跟深入的理解,实验过程遇到很多问题,源于对知识掌握不牢固;在遇到问题进行百度查询有关资料学习并解决问题。
参考命令:Use SchoolGosp_addlogin [ @loginame = ] 'login'[ , [ @passwd = ] 'password' ][ , [ @defdb = ] 'database' ][ , [ @deflanguage = ] 'language' ][ , [ @sid = ] sid ][ , [ @encryptopt = ] 'encryption_option' ][;]/zh-cn/library/ms173768.aspxsp_adduser [ @loginame = ] 'login'[ , [ @name_in_db = ] 'user' ][ , [ @grpname = ] 'role' ][;]/zh-cn/library/ms181422.aspxsp_dropuser [ @name_in_db = ] 'user' [;]/zh-cn/library/ms189758.aspx2013数据库实验sp_droplogin [ @loginame = ] 'login' [;]/zh-cn/library/ms189767.aspxGRANT{ALL [ PRIVILEGES ] }| permission [ ( column [ ,...n ] ) ] [ ,...n ] [ ON [ class :: ] securable ] TO principal [ ,...n ][ WITH GRANT OPTION ] [ AS principal ][;]/zh-cn/library/ms187965.aspxDENY{ALL [ PRIVILEGES ] }| permission [ ( column [ ,...n ] ) ] [ ,...n ] [ ON [ class :: ] securable ] TO principal [ ,...n ][ CASCADE] [ AS principal ][;]/zh-cn/library/ms188338.aspxREVOKE [ GRANT OPTION FOR ]{[ ALL [ PRIVILEGES ] ]|permission [ ( column [ ,...n ] ) ] [ ,...n ] }[ ON [ class :: ] securable ]{TO|FROM} principal [ ,...n ][ CASCADE] [ AS principal ][;]/zh-cn/library/ms187728.aspx{ EXEC | EXECUTE }( { @string_variable | [ N ]'tsql_string' } [ + ...n ] ) [ AS { LOGIN | USER } = ' name ' ][;]/zh-cn/library/ms188332.aspx11。