数据库实验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)解答

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)实验三数据表的创建与管理实验

数据库原理实验报告(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

数据库实验报告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 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数据表相关的表权限。

15春数据库实验3 视图操作(4学时)

15春数据库实验3 视图操作(4学时)

实验三视图操作(4学时)【实验目的】1. 学会使用SQL语句创建和使用视图,加深对视图和SQL Server基表作用的理解。

2. 了解数据库安全控制的机制,以及自主存取控制方法。

【实验要求】1.掌握创建、修改视图的SQL语句的用法。

2.掌握使用企业管管理器创建、修改视图的方法。

3.掌握查看视图的系统存储过程的用法。

4.掌握视图的使用方法。

5.掌握SQL有关用户、角色及操作权限的管理方法。

【实验内容】(一)定义视图以Student 、SC、Course表为基础完成以下视图定义。

1.定义计算机系学生基本情况视图V_Computer。

2.将Student、Course 和SC表中学生的学号,姓名,课程号,课程名,成绩定义为视图V_S_C_G。

3.将各系学生人数,平均年龄定义为视图V_NUM_A VG。

4.定义一个反映学生出生年份的视图V_YEAR。

5.将各位学生选修课程的门数及平均成绩定义为视图V_A VG_S_G。

6.将各门课程的选修人数及平均成绩定义为视图V_A VG_C_G。

(二)使用视图1. 查询以上所建的视图结果。

2. 查询平均成绩为90分以上的学生学号、姓名和成绩。

3. 查询各课成绩均大于平均成绩的学生学号、姓名、课程和成绩。

4. 按系统计各系平均成绩在80分以上的人数,结果按降序排列。

(三)修改视图1. 通过视图V_Computer,分别将学号为“04261001”和“04261002”的学生姓名更改为“S1_MM”,”S2_MM” 并查询结果。

2. 通过视图V_Computer,新增加一个学生记录 ('S12','YAN XI',19,'IS'),并查询结果。

3. 通过视图V_Computer,新增加一个学生记录 ('S13','YAN XI',19,'MA'),并查询结果。

4. 通过视图V_Computer,删除学号为“S12”和“S13”的学生信息,并查询结果。

SQL数据库实验报告 实验三

SQL数据库实验报告 实验三

实验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表的“课程编号”列,使之为非空。

SQL数据库实验三_简单查询(1)解答

SQL数据库实验三_简单查询(1)解答
查询结果:
16.在订单数据库中,根据员工的薪水进行分类显示。(薪水小于2000元的,显示“低收入者”,大于等于2000元小于4000元的,显示“中等收入者”,大于等于4000元的,显示“高收入者”。
SQL语句:
SELECTemployeeNo,employeeName,salary,薪水级别=
CASE
FROMEmployee
WHEREyear(hireDate)=1991
查询结果:
其他:
selectemployeeNo,employeeName,sex,telephone=isnull(telephone,'不详'),
birthday=convert(char(10),birthday,120),year(getdate())-year(birthday)asage
fromEmployee
wheredepartment<>'业务科'anddepartment<>'财务科'
12.查询1991年被雇佣的职工号、姓名、性别、电话号码、出生日期以及年龄,如果电话号码为空,显示“不详”,出生日期按yyyy-mm-dd显示。
SQL语句:
SELECTemployeeNo,employeeName,sex,isnull(telephone,'不详')telephone,CONVERT(CHAR(10),birthday,120)birthday,year(getdate())-year(birthday)age
FROMEmployee
WHEREdepartment='业务科'ordepartment='财务科'

数据库实验三

数据库实验三
【例4.16】查询单价在50—100之间的物资名称、数量及其 单价
SELECT mat_name, amount, unit FROM stock WHERE unit BETWEEN 50 AND 100 等价
SELECT mat_name, amount, unit FROM stock WHERE unit>=50 AND unit<=100
%代表任意长度(长度可以为0)的字符串
_代表任意单个字符
【例4.20】查询存放在供电局1#仓库的物资的详细情况 SELECT * FROM stock WHERE warehouse LIKE ‘供电局1#仓库’ 等价于 SELECT * FROM stock WHERE warehouse=‘供电局1#仓库’
一、单表查询
单表查询是指仅涉及一张表的查询。 1、选择表中的若干列 选择表中的全部列或部分列,这就是关系代数的投影运算。 1)查询指定的列:在很多情况下,用户只对表中一部分属性列
感兴趣,这时可以通过在SELECT子句的<目标列表达式>中指定 要查询的属性列。 【例4.8】查询所有配电物资的物资编号、物资名称、规格 SELECT mat_num, mat_name, speci FROM stock;
请按照课本第62页的语法,演练【例4.22】、【例 4.23】、【例4.24】
(5) 涉及空值的查询
空值(NULL)在数据库中有特殊含义,它表示不确定的值。 判断取值为空的语句格式为:列名 IS NULL 判断取值不为空的语句格式为:列名 IS NOT NULL 【例4.25】 查询无库存单价的物资编号及其名称 SELECT mat_num, mat_name FROM stock WHERE unit IS NULL 注意: 这里的“IS”不能用等号(=)代替。

实验3 数据库完整性

实验3 数据库完整性

实验3 数据库完整性目录实验1.1 实体完整性 (1)实验1.2参照完整性 (1)实验1.3 触发器的应用 (1)实验1.1 实体完整性1)在数据库School中建立表Stu_Union,进行主键约束,在没有违反实体完整性的前提下插入并更新一条记录2)演示违反实体完整性的插入操作3)演示违反实体完整性的更新操作实验1.2参照完整性1)为演示参照完整性,建立表Course,令cno为其主键,并在Stu_Union中插入数据。

为下面的实验步骤做预先准备。

2)建立表sc,另sno和cno分别为参照Stu_Union表以及Course表的外键,设定为级连删除,并令(sno, cno)为其主键。

在不违反参照完整性的前提下,插入数据。

3)演示违反参照完整性的插入数据4)在Stu_Union中删除数据,演示级连删除。

5)Course中删除数据,演示级连删除。

6)为了演示多重级连删除,建立Stu_Card表,令stu_id为参照Stu_Union表的外键,令card_id 为其主键,并插入数据。

7)为了演示多重级连删除,建立ICBC_Card表,令stu_card_id为参照Stu_Card表的外键,令bank_id为其主键,并插入数据。

8)通过删除students表中的一条记录,演示三个表的多重级连删除。

实验1.3 触发器的应用重要提示:在做以下练习前,先删除sc对stu_union的外键引用1)在表sc中演示触发器的insert操作,当学生成绩低于60分时,自动改为60,并在事先创建的记录表中插入一条学生成绩低于60的记录。

提示:另外创建一个表记录成绩低于60分的学生的真实记录。

2)在表stu_union中创建行级触发器,触发事件是UPDATE。

当更新表stu_union的Sid时,同时更新sc中的选课记录。

提示:这个触发器的作用实际上相当于具有CASCADE参数的外键引用。

3)在表stu_union中删除一学生的学号(演示触发器的delete 操作),使他在sc中关的信息同时被删除。

数据库实验3答案

数据库实验3答案

实验三:交互式SQL语句的使用1、实验目的(1)掌握数据库对象的操作过程,包括创建、修改、删除(2)熟悉表的各种操作,包括插入、修改、删除、查询(3)熟练掌握常用SQL语句的基本语法2、实验平台使用SQL Server提供的Microsoft SQL Server Management Studio工具,交互式使用SQL语句。

3实验容及要求选择如下一个应用背景之一:●学生选课系统●习题3、4、和5中使用的数据库●其它你熟悉的应用(1)建立一个数据库和相关的表、索引、视图等数据库对象,练习对表、索引和视图的各种操作。

(2)要求认真进行实验,记录各实验用例及执行结果。

(3)深入了解各个操作的功能。

实验要求包括如下方面的容:3.1数据定义1.基本表的创建、修改及删除2.索引的创建3.视图的创建3.2数据操作完成各类更新操作包括:1.插入数据2.修改数据3. 删除数据3.3数据查询操作完成各类查询操作1.单表查询2.分组统计3. 连接查询4. 嵌套查询5. 集合查询3.4数据操作1.创建视图2.视图查询参考示例:建立一个学生选课数据库,练习对表、视图和索引等数据库对象的各种操作。

一、数据定义创建学生选课数据库ST,包括三个基本表,其中Student表保存学生基本信息,Course表保存课程信息,SC表保存学生选课信息,其结构如下表:表1. Student表结构表2. Course表结构表3. SC表结构1.创建、修改及删除基本表(1)创建Student表CREATETABLE Student(Sno CHAR(8)PRIMARYKEY,Sname CHAR(8),Ssex CHAR(2)NOTNULL,Sage INT,Sdept CHAR(20));(2)创建Course表CREATETABLE Course(o CHAR(4)PRIMARYKEY,ame CHAR(40)NOTNULL,Cpno CHAR(4),Ccredit SMALLINT,);(3)创建SC表CREATETABLE SC(Sno CHAR(8)FOREIGNKEY (Sno)REFERENCES Student(Sno), o CHAR(4),Grade SMALLINT,);(4)创建员工表EmployeeCREATETABLE Employee(编号CHAR(8)PRIMARYKEY,VARCHAR(8)notnull部门CHR(40),工资numeric(8,2),生日datetime,职称char(20),);指出该语句中的错误并改正后执行。

mysql-数据库-实验三

mysql-数据库-实验三

实验三SQL简单查询
一、实验目的:
1. 掌握SQL查询语句的一般格式
2. 掌握简单数据查询操作。

3. 熟练掌握各种查询条件的表示。

4. 掌握排序和分组操作在SQL语句中的实现。

5. 掌握聚集函数的使用。

二、实验内容和主要步骤:
1. 实验一中的数据为基础
2. 对各表中的数据进行不同条件的查询;
1)查询全体学生的学号和姓名
2)查询全体学生的详细记录
3)查询所有选修过课程的学生学号
4)查询考试有不及格的学生学号
5)查询不是信息系(IS)、计算机系(CS)的学生性别、年龄、系别
6)查询选修了4号课的学生学号和成绩,结果按成绩降序排列
7)查询每个课程号和相应的选课人数
8)查询计算机系(CS)的学生姓名、年龄、系别
9)查询年龄18-20岁的学生学号、姓名、系别、年龄;
10)查询姓刘的学生情况
11)查询学生的姓名和出生年份(今年2003年)
12)查询没有成绩的学生学号和课程号
13)查询总成绩大于200分的学生学号
14)查询每门课程不及格学生人数
15)查询不及格课程超过3门的学生学号
16)查询年龄在10到19岁之间的学生信息
17)查询全体学生情况,按所在系升序排列,同一个系的学生按年龄降序排列
18)查询选了1号课程的学生平均成绩
19)查询选了3号课程的学生的最高分
20)查询每个同学的总成绩。

数据库实验三-实验九含参考答案

数据库实验三-实验九含参考答案
例 3-15:(匹配查询) 求选修课程 1 或 3,成绩在 80 至 90 之间,学号为 200215xxx 的学生的学号、 课程号和成绩。 select Sno,Cno,Grade from SC where Cno in('1','3')and Grade Between 80 and 90 and Sno like'200215%'
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:(组函数) 求学生总人数。

数据库原理第三次实验

数据库原理第三次实验

实验三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 数据库安全性与完整性控制实验

实验内容及结果:授权创建用户”S学号u1”,S学号u2,S学号u3,S学号U4,并为其赋予connect角色。

其中,学号是指你的学号,比如你的学号为20130001,则你创建的用户应该是S2*******u1,S2*******u2,S2*******u3,S2*******u4create user s2016214220u1 identified by nefu1234;create user s2016214220u2 identified by nefu1234;create user s2016214220u3 identified by nefu1234;create user s2016214220u4 identified by nefu1234;假设你的用户名是S2*******(做实验时请根据你的账号修改),把你在数据库中创建的Student表的查询权限授给用户”S学号u1”,”S学号u1”执行相应的查询。

grant selecton s2016214220.studentto s2016214220u1(1)查询S2*******用户的Student表中全体学生的详细记录select * from student(2)查询S2*******用户Student表中所有姓刘的学生的姓名、学号和性别。

select sno,sname,ssex from s2016214220.student where sname like '刘%';(3)查询S2*******用户Student表中名字中第二字为“阳”字的学生的姓名和学号。

select sname,sno from s2016214220. studentwhere sname like '_阳%';把S2*******用户的Student表和Course表的全部权限授予用户”S学号u2”,”S学号u3”;然后让”S学号u2”用户修改S2*******的数据。

数据库实验3

数据库实验3

宁波工程学院数据库理论与技术课程实验报告学院:电子与信息工程学院专业:计算机科学与技术年级:实验时间:组名:组长:组员姓名:指导教师签字:成绩:实验三、SQL-数据查询语言一、实验目的和要求1、实验目的:深入理解连接查询和嵌套查询的语句格式、执行过程,掌握它们的使用方法;理解数据更新语言INSERT、UPDATE、DELETE语句的格式和作用,掌握它们的使用方法和应用范围;理解视图的概念,掌握其定义方法和应用方法。

2、实验要求:在每次实验前,学生必须根据实验指导书设计出实验方案(程序和实验步骤);在实验过程中要求独立进行程序调试和排错,学会使用在线帮助来解决实验中遇到的问题,同时运用理论的知识来分析问题和解决问题,记录下实验过程和结果。

上机结束后写出实验报告,并对实验过程进行分析和总结。

二、实验内容与步骤1、在SQL SERVER 2005上附加数据库jxgl和ReadBook。

2、在jxgl中完成下列查询jxgl数据库中表及表中字段说明:Students(sno, sname,class,ssex,bday,bplace,mgrade,photo,sfzh,zxf)该表是学生基本信息表其中:sno-学号,sname-姓名,class-班级,ssex-性别,bday-出生日期,bplace-籍贯,mgrade-入学成绩,photo-照片,sfzh-身份证号码,zxf-总学分Course(cno,cname,cpno,credit)该表是课程情况表其中:cno-课程号,cname-课程名称,cpno-先修课程号,credit—学分SC(term,sno,cno,grade,point)该表是学生选课成绩表其中:term-学期,sno-学号,cno-课程号,grade-成绩,point-绩点TC(term,class,cno,tno,period)该表是教师上课情况表其中:list—序号,term-学期;class-班级;cno-课程号;tno-教师编号;period-学时Teachers (tno,tname,ps,wday,dept,pay,marry,resume)该表是教师基本情况表:其中t no-教师编号;tname-教师姓名;ps-职称;wday-入校日期;dept-系别;pay-工资;marry-婚否;resume-简历(1)查询选修课程学生的学号、姓名、所选课程号、课程名称以及所取得的成绩(2)查询每一门课程及其先修课程,查询结果中显示课程号、课程名和先修课程名(3)查询和“刘涛”在一个班级的学生的信息思考:该查询可用几种方法实现?(4)查询选修了…计算机基础‟课的学生的学号、姓名(分别用连接查询和嵌套查询的方法实现)(5)查询没有选修课程的学生的信息(6)查询其他班中比“03计算应用1”所有学生入学成绩高的学生的姓名和入学成绩(用两种方法实现)(7)查询每个学生超过该门课程平均成绩的学号(8)查询至少选修了“0311102”学生所选全部课程的学生的学号(9)查询既选修了“计算机基础”又选修了“C语言基础”的学生的学号3、在jxgl中完成下列数据更新(1)向course表添加一个新的元组。

数据库实验《实验3》

数据库实验《实验3》
altertablecoursedropconstraintCK_credit
8.
createruleprof_rule
as@pro=('助教'|'讲师'|'副教授'|'教授')
execsp_bindrule'prof_rule','teacher.pro'
9.
createdefaultEmail_defaultas'无'
2.
altertableteach_classaddforeignkey(teacherno)referencesteacher(teacherno)
altertableteach_classaddforeignkey(classno)referencesclass(classno)
altertableteach_classaddforeignkey(courseno)referencescourse(courseno)
8.利用Transact-SQL语句为teaching数据库创建规则prof_rule,规定教师职称取值只能为“助教”,“讲师”,“副教授”和“教授”,并将其绑定到teacher表的prof列上。
9.利用Transact-SQL语句为teaching数据库创建默认值对象Email_default,规定电子邮箱地址默认为“无”,并将其绑定到student表的Email列上。
实验名称
实验3
实验地点
8-318
实验类型
设计
实验学时
1
实验日期
2018.6.12
★撰写注意:版面格式已设置好(不得更改),填入内容即可。
一、实验目的
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 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'
相关文档
最新文档