数据库实验3
数据库实验三

计算机与信息学院实验报告系:专业:年级:姓名:学号: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年以前的借阅记录存入临时的超期借阅表。
SQL数据库实验三_简单查询(2)解答

实验三简单查询(2)解答实验结果1、查询住址在上海的员工所做的订单,结果输出员工编号、姓名、住址、订单编号、客户编号和订单日期,并按客户编号排序输出。
SQL语句:SELECT employeeNo,employeeName,address,orderNo,customerNo,orderDateFROM Employee,OrderMasterWHERE employeeNo= salerNo AND address like'%上海%'ORDER BY customerNo查询结果:2、查找订购了“32M DRAM”的商品的客户编号、客户名称、订单编号、订货数量和订货金额,并按客户编号排序输出。
SQL语句:SELECT a.customerNo,customerName,b.orderNo,quantity, price*quantity total FROM Customer a,OrderMaster b, OrderDetail c, Product dWHERE a.customerNo=b.customerNo AND b.orderNo=c.orderNo ANDc.productNo=d.productNo AND productName='32M DRAM'ORDER BY a.customerNo查询结果:3、查找与“张小娟”在同一个部门工作的员工姓名、所属部门、性别和出生日期。
SQL语句:SELECT b.employeeName,b.department,CASE b.sexWHEN'M'THEN'男'WHEN'F'THEN'女'ELSE'不详'END sex,CONVERT(CHAR(10),b.birthday,120) birthdayFROM Employee a,Employee bWHERE a.department=b.department AND a.employeeName='张小娟'查询结果:4、查询1973年出生的员工所订购产品的订单,输出结果为员工编号、姓名、所属部门、订单编号、客户名称、订单日期,按员工编号排序编号。
数据库原理实验报告-实验三-数据完整性与安全性控制

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

数据库原理实验报告(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)设计并实现各表之间相关属性的参照关系。
数据库原理实验报告(数据查询)

数据库原理实验报告实验三数据查询班级:×××姓名:×××学号:×××数据查询一、[实验目的]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的查询语句;右下方为结果区,用于显示查询结果和分析结果。
数据库实验报告3

数据库实验报告课程:数据库原理及应用正文:一、实验目的1.理解索引和视图的概念。
2.掌握索引的使用方法。
3.掌握视图的定义和使用方法。
4.理解存储过程的概念,掌握存储过程的使用方法。
5.学习触发器的使用,体会触发器执行的时机,加深对触发器功能和作用的理解。
6.理解SQL Server2000验证用户身份的过程,掌握设置身份验证模式的方法。
7.理解登陆账号的概念,掌握混合认证模式下登陆账号的建立与取消方法。
8.掌握混合认证模式下数据库用户的建立与取消。
9.掌握数据库用户权限的设置方法。
10.理解角色的概念,掌握管理角色技术。
11.学会配制ODBC数据源。
了解使用ODBC来进行数据库应用程序设计,通过ODBC接口访问数据库并对数据库进行操作。
学习在Visual Basic中使用ADO控件访问后台的SQL Server数据库。
二、实验内容1.建立索引。
对JWGL数据库的学生选课表SC建立索引,要求按照Cno升序、Grade降序建立一个名为SC_ind的索引。
USE JWGLIF EXISTS(SELECT name FROM sysindexes WHERE name = 'SC_ind')DROP INDEX SC.SC_ind;GOUSE JWGLCREATE INDEX SC_ind ON SC (Cno,Grade DESC);2.视图的定义和操作,(1)在JWGL数据库里,完成第三章例3.54~例3.61例题中视图的定义和视图上的查询、更新操作。
(2)在Market数据库中,完成第三章习题11中(1)中建立视图的操作,然后在视图上完成第三章习题11(2)的查询操作。
3.在数据库JWGL中,完成第四章例1,例3~7中例题的创建存储过程的操作,并使用EXEC语句调用这些存储过程执行,观察他们的执行结果。
4.在Market数据库中,完成第四章习题5中(1)~(4)创建存储过程的操作。
数据库实验答案

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

数据库运维课程实训报告实验3 数据库安全性与完整性控制实验实训名称:成绩教师评语教师签字日期学生姓名学号一、实训目标练习安全性授权方法、安全性和完整性查看的操作方法。
二、实训内容【实验3-1】使用create user创建用户,创建单个用户teacher,创建两个用户teacher1和student。
【实验3-2】通过直接操作MySQL用户表创建用户,创建单个用户teacher2,创建两个用户teacher3和student2(请注意,新版的MySQL可能不支持使用此方法创建新用户)。
【实验3-3】新建一个terminal窗口,使用mysql –u –h -p方式登录teacher。
【实验3-4】再次新建一个terminal窗口,使用mysql –u –h -p方式登录student。
【实验3-5】使用GRANT语句对用户student赋予所有数据库所有表的insert权限和update权限。
【实验3-6】使用GRANT语句对用户student赋予school数据库所有表的select权限。
【实验3-7】使用GRANT语句对用户student赋予school数据库stuinfo表的create 访问权限。
【实验3-8】使用GRANT语句对用户student赋予school数据库stuinfo表的stuno 列上的select访问权限。
【实验3-9】使用GRANT语句对用户student赋予s所有数据库所有表的select访问权限,并设定student每小时最多可使用select操作访问数据库的次数。
【实验3-10】查看表INFORMATION_ER_PRIVILEGES中有关student的信息,查看user表中的内容信息。
【实验3-11】查看表INFORMATION_SCHEMA.SCHEMA_PRIVILEGES,找到student在school数据库下拥有的权限。
【实验3-12】查看表INFORMATION_SCHEMA.TABLE_PRIVILEGES,查找school数据库中stuinfo数据表相关的表权限。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
2.完成查询要求 完成查询要求: 完成查询要求
李勇同一个系的学生学号和姓名 (1)查询与李勇同一个系的学生学号和姓名。 )查询与李勇同一个系的学生学号和姓名。 号课程, (2)查询选了 号课程,且比该课程平均分高的学生人数。 )查询选了1号课程 且比该课程平均分高的学生人数。 号课程, (3)查询选了 号课程,且比该课程平均分高的学生学号和姓名。 )查询选了1号课程 且比该课程平均分高的学生学号和姓名。 (4)查询计算机系考试成绩最高的学号和姓名。 )查询计算机系考试成绩最高的学号和姓名。 (5)查询选修了全部课程的学生学号和姓名。 )查询选修了全部课程的学生学号和姓名。 (6)查询被全部学生都选修了的课程号和课程名。 )查询被全部学生都选修了的课程号和课程名。 分以上的学生学号和姓名 (7)查询每门课成绩都在 分以上的学生学号和姓名。 )查询每门课成绩都在80分以上的学生学号和姓名。 姓名、 表中。 (8)查询学生的成绩单,包括姓名、课程名、成绩,并把数据保存到 表中。 )查询学生的成绩单,包括姓名 课程名、成绩,并把数据保存到cj表中 女生的并集。 (9)查询男生与年龄小于 女生的并集。 )查询男生与年龄小于20女生的并集 学生的交集。 (10)查询男生与年龄小于 学生的交集。 )查询男生与年龄小于20学生的交集 号课程的学生和选修了2号课程的学生的交集 (11)查询选修了 号课程的学生和选修了 号课程的学生的交集。 )查询选修了1号课程的学生和选修了 号课程的学生的交集。 的学生的差集。 (12)查询计算机系学生与年龄不大于 的学生的差集。 )查询计算机系学生与年龄不大于19的学生的差集
4.完成视图建立要求: 完成视图建立要求: 完成视图建立要求
建立1号课程成绩单的视图,包括学号,姓名,系部,成绩。 建立 号课程成绩单的视图,包括学号,姓名,系部,成绩。 号课程成绩单的视图 然后完成以下操作: 然后完成以下操作: (1)查询视图所有信息。 )查询视图所有信息。 号课程并且成绩>70的学生学号和姓名。 的学生学号和姓名。 (2)查询选修了 号课程并且成绩 )查询选修了1号课程并且成绩 的学生学号和姓名 (3)查询 号课程的平均分。 号课程的平均分。 )查询1号课程的平均分 号课程成绩为98分 (4)修改李勇的 号课程成绩为 分。 )修改李勇的1号课程成绩为 (5)在视图中插入新记录:95003的1号成绩 分。 )在视图中插入新记录: 的 号成绩78分 号成绩 号成绩记录。 (6)删除 )删除95002的1号成绩记录。 的 号成绩记录
insert into sc values('95001','1',92) insert into sc values('Байду номын сангаас5001','2',85) insert into sc values('95001','3',88) insert into sc values('95002','2',90) insert into sc values('95002','3',80)
3.完成数据更新要求: 完成数据更新要求: 完成数据更新要求
表增加一个新学生记录, (1)在student表增加一个新学生记录,数据自拟。 ) 表增加一个新学生记录 数据自拟。 并插入数据。 (2)建立 )建立pjcj表(cno,cname,pjf),并插入数据。 表 ) 并插入数据 (3)修改李勇的年龄为 。 )修改李勇的年龄为22。 号课程的成绩每人增加10分 (4)将1号课程的成绩每人增加 分。 ) 号课程的成绩每人增加 (5)删除先行课为1号课程的课程信息。 )删除先行课为 号课程的课程信息。 号课程的课程信息 号课程的所有选课信息。 (6)删除 号课程的所有选课信息。 )删除1号课程的所有选课信息 (7)删除李勇的所有选课信息。 )删除李勇的所有选课信息。
5. 实验报告 数据库系统概论》实验报告格式: 《数据库系统概论》实验报告格式: 题目: 题目: 姓名: 姓名: 日期: 日期: 实验环境: 实验环境: 实验内容与完成情况: 实验内容与完成情况: 出现的问题和解决方案(列出遇到的问题和解决办法, 出现的问题和解决方案(列出遇到的问题和解决办法, 列出没有解决的问题): 列出没有解决的问题): 6.参考网站: 参考网站: 参考网站
实验三 SQL语句的应用 语句的应用
一、 实验内容及要求
1.在查询分析器中建立学生课程数据库 所包含的表和数据。 在查询分析器中建立学生课程数据库s-c所包含的表和数据 在查询分析器中建立学生课程数据库 所包含的表和数据。
create table student (sno char(9) primary key, sname char(20) unique, ssex char(2), sage smallint, sdept char(20) ); create table course (cno char(4) primary key, canme char(40), cpno char(4), ccredit smallint, foreign key (cpno) references course(cno) ); create table sc (sno char(9), cno char(4), grade smallint, primary key (sno,cno), foreign key (sno) references student(sno), foreign key (cno) references course(cno) ); insert into student values('95001','李勇 男',20,'CS') 李勇','男 李勇 insert into student values('95002','刘晨 女',19,'CS') 刘晨','女 刘晨 insert into student values('95003','王敏 女',18,'MA') 王敏','女 王敏 insert into student values('95004','张立 男',19,'IS') 张立','男 张立 insert into course values('1','数据库 数据库',null,4) 数据库 insert into course values('2','数学 数学',null,2) 数学 insert into course values('3','信息系统 信息系统',null,4) 信息系统 insert into course values('4','操作系统 操作系统',null,3) 操作系统 insert into course values('5','数据结构 数据结构',null,4) 数据结构 insert into course values('6','数据处理 数据处理',null,2) 数据处理 insert into course values('7','PASCAL 语言 语言',null,4) update update update update update course set cpno='5' where cno='1' course set cpno='1' where cno='3' course set cpno='6' where cno='4' course set cpno='7' where cno='5' course set cpno='6' where cno='7'