数据库-实验二
数据库实验2

实验二SQL Server 2005数据库的数据导入/导出实验时间:2课时实验性质:验证实验主要内容及方法:数据库的数据导入/导出实验要求:(1)数据从一个数据源转换到另一个数据目的地;(2)完成实验报告。
实验目的:(1)掌握SQL Server数据库中的附加/分离功能;(2)掌握SQL Server数据库中的备份/还原功能;(3)掌握SQL Server数据库通过文本形式导入/导出数据的方法;实验设备:装有SQL SERVER2005的电脑导入和导出向导提供了把数据从一个数据源转换到另一个数据目的地的简单方法,该工具可以在异构数据环境中拷贝数据、拷贝整个表或者查询结果,并且可以交互式地定义数据转换方式。
一、操作演示1、SQL 2005 数据库中的分离与附加1.1 附加可以附加复制的或分离的SQL Server 数据库,如下图所示。
图2- 1 使用数据库中的“附加”功能图2- 2 点击“添加”并定位数据库1.2 复制可以对SQL Server 数据库执行“脱机”操作,如图2- 3所示在“脱机”状态下,可以拷贝数据库主文件“*.mdb”和日志文件“*.ldb”到任一目录下。
图2- 3 使数据库处于“脱机状态”2、SQL 2005 数据库中的备份与还原2.1 备份选中需要备份的数据库,然后点击右键选在【任务】 【备份】如图2- 4:图2- 4 选择备份功能点击【备份】后,数据库弹出如图2- 5所示界面:图2- 5 选择要备份的数据库及备份类型按照上述图片步骤点击【添加】按钮,如图2- 6:图2- 6 选择备份目标文件添加完成后点击【确定】按钮,完成数据备份,数据库如图2- 7提示后则备份成功图2- 7 备份成功图2- 8 选择还原功能2.2 还原说明数据还原时与数据备份操作步骤大体相似选择需要还原的数据库点击鼠标右键【任务】→【还原】→【数据库】,如错误!未找到引用源。
;点击【数据库】后,弹出对话框,如图2- 9:图2- 9 选择还原数据库中的参数文件添加完成后,请选择【选项】,如图2- 10:点击【确定】按钮后,完成还原数据库操作,还原成功后数据库如图2- 11提示:图2- 11 还原成功3、以文本方式导入/导出数据3.1 导入文本文件(1)启动SQL Server管理器→选定服务器和数据库→右击该数据库→快捷菜单中选择“任务→导入数据”选项。
实验二 数据库的基本操作

实验项目名称:数据库的基本操作
成绩:
信息对数据库进行修改、查看、删除、备份、还原等操作。
1.实验目的
掌握数据库的基础知识,了解数据库的物理组织与逻辑组成情况,学习创建、修改、查看、缩小、更名、删除、备份、还原等数据库的基本操作方法。
2、“数据文件”名为KCGL_Date.mdf,初始大小为10MB,以后按5%自动增长,大小不限;
3、“事务日志”名为KCGL_log.ldf,初始大小为5MB,以后按5%自动增长,最大不超过200MB;
4、使用Management Studio创建完整备份;
5、使用Management Studio还原完整备份。
2.实验要求
创建一个数据库,并进行备份、还原操作
3.实验预备知识
数据库可以通过在Management Studio中以交互方式或利用CREATE DATABASE语句类似创建。SQL Server的数据库有3种类型的文件来组织与存储数据:主文件、次要文件、事务日志文件。
实验内容
1、使用Management Studio中以交互方式创建数据库KCGL;
1.实验结果
完成数据库KCGL的创建、完整备份和完整还原。
2.疑难与需解决的问题
对CREATE DATABASE命令的掌握比较困难
3.实验体会
虽然对于数据库的基本操作有所掌握,但是觉得数据库依旧很复杂,需要深入学习。
教师评语及成绩
《数据库实验》实验二 数据操作实验

院系:计算机学院实验课程:数据库实验实验项目:数据操作实验指导老师:XXX开课时间:XXXX ~ XXXX年度第 2学期专业:XXXX班级:XXXX级本X班学生:XXX学号:XXXXXXXX实验二数据操作实验一、实验任务及目的1. 实验任务:上机完成实验内容,主要是编写、运行和分析SQL,请预先自行判断SQL 的运行结果(例如:查询结果包含哪些数据;更新后关系数据如何变化),然后与实际的运行结果比较,以此发现和修正SQL编写中的错误。
2. 实验目的:能够熟练使用MS SQL Server的Query Analyzer工具,联机运行SQL并观察分析SQL的执行结果。
掌握SQL的数据定义、数据查询和数据修改功能,能独立用SQL表述问题,解决较复杂的应用需求。
二、实验的主要硬件软件环境MS SQL Server、计算机磁盘三、实验主要数据结构线性表四、实验的主要算法1.至少向北京或天津的工程提供了零件的供应商名,供应的零件名、工程名和供应数量。
SELECT PNAME,JNAME,SNAME,QTYFROM S,P,J,SPJWHERE SPJ.SNO=S.SNOAND SPJ.JNO=J.JNOAND SPJ.PNO=P.PNOAND (J.CITY=’上海’ OR J.CITY=’天津’)2.供应红色零件给工程J1的供应商名SELECT SNAMEFROM S,P,SPJWHERE SPJ.JNO=’J1’AND SPJ.SNO=S.SNOAND SPJ.PNO=P.PNOAND COLOR=’红’3. 没有使用天津产的零件的工程号SELECT JNOFROM JWHERE JNO NOT IN(SELECT JNOFROM SPJ,SWHERE SPJ.SNO=S.SNOAND CITY=’天津’)4.没有向位于相同城市的工程供应零件的供应商名SELECT SNAMEFROM SWHERE SNAME NOT IN( SELECT SNAMEFROM S,J,SPJWHERE SPJ.JNO=J.JNOAND SPJ.SNO=S.SNOAND S.CITY=J.CITY)5. 和工程J3位于同一城市且使用过至少一种相同零件的其它工程名SELECT DISTINCT(JNAME)FROM J,SPJWHERE SPJ.JNO=J.JNOAND CITY IN(SELECT CITYFROM JWHERE J.JNO=’J3’)AND JNAME NOT IN(SELECT JNAMEFROM JWHERE J.JNO=’J3’)6. 每种颜色零件的总重量SELECT COLOR,SUM(WEIGHT)FROM PGROUP BY (COLOR)7.红色零件的平均重量SELECT AVG(WEIGHT)FROM PWHERE COLOR=’红’8.供应商最集中的城市(意即,哪个城市的供应商最多?)SELECT S.CITYFROM SGROUP BY (CITY)HAVING COUNT(CITY)>=ALL(SELECT COUNT(CITY)FROM SGROUP BY (CITY))9.对上海和天津,统计该城市的供应商一共供应了多少数量的零件。
数据库实验二

实验二数据定义一、实验目的1、掌握使用SQL语句创建和删除数据库;2、掌握使用SQL语句创建和删除数据表,创建各种完整性约束,修改表的结构;3、掌握索引的创建和删除方法。
二、实验过程(一)数据库的建立使用CREATE DA TABASE语句创建名为“gongcheng”的数据库。
create database gongcheng(二)数据表的操作1.建立数据表在创建的“gongcheng”数据库中使用SQL语句建立4个关系(可参考课本P74习题5),如下:供应商表S (Sno,Sname,Status,Ctiy)零件表P(Pno,Pname,Color,Weight)工程项目表J(Jno,Jname,City)供应情况表SPJ(Sno,Pno,Jno,QTY)要求:(1)创建每个关系的主键,有外键的创建外键。
(2)S表中的Sname属性列的取值唯一(3)P表中weight属性列的取值范围在1-50之间(4)J表中的Jname取值不能为空并且是唯一的(5)SPJ表中QTY属性列的数据类型必须为int建立供应商表Screate table S(Sno varchar(8)primary key,Sname varchar(20)unique,Status int,City varchar(20))建立零件表Pcreate table P(Pno varchar(8)primary key,Pname varchar(20),Color varchar(4),Weight int check(Weight>=1 and Weight<=50))建立工程项目表Jcreate table J(Jno varchar(8)primary key,Jname varchar(20)unique not null,City varchar(20))建立供应情况表SPJcreate table SPJ(Sno varchar(8),Pno varchar(8),Jno varchar(8),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))2.修改表的结构用SQL语句完成以下操作:(1)给S表增加Sphone和Semail两个属性列,分别用来存放供应商的联系电话和电子信箱。
数据库实验二 简单查询

实验二简单无条件查询
一、实验目的
通过本次实验使学生掌握数据库中表数据的基本查询操作。
二、实验内容
补充:数据库的备份和还原操作
1、查询指定列
2、查询所有列
3、查询计算列
4、函数的使用
三、实验环境
1、Windows XP
2、SQL Server 2000
四、实验步骤
1、还原一个数据库,文件名为“school”
2、打开“STUDENT”数据库
3、输入如下数据:
S表
SC 表
T表
4、根据下列题目书写查询语句,调试,运行,得到正确执行结果。
1)查询所有学生的学号和姓名
2)检索出所有学生的信息
3)从选课关系中检索出学生所选的课程号
4)检索每个学生的出生年份
5)统计学生的人数
6)统计选修了课程的学生人数
7)计算出学号为0001的学生的总分、平均分、最高分和最低分。
答案:
1)Select s#,sname from s;
2)Select * from s;
3)Select distinct c# from sc;
4)Select s#,sname,year(getdate())-age as birth_year from s; 5)Select count(*) as 人数 from s;
6)Select count(distinct s#) as 选课人数 from sc;
7)Select sum(score), avg(score), max(score), min(score) from sc where s#=‘0001’;。
数据库实验二

实验(二): 熟练掌握SQL语言1.求选修了课程的学生的学号,要求:(1) 不使用distinct语句,消除重复元组,写出其SQL语句select SC.Sno from SC;(2)使用distinct语句,消除重复元组,写出其SQL语句selectdistinct(SC.Sno)from SC;(3)如果该查询写成:select Student.Sno from Student, SC where Student.Sno=SC.Sno 请问该查询结果和上面哪个结果是相同的?select Student.Sno from Student,SCwhere Student.Sno=SC.Sno;查询结果和第一个结果相同。
2.求开设的课程号、课程名、学时和学分,要求对查询结果的列重新命名。
select Cno '课程号',Cname '课程名',Ctime '学时',Ccredit '学分'from Course;3.求计算机系和数学系的学生学号、姓名和年龄。
select Sno,Sname,Sagefrom Studentwhere Sdept='计算机系'or Sdept='数学系';4.求不是数学系、计算机系的学生的情况,要求select后写*代替列出所有的列名。
select*from Studentwhere Sdept!='计算机系'and Sdept!='数学系';5.求全体学生的信息,要求按年龄升序排列。
select*from Studentorderby Sage;6.求计算机系年龄在18~20岁之间的学生姓名和年龄。
select Sname,Sagefrom Studentwhere Sdept='计算机系'and Sage>=18 and Sage<=20;7.求姓名是以”李”开头的计算机系学生。
最新数据库实验二实验报告
最新数据库实验二实验报告实验目的:1. 熟悉数据库管理系统的基本操作。
2. 掌握数据库的创建、查询、更新和删除等基本操作。
3. 学习并实践SQL语言在数据库管理中的应用。
实验环境:- 操作系统:Windows 10- 数据库管理系统:MySQL 8.0- 开发工具:MySQL Workbench实验内容:1. 创建数据库- 使用MySQL Workbench连接到MySQL服务器。
- 执行CREATE DATABASE命令创建名为“StudentDB”的数据库。
2. 设计数据表- 在“StudentDB”数据库中创建学生表(Students)和课程表(Courses)。
- 学生表包含字段:学号(ID)、姓名(Name)、年龄(Age)、专业(Major)。
- 课程表包含字段:课程号(CourseID)、课程名(CourseName)、学分(Credits)。
3. 插入数据- 向学生表和课程表中插入一定数量的示例数据。
- 使用INSERT INTO命令并指定具体的值进行数据插入。
4. 查询操作- 实现对学生表和课程表的基本查询,如查询所有学生信息、查询特定专业学生信息等。
- 使用SELECT语句进行查询,并尝试使用WHERE子句进行条件筛选。
5. 更新和删除操作- 修改学生表中的部分数据,如更新学生的选课信息。
- 使用UPDATE命令进行数据更新。
- 删除课程表中的某些课程记录。
- 使用DELETE FROM命令进行数据删除。
6. 数据库的完整性约束- 在创建数据表时设置主键、外键等约束。
- 尝试插入违反约束的数据,并观察数据库的响应。
实验结果:- 成功创建了“StudentDB”数据库以及相应的学生表和课程表。
- 插入数据操作顺利,能够正确输入数据至指定数据表。
- 查询操作无误,能够根据不同条件检索所需数据。
- 更新和删除操作执行正确,数据表中的记录得到相应修改。
- 完整性约束有效,违反约束的操作被数据库拒绝执行。
数据库实验二实验报告
_数据库实验二课程实验报告实验名称:姓名班级学号实验台编号同组学生实验课表现出勤、表现得分25% 实验报告得分50%实验总分操作结果得分25%实验目的:1.掌握SELECT语句的基本语法2.掌握SELECT语句中的SELECT子句的作用及使用方法3.掌握SELECT语句中的WHERE子句的作用及使用方法4.掌握SELECT语句中的ORDER BY子句的作用及使用方法5.掌握集合函数的作用及使用方法6.掌握SELECT语句中的GROUP BY子句的作用及使用方法7.熟悉内连接、外连接、自连接和非限制连接的概念8.能够熟练使用连接查询从多个表中查询数据9.能够熟练地使用子查询得到想要的数据实验内容:一、简单查询1.查询XS表中各个同学的所有信息。
select* from XS;2.查询XS表中各个同学的姓名、专业名和总学分。
select姓名,专业,总学分from XS;3.查询XS表中所有同学的学号、姓名和总学分,结果中各列的标题分别指定为num,name和mark。
select学号num,姓名name,总学分mark from XS;4.查询XS表中的学生数据来自哪些专业(使用DISTINCT子句消除结果集中的重复行)。
select distinct专业from XS;5.查询XS表中各个同学的姓名、专业名和总学分,只返回结果集的前5行。
select top 5 姓名,专业,总学分from XS;6.查询XS表中每个学生的学号、姓名和年龄信息。
select datediff(yyyy,出生日期,'2010')年龄from XS;7.查询XS表中专业为“计算机”的同学的情况。
select*from XS where专业='计算机';8.查询XS表中1979年出生的学生姓名和专业情况。
SELECT姓名,专业from XS where year(出生日期)='1979';9.查询XS表中专业名为“计算机”或“电子”或“数学”的学生的情况。
数据库实验二
数据库实验⼆使⽤商⽤数据库 SQL Server 或 MySQL 实现教务系统的数据库设计实验要求:1. 学习使⽤商⽤数据库SQL Server 或MySQL2. 基于实验⼀的概念模型和逻辑结构,实现数据库分析设计3. 理解和掌握关系数据库存取技术,关系数据操作,完整性约束机制实验内容:1. 创建教务系统各数据库表,包括:Student, Course, SC等。
设置主键和外键,以及⽤户定义的完整性约束条件。
2. 输⼊数据,体验实体完整性,参照完整性,以及⽤户定义的完整性约束。
3. 简单的数据浏览,数据增删改。
实验过程:1. 安装 SQL Server 20162. 安装Microsoft SQL Server Management Studio (SSMS)3. 创建数据库和表选择数据库,右键新建查询,输⼊下⾯语句:CREATE TABLE Department --系表(Dno CHAR(20)PRIMARY KEY,Dname CHAR(20)UNIQUE,Dean CHAR(10),Classnum INT,Crnum INT,Adderss CHAR(20));CREATE TABLE Classroom --教研室表(Crno CHAR(20)PRIMARY KEY,Crname CHAR(10)UNIQUE,Dno CHAR(20),Adderss CHAR(20),FOREIGN KEY (Dno)REFERENCES Department(Dno) );CREATE TABLE Class --班级表(Classno CHAR(20)PRIMARY KEY,Classname CHAR(10)UNIQUE,Dno CHAR(20),Stunum INT,FOREIGN KEY (Dno)REFERENCES Department(Dno) );CREATE TABLE Teacher --教员表(Tno CHAR(10)PRIMARY KEY,Tname CHAR(10)UNIQUE,Title CHAR(10),TSex CHAR(4),Crno CHAR(20),FOREIGN KEY (Crno)REFERENCES Classroom(Crno) );CREATE TABLE Student --学⽣表(Sno CHAR(10)PRIMARY KEY,Sname CHAR(10)UNIQUE,Ssex CHAR(4),Classno CHAR(20),Tno CHAR(10),FOREIGN KEY (Classno)REFERENCES Class(Classno), FOREIGN KEY (Tno)REFERENCES Teacher(Tno));CREATE TABLE Course --课程表(Cno CHAR(10)PRIMARY KEY,Cname CHAR(20)UNIQUE,Credit INT,Chour INT);CREATE TABLE SC --选修表��(Sno CHAR(10),Cno CHAR(10),Mark INT,PRIMARY KEY(Sno,Cno),FOREIGN KEY (Sno)REFERENCES Student(Sno), FOREIGN KEY (Cno)REFERENCES Course(Cno) );4. 直接使⽤SSMS编辑各表数据选中某⼀表,右键选择编辑前200⾏系表:班级表:教研室表:学⽣表:选修表:课程表:5. 导出数据库数据字典选择数据库,右键新建查询,语句如下:SELECT(case when a.colorder=1 then else '' end)表名,a. colorder 字段序号, 字段名,(case when COLUMNPROPERTY( a.id,,'IsIdentity')=1 then '√'else '' end) 标识, (case when (SELECT count(*)FROM sysobjectsWHERE (name in(SELECT nameFROM sysindexesWHERE (id = a.id) AND (indid in(SELECT indidFROM sysindexkeysWHERE (id = a.id) AND (colid in(SELECT colidFROM syscolumnsWHERE (id = a.id) AND (name = ))))))) AND(xtype = 'PK'))>0 then '√' else '' end) 主键, 类型,a.length 占⽤字节数,COLUMNPROPERTY(a.id,,'PRECISION') as 长度,isnull(COLUMNPROPERTY(a.id,,'Scale'),0) as ⼩数位数,(case when a.isnullable=1 then '√'else '' end) 允许空,isnull(e.text,'') 默认值,isnull(g.[value],'') AS 字段说明FROM syscolumns a left join systypes bon a.xtype=b.xusertypeinner join sysobjects don a.id=d.id and d.xtype='U' and <>'dtproperties' left join syscomments eon a.cdefault=e.idleft join sys.extended_properties gon a.id=g.major_id AND a.colid = g.major_idorder by a.id,a.colorder得到结果:数据关系图如图所⽰:6. SQL语句编辑数据:添加:INSERT INTO Department values ('D4','张建','海技系','14','12','松岭路')新增了⼀条记录:删除:DELETE FROM SC WHERE Sno ='S1'此处记录(‘S1’,’C1’,’79’)被删除修改:UPDATE Student set Ssex ='男'WHERE Sno ='S1'Sno为S1的记录性别修改为了‘男’⼼得总结:刚开始在使⽤SSMS编辑数据的时候,总忘记各表中的关系,学⽣表还没定义就编辑选修表,报了不少次错;由此看来,整体设计很重要,像编程之前的流程图⼀样,在建⽴各表之前也应该事先理清楚这些表之间的关系,这样数据库的思路更清晰。
数据库实验报告2
数据库实验报告2数据库实验报告2引言数据库是现代信息系统中不可或缺的组成部分,它可以帮助我们存储、管理和检索大量的数据。
在数据库实验2中,我们将探索数据库的一些高级功能,包括索引、视图和事务处理。
通过这些实验,我们将深入了解数据库的内部工作原理和优化方法。
一、索引的作用和实验结果索引是数据库中用于加速数据检索的重要工具。
在实验中,我们创建了一个包含大量数据的表,并为其中的某一列创建了索引。
通过对比查询速度,我们发现使用索引可以显著提高查询效率。
索引的作用类似于字典的目录,它可以帮助数据库快速定位到需要查询的数据,而不需要遍历整个表。
二、视图的定义和应用视图是数据库中的虚拟表,它是由一个或多个基本表的数据组成的。
在实验中,我们创建了一个视图,用于展示特定条件下的数据。
通过视图,我们可以方便地查看和处理数据,而不需要直接操作底层的表。
视图的定义和使用可以大大简化复杂的查询操作,提高数据的可读性和可维护性。
三、事务处理的原理和实现事务处理是数据库中保证数据一致性和完整性的重要机制。
在实验中,我们模拟了一个银行系统的转账操作,并使用事务处理来确保转账的正确性。
事务处理的原理是将一系列操作作为一个整体进行提交或回滚,以保证数据的一致性。
通过实验,我们了解了事务处理的基本概念和实现方法,以及如何处理并发操作和故障恢复。
四、数据库优化的思路和方法数据库优化是提高数据库性能的关键环节。
在实验中,我们通过调整表结构、创建索引和优化查询语句等方式来提高数据库的执行效率。
通过实验结果的对比,我们发现合理的优化方法可以显著提高数据库的响应速度和并发处理能力。
同时,我们也了解到数据库优化需要综合考虑多个因素,包括数据量、查询频率和硬件资源等。
结论通过数据库实验2,我们深入了解了数据库的高级功能和优化方法。
索引、视图和事务处理是数据库中非常重要的组成部分,它们可以帮助我们提高数据的检索效率、操作便捷性和数据一致性。
同时,数据库优化也是提高数据库性能的关键环节,我们需要综合考虑多个因素来选择合适的优化方法。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
6)修改约束U2,令sage的值大于等于0;
7)创建规则rule_sex,规定更新或插入的值只能是M或F,并绑定到Worker的sex字段;
8)插入2条记录,一条满足规则rule_sex,一条违反规则,观察结果。
5.使用查询分析器创建触发器并测试,请写出相应的语句:
1)为Worker表创建触发器T1,当插入或更新表中数据时,保证所操作记录的sage大于0;
10.假设SCHOOL数据库中,每个学生的登录名都为自己在STUDENTS表中的sid,实现每个学生只能查询自己选课信息,不能查询别人的成绩,也不能修改自己的成绩。
11.结束本次实验
三、实验课后训练
1.自行练习实验指导书P81【实验2.5综合案例】综合案例1;
2.自行练习实验指导书P122【实验3.8综合案例】综合案例;
四、
实验报告
1.授权给public与授权给指定用户有什么区别?实际应用中,哪个更安全些?
2.SQL SERVER中的角色有什么作用?
3.实验总结(实验过程中出现的问题、解决方法、结果如何或其它)
实验四——数据库编程
一、实验目的
1.掌握ODBC的配置;
2.能编写简单的存储过程和函数,并调用;
二、实验预习内容
允许的操作类型
能否转授权
1
SA
U1
Students
SELECT
不能
2
SA
U2
Students
ALL
不能
3
SA
PUBLIC
Choices
SELECT
不能
4
SA
U3
Students
SELECT
能
5
U3
U4
Students
SELECT
能
6
U4
U5
Students
SELECT不能Biblioteka 7SAU6
Choices
INSERT
1.使用SCHOOL数据库
1)创建一张新表CLASS,包括Class_id(varchar(4)),Name(varchar(10)),Department(varchar(20))三个属性列,其中Class_id为主码;
2)执行两次相同的插入操作(’0001’,’01csc’,’cs’),结果如何;
(1)不加WITH CHECK OPTION
(2)加WITH CHECK OPTION
create view V2
as select * from students
where sdept=’cs’
create view V2’
as select * from students
where sdept=’cs’
实验报告册
2014/ 2015学年 第2学期
系 别
计算机科学与技术系
实验课程
数据库原理
专 业
计算机科学与技术
班 级
姓 名
学 号
指导教师
实验二——SQL语句
一、实验目的
1.熟悉SQL的数据查询语言,能使用SQL进行单表查询、连接查询、嵌套查询、集合查询和统计查询,能理解空值的处理;
2.熟悉数据库的数据更新操作,能使用SQL语句对数据库进行数据的插入、更新、删除操作;
2)当更新、删除STU表中记录时,若SC表中有此学生的记录,则自动更新或删除;
4.使用SQL命令完成以下任务:
1)创建Worker表(表结构见指导书P73)
2)定义约束U1、U2,其中U1规定Name字段取值唯一,U2规定sage字段上限是28;
3)插入一条合法记录;
4)插入一条违反U2约束的记录,简述观察到的结果如何?并分析原因;
2)建立名为“LiYong”的登录用户、数据库用户,默认访问SCHOOL数据库,密码为“abcd”;
3)取消“LiYong”用户;
7.先以sa帐号登录,要实现如下表的权限管理,请按先后顺序写出相应的SQL语句(假设所有用户尚未定义,其密码均为123),并加以必要的说明。
编号
授权用户名
被授权用户名
数据库对象名
上机前请预习以下内容,并在空白处填写相应的步骤或命令。
1.配置ODBC,使用VFP中的表单,查询SCHOOL数据库中STUDENTS表中所有记录。
2.编写存储过程并调用,请写出相应命令;
1)在查询分析器中,编写存储过程usp_get_stuinfo,使用一个名为@xm能够传送进存储过程的参数。允许以学生的姓名查询该生的基本信息;
2)为Worker表创建触发器T2,禁止删除编号为00001的记录;
3)为Worker表创建触发器T3,要求更新一个记录时,表中记录的sage要比老记录的sage的值大。
6.分别用企业管理器和查询分析器实现用户的标识并测试,请写出相应的操作过程或对应的语句:
1)设置SQL SERVER的安全认证模式;
4.自行练习实验指导书P36【实验1.4视图】1.4.5自我实践部分;
5.自行练习实验指导书P49【实验1.6空值和空集的处理】1.6.5自我实践部分;
四、
实验报告
1.SQL SERVER中变量声明的命令是什么?输出命令是什么?
变量声明:局部变量需要声明,declare @变量名,空格,数据类型(声明变量)。全局变量不需要声明。
3.熟悉SQL支持的有关视图的操作,能创建、查询及取消视图;
4.了解NULL在数据库中的特殊含义,掌握使用SQL进行与空值相关的操作;
二、实验预习内容
在认真阅读教材及实验指导书【实验1.2数据查询】、【实验1.3数据更新】、【实验1.4视图】和【实验1.6空值和空集的处理】的基础上,上机前请预习以下内容,并在空白处填写相应的步骤或命令。
16)创建视图V1,显示学生姓名、所选课名称、任课教师名;
17)取消V1视图;
2.使用STC数据库,在SQL SERVER 2000的查询分析器中使用SQL语言完成以下操作。请在空白处填写相应的SQL命令或其它内容。
1)创建视图V2,显示计算机(CS)系学生信息;(结合下面的b)小题,V2视图创建2次,分别使用/不使用WITH CHECK OPTION选项)
11)删除所有选了Java课程的学生选课记录;
12)求出每门课的课程号、选课人数,结果存入数据库表T1中。
13)查询所有选课记录的成绩并换算为五分制(注意NULL的情况);
14)查询成绩小于0的选课记录,统计总数、平均分、最大值和最小值(注意查询结果中NULL的情况);
15)按成绩顺序排序显示CHOICES表中所有记录。(使用ORDER BY排序,注意NULL的情况);
4)在查询分析器中,调用此函数,输出两个数中的最大值;
5)在SQL SERVER中定义函数FUNS,返回指定参数的平方,配置好ODBC后,在VFP中调用FUNS并输出结果;
4.结束本次实验
三、实验课后训练
1.自行学习实验指导书P130【实验4.1SQL SERVER事务的定义】;
2.自行学习实验指导书P137【实验4.2SQL SERVER 2005事务与锁】;
[continue]语句序列3
end
3.在SQL SERVER里使用ORDER BY排序时,NULL值如何处理?使用GROUP BY分组时,NULL值又如何处理的?
null默认为最大值(即:asc升序<小-->大>,null值排在最后;desc降序<大-->小>,null值排在最前面
4.实验总结(实验过程中出现的问题、解决方法、结果如何或其它)
2)在查询分析器中调用存储过程查询“赵飞”同学的基本信息的语句;
3.编写函数并调用,请写出相应命令;
1)在查询分析器中,定义内联表值函数Fun,用于返回各职称的教师基本信息;
2)在查询分析器中,使用Fun进行选择以获得“教授”职称的教师基本信息;
3)在查询分析器中,编写标量函数Func,用于返回两个整数中的最大值;
输出命令:select(查询命令)
2.SQL SERVER中实现分支和循环的语句分别是什么?
分支:用case测试表达式
when测试值1 then结果表达式1
when测试值2 then结果表达式2
[else结果表达式n+1]
end
循环:用while布尔表达式
begin语句序列1
[break]语句序列2
1.使用SCHOOL数据库,在SQL SERVER 2000的查询分析器中使用SQL语言完成以下操作。请在空白处填写相应的SQL命令。
1)查询年级为2001的所有学生的名称,按编号顺序排列;
2)查询所有课程名称中含有data的课程编号;
3)统计所有老师的平均工资;
4)查询至少选了3门课的学生编号;
5)查询学号为80009026的学生的姓名、所选课名及成绩;
有些较为复杂的嵌套查询,刚开始不知道如何写,然后问同学,理清了思路,并完成了编程。
在这次实验中,有好多因为中英字符问题而出现的命令错误,进行更改后就可以正常执行命令了
实验三——数据库完整性与安全性
一、实验目的
1.理解实体完整性、参照完整性、用户自定义完整性的概念,学习三类完整性的实现,了解违反完整性的结果;
2.使用SQL命令创建一张学生互助表,要求:包括学生编号、学生姓名、学生帮助对象的编号,每个学生有且仅有一个帮助对象,帮助的对象必须是已存在的学生。
3.使用STC数据库,修改设置,完成以下2种不同的要求,请写出对应的语句或简述操作过程:
1)当更新、删除STU表中记录时,若SC表中有此学生的记录,则拒绝;
with check option
2)插入元组(99999,张三,20岁,男,PH)到V2中,运行结果如何?(观察WITH CHECK OPTION对结果的影响);