数据库实验《实验3》

合集下载

数据库实验三

数据库实验三

实验三订购数据库(一)数据定义一、基本表操作1.建立基本表1)创建仓库表,由以下属性组成:仓库号(CHAR 型),城市(CHAR 型),面积(INT 型)。

其中仓库号为主码,并且有面积>0 的限定条件2)创建职工表,由以下属性组成:仓库号(CHAR型),职工号(CHAR型),工资(INT型)。

其中职工号为主码,仓库号为外码,工资的限定条件为1000<=工资<=5000。

3)创建供应商表,由以下属性组成:供应商号(CHAR型),供应商名(CHAR型),地址(CHAR 型)。

其中供应商号为主码。

4)创建订购单表,由以下属性组成:职工号(CHAR型),供应商号(CHAR型),订购单号(CHAR 型),订购日期(CHAR型)。

其中订购单号为主码,职工号和供应商号为外码。

2.修改基本表1)往订购单表中增加一个新的属性“完成日期”,DATETIME型,并且允许为空值。

2)将职工表中的工资属性类型改为SMALLINT 型。

3)删除刚才在订购单表中加入的“完成日期”属性。

二、索引操作1.建立索引1)在订购单表上建立关于供应商号的普通索引supidx。

2)在订购单表的多个字段建立索引sup_empidx,先按照供应商号升序索引,然后按照职工号升序索引。

2.删除索引1)删除订购单表上的索引supidx。

2)删除订购单表上的索引sup_empidx。

(二)数据操作一、插入数据1)向仓库表插入下列数据:WH1,北京,370WH2,上海,500WH3,广州,200WH4,武汉,4002)向职工表插入下列数据:WH2,E1,1220WH4,E2,1270WH1,E3,1210WH2,E4,1250WH3,E5,1200WH3,E6,1230WH1,E7,12503)向供应商表插入下列数据: S1,利民电子元件厂,上海S2,联华电子公司,武汉S3,振华电子厂,西安S4,华通电子公司,北京S5,607 厂,郑州S7,爱华电子厂,北京4)向订购单表插入下列数据: E3,S7,OR67,20020623E1,S4,OR73,20020728E7,S4,OR76,20020525E6,NULL,OR77,NULLE3,S5,OR79,20020613E1,NULL,OR80,NULLE3,NULL,OR90,NULLE3,S3,OR91,20020713二、查询操作1.单表查询1)查询工资多于1210 元的职工所在仓库的仓库号。

数据库实验三

数据库实验三

数据库实验三《数据查询与操作》实验一、实验目的与要求1、掌握多表查询:嵌套查询的使用。

2、掌握INSERT、UPDATE和DELETE语句的一般格式与使用方法。

3、掌握视图的创建和删除、视图的NSERT、UPDATE和DELETE 的应用二、实验平台1、操作系统:Windows XP或Windows 20032、数据库管理系统:SQL Server 2005三、实验内容实验前,先附加“教务管理系统”,在“教务管理系统”的数据库中进行一下查询:嵌套查询1、在“教务管理系统”数据库中,根据相关表的内容,查询平均成绩大于70的课程信息select课程名称from课程信息where课程编号in(select课程编号from选课表group by课程编号having avg(成绩)>70)2、从“教务管理系统”数据库中,查询人数超过45人所在班级中的学生的学号、姓名和班级名称。

select学号,姓名,b.班级编号,班级名称from学生信息x,班级信息bwhere x.班级编号= b.班级编号and x.班级编号in(select班级编号from班级信息where人数>45)3、在“教务管理系统”数据库中,查询学生姓名为“朱文娟”所在班级的学生信息,要求返回学生的学号、姓名、性别、班级编号、班级名称和年级信息select学号,姓名,性别,x.年级,b.班级编号,班级名称from学生信息x,班级信息bwhere x.班级编号= b.班级编号and x.班级编号=(select班级编号from学生信息where姓名='朱文娟')4、在“教务管理系统”数据库中,查询出所有非计算机系的学生信息,并显示出这些学生的考试成绩,再按成绩进行降序排列显示,要求返回学生的学号、姓名、班级编号、课程编号和成绩信息。

select学生信息.学号,姓名,班级编号,课程编号,成绩from学生信息left join选课表on学生信息.学号=选课表.学号where学生信息.班级编号<>(select班级编号from班级信息where班级名称 LIKE '计算机%')数据更新(一)添加教务信息1、在2003年级中创建一个新班级,编号为20031340000200、班级名称为“环境与科学”、班级人数为60、班主任为“张浩”。

数据库原理实验报告-实验三-数据完整性与安全性控制

数据库原理实验报告-实验三-数据完整性与安全性控制

《数据库原理》实验报告题目:实验三数据完整性与安全性控制学号班级日期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)设计并实现各表之间相关属性的参照关系。

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

数据库实验3

数据库实验3

实验名称:数据库的查询实验一、实验目的和要求(1)掌握SQL Server查询分析器的使用方法,加深对SQL和Transact-SQL语言的查询语句的理解。

(2)熟练掌握简单表的数据查询、数据排序和数据连接查询的操作方法。

(3)熟练掌握数据查询中的分组、统计、计算和组合的操作方法。

二、实验内容和原理1. P74第5题2. 用Transact-SQL语句表示下列操作.在学生-课程库中实现其数据查询操作:(1)求数学系学生的学号和姓名。

(2)求选修了高等数学的学生学号、姓名和成绩。

(3)求选修C1课程的学生学号和成绩,并要求对查询结果按成绩降序排列,如果成绩相同则按学号升序排列。

(4)求选修课程C1且成绩在80~90分之间的学生学号、姓名及成绩,并将成绩乘以系数0.8输出。

(5)求数学系或计算机系姓张的学生的信息。

(6)求缺少了成绩的学生的学号和课程号。

(7)求C1课程的成绩高于张三的学生学号和成绩。

(8)求其他系中比计算机系学生年龄都小的学生。

(9)查询选修了全部课程的学生的姓名。

(10)求至少选修了学生“张三”所选修的全部课程的学生学号和姓名。

(11)查询每一门课的间接先行课(即先行课的先行课)。

三、实验环境硬件:计算机软件:Windows 2000和SQL Server 2000四、算法描述及实验步骤1.P74第五题(1)求供应工程j1零件的供应商号码sno;在查询分析器的命令窗口中输入:select distinct snofrom spjwhere jno='j1'(2)求供应工程j1零件p1的供应商号码sno;在查询分析器的命令窗口中输入:select distinct snofrom spjwhere jno='j1' and pno='p1'(3) 求供应工程j1零件为红色的供应商号码sno;在查询分析器的命令窗口中输入:select distinct snofrom spj,pwhere jno='j1' and spj.pno=p.pno and color='红'(4)求没有使用天津供应商生产的红色零件的工程号jno;在查询分析器的命令窗口中输入:select distinct j.jnofrom spj,s,p,jwhere j.jnonot in(select distinct j.jnofrom spj,s,p,jwhere spj.pno=p.pno and spj.sno=s.sno and spj.jno=j.jno and s.city='天津' and color='红' )(5)求至少用了供应商s1所供应的全部零件的工程号jno。

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答案

数据库实验3答案

实验3答案1.略2.利用T-SQL语句创建和管理以下索引:1)对course表的cname列创建非聚集索引idx_cname;CREATE INDEX idx_cnameON course(cname)2)对sc表的sno和cno列创建复合索引idx_sno_cno;Create Index idx_sno_cnoon sc(sno,cno)3)利用系统存储过程sp_helpidex查看索引idx_cname信息;Exec sp_helpindex crouse4)删除索引idx_cname。

DROP INDEX idx_cname3.示例:使用T-SQL 语句向course和SC表中插入如下记录:INSERT INTO course VALUES('01','数据库','05',4)4.使用T-SQL 语句查看数据表信息1)查看数据表Student所有记录Select*from student2)查看数据表Student中字段sno、sname的所有记录Select sno,sname from student3)按照“院系、学号、姓名、性别、年龄”的顺序显示学生信息表中前10个同学记录,要求在结果集中列标题按照上述内容显示;select top 10 sdept as院系,sno as学号,sname as姓名,ssex as性别, sage as年龄from student4)按照“院系,学号,姓名,年龄”的顺序显示院系不明的所有学生记录;select sdept as院系,sno as学号,sname as姓名,sage as年龄from studentwhere sdept IS NULL5)显示学号最后一位为1或者2或者3的学生的学号、姓名、性别年龄及院系;select sno,sname,ssex,sage,sdept from studentwhere sno like'%[123]'6)显示没有先行课的课程号及课程名;select cno,cnamefrom coursewhere cpno IS NULL7)查询所有院系不是CS、IS的男同学信息。

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

数据库实验三-实验九含参考答案
例 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

数据库实验报告3数据库实验报告3引言:数据库是现代信息管理的关键工具之一,它能够高效地存储和管理大量的数据。

在数据库的设计和实验中,我们需要掌握各种操作和技巧,以便更好地利用数据库来满足实际需求。

本篇实验报告将介绍数据库实验的第三次实验内容和结果,以及我在实验过程中遇到的问题和解决方法。

实验目的:本次实验的主要目的是学习和掌握数据库的索引和视图的创建和使用。

索引和视图是数据库中非常重要的组成部分,能够提高查询效率和数据管理的灵活性。

通过本次实验,我将深入了解索引和视图的原理和应用,并能够熟练地创建和使用它们。

实验内容:本次实验主要包括索引的创建和使用,以及视图的创建和使用两个部分。

在索引的创建和使用部分,我首先学习了索引的原理和分类,了解了索引在数据库中的作用和优势。

然后,我通过实际操作在数据库中创建了几个索引,并进行了查询测试,比较了有索引和无索引的查询效率差异。

结果显示,有索引的查询速度更快,能够大大提高查询效率。

在视图的创建和使用部分,我学习了视图的定义和使用方法,了解了视图在数据库中的应用场景。

我通过实际操作创建了几个视图,并进行了查询测试,验证了视图的灵活性和便利性。

实验结果:通过本次实验,我成功地创建了多个索引和视图,并进行了相应的查询测试。

实验结果显示,有索引的查询速度明显快于无索引的查询,证明了索引在提高查询效率方面的重要作用。

另外,我也发现了视图在数据管理中的灵活性,通过创建视图,我可以方便地对数据库中的数据进行筛选和组合,满足不同的查询需求。

实验问题及解决方法:在实验过程中,我遇到了一些问题,但通过查阅文献和请教老师,我成功地解决了这些问题。

首先,我在创建索引时遇到了命名冲突的问题,通过为每个索引指定唯一的名称,我成功地解决了这个问题。

其次,我在创建视图时遇到了语法错误的问题,通过仔细检查语法和参考示例,我找到了错误并进行了修改。

最后,我在查询测试中遇到了性能问题,通过优化查询语句和调整索引,我成功地提高了查询的性能。

国开电大《数据库运维实验》实验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》
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)。
altertablecoursedropconstraintCK_credit
8.
createruleprof_rule
as@pro=('助教'|'讲师'|'副教授'|'教授')
execsp_bindrule'prof_rule','teacher.pro'
9.
createdefaultEmail_defaultas'无'
4.利用Transact-SQL语句为teaching数据库中course表的cname列和period列的组合创建UNIQUE约束,规定相同学时课程名的唯一性。
5.利用SQL Server Management Studio为teaching数据库中student表的birthday列创建CHECK约束,规定学生的年龄在17-25岁之间。
2.利用Transact-SQL语句将数据库teaching中score表中的studentno列设置为引用表student的外键。将teach_class表中的teacherno、classno和courseno列分别设置为引用表teacher、class和course的外键。
3.利用SQL Server Management Studio为teaching数据库中class表的classname创建UNIQUE约束。
6.利用Transact-SQL语句为teaching数据库中course表的credit列创建CHECK约束,规定学分的取值范围为1-6.
7.利用Transact-SQL语句删除teaching数据库中的约束UQ_classname、UQ_course、CK_student_birthday和CK_credit。
3.
altertableclassaddUNIQUE(classname)
4.
altertablecourseaddUNIQUE(cname,period)
5.
altertablestudentaddcheck((year(Getdate())-year(birthday))between17and25)
execsp_bindefault'Email_default','student.Email'
dropruleprof_rule
dropdefaultEmail_default
execsp_unbindrule'teacher.pro'
10.
dropruleprof_rule
execsp_unbindefault'student.Email'
2.
altertableteach_classaddforeignkey(teacherno)referencesteacher(th_classaddforeignkey(classno)referencesclass(classno)
altertableteach_classaddforeignkey(courseno)referencescourse(courseno)
实验名称
实验3
实验地点
8-318
实验类型
设计
实验学时
1
实验日期
2018.6.12
★撰写注意:版面格式已设置好(不得更改),填入内容即可。
一、实验目的
1.掌握系统数据类型的特点和功能。
2.掌握创建、修改表结构的方法。
3.掌握插入、更新和删除表数据的方法。
二、实验内容
1.利用SQL Server Management Studio将teaching数据库中的score表的courseno列设置为引用表course的外键。
dropdefaultEmail_default
useAccess
8.利用Transact-SQL语句为teaching数据库创建规则prof_rule,规定教师职称取值只能为“助教”,“讲师”,“副教授”和“教授”,并将其绑定到teacher表的prof列上。
9.利用Transact-SQL语句为teaching数据库创建默认值对象Email_default,规定电子邮箱地址默认为“无”,并将其绑定到student表的Email列上。
10.利用Transact-SQL语句删除teaching数据库中的规则Prof_rule和student表的Email列的默认值对象Email_default。。
三、实验环境
1.操作系统:Windows XP
2.开发软件:SQL Server 2008
四、提交文档
提交本实验报告(电子版),文件名命名:学号 姓名《实验X:XXXXXXX》.doc
教师将批阅后(有分数)的全体学生实验报告刻入一张光盘存档,保证光盘可读。
五、附:源代码
1.
altertablescoreaddforeignkey(courseno)referencescourse(courseno)
altertablescoreaddforeignkey(studentno)referencesstudent(studentno)
6.
altertablecourseaddcheck(credit>1andcredit<6)
7.
altertableclassdropconstraintUQ_classname
altertablecoursedropconstraintUQ_course
altertablestudentdropconstraintCK_student_birthday
相关文档
最新文档