数据库第三次实验
数据库原理实验报告-实验三-数据完整性与安全性控制
《数据库原理》实验报告题目:实验三数据完整性与安全性控制学号班级日期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 实验内容:1. 检索上海产的零件的工程名称;2. 检索供应工程J1零件P1的供应商号SNO;3. 检索供应工程J1零件为红色的供应商号SNO;4. 检索没有使用天津生产的红色零件的工程号JNO;5. 检索至少用了供应商S1所供应的全部零件的工程号JNO;6. 检索购买了零件P1的工程项目号JNO及数量QTY,并要求对查询的结果按数量QTY降序排列。
1select jnamefrom jwhere jno in(select jnofrom spjwhere sno in(select snofrom swhere city ='上海'));2select snofrom spjwhere jno ='j1'and pno ='p1'3selectdistinct snofrom spjwhere pno in(select pnofrom pwhere color='红'and pno in (select pnofrom spjwhere jno ='j1'));4selectdistinct jnofrom spjwhere pno notin(select pnofrom pwhere color ='红'and pno in (select pnofrom spjwhere sno in(select snofrom swhere city ='天津')))5select jnofrom spjwhere sno ='s1'6select jno,qtyfrom spjwhere pno ='p1'orderby qty desc四﹑思考题1. 如何提高数据查询和连接速度。
建立视图2. 试比较连接查询和嵌套查询有些嵌套查询是可以用连接来代替的,而且使用连接的方式,性能要比嵌套查询高出很多当查询涉及多个关系时,用嵌套查询逐步求解结构层次清楚,易于构造,具有结构化程序设计的优点。
数据库第二、三次实验
机械工业出版社
张建平
计算机应用
20
1003
计算机
电子工业出版社
王敏
数据库技术
15
1004
计算机
电子工业出版社
谭浩强
C 语言
25
1005
英语
中国人民大学出版社
张锦芯
应用文写作
25
1006
管理
高等教育出版社
Robison
管理学
15
1007
管理
机械工业出版社
Fayol
工业管理
70
1008
数学
机械工业出版社
②工程表:工程代码为主码
③零件表:零件代码为主码
④供应零件表:供应商代码、工程代码、零件代码为联合主码;
供应商代码为外码,参照表、列是供应商表的供应商代码列;
工程代码为外码,参照表、列是工程表的工程代码列;
零件代码为外码,参照表、列是零件表的零件代码列
实验数据如下:
供应商:
供应商代码
姓名
所在城市
联系电话
3.熟悉查询分析器的运行环境。
三.实验要求
1.在实验之前做好准备。
2.完成实验,并验收实验结果提交实验报告。
四.实验内容
所有查询都全部用SQL语句实现
1.在数据库EDUC中实现如下查询
1)求学生的总人数。
selectcount(*)'总人数'fromstudent
2)求选修了课程的学生人数。
selectcount(distinctsno)'选修了课程的人数'fromstudent_course
selectstudent.sno,student.sname,scorefromstudent,student_course
数据库原理实验报告(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)设计并实现各表之间相关属性的参照关系。
实验三 数据库中的数据查询及视图操作实验报告
实验三数据库中的数据查询及视图操作实验报告实验三数据库中的数据查询及视图操作实验报告一、实验目的本实验的主要目的是熟悉数据库中的数据查询和视图操作。
通过本实验,我们可以掌握使用SQL语句进行数据查询和创建视图的方法,进一步提高对数据库的操作能力。
二、实验环境本实验使用MySQL数据库管理系统,并在Windows操作系统下进行实验。
三、实验内容本实验主要包括以下内容:1. 数据查询:使用SELECT语句查询数据库中的数据,并进行排序、过滤和聚合操作。
2. 视图操作:创建和删除视图,以及对视图进行查询和更新操作。
四、实验步骤与结果1. 数据查询首先,我们需要连接到数据库,并选择要查询的表。
假设我们选择的表名为"students",包含以下字段:学号、姓名、性别、年龄、班级。
a. 查询所有学生的信息:```sqlSELECT * FROM students;```执行以上SQL语句后,我们可以得到所有学生的信息,包括学号、姓名、性别、年龄和班级。
b. 查询男生的信息:```sqlSELECT * FROM students WHERE 性别 = '男';```执行以上SQL语句后,我们可以得到所有性别为男的学生的信息。
c. 查询年龄小于20岁的学生的姓名和班级:```sqlSELECT 姓名, 班级 FROM students WHERE 年龄 < 20;```执行以上SQL语句后,我们可以得到年龄小于20岁的学生的姓名和班级。
d. 查询学生按照年龄降序排列的结果:```sqlSELECT * FROM students ORDER BY 年龄 DESC;```执行以上SQL语句后,我们可以得到按照年龄降序排列的学生信息。
e. 查询学生按照班级分组,并统计每个班级的人数:```sqlSELECT 班级, COUNT(*) AS 人数 FROM students GROUP BY 班级;```执行以上SQL语句后,我们可以得到每个班级的人数统计结果。
第三次试验——ER图
完成之后的CDM模型(参考)
完成之后的PDM模型(参考)
ቤተ መጻሕፍቲ ባይዱ
最终文件清单:
1:一个后缀名为CDM的文件 2:一个后缀名为PDM的文件 3:一个后缀名为CDB的文件(它是CDM的备份 文件,有的同学可能没有) 4:一个后缀名为PDB的文件(它是PDM的备份 文件,有的同学可能没有) 5:CDM的报告文件report1.rtf,PDM的报告文件 report2.rtf 6:crebas.sql
计算机信息管理基础
第三次实验课——ER图
实验背景: school数据库由如下表格组成,如表A1~ A3(见下页)所示,描述一个学校的学生、 教师、课程关系。
实验要求: a) 用s-designer软件画出该数据库ER图; b) 生成Word文档报告;
实验步骤——建立概念数据模型CDM(Concept Data Model):
实验步骤——生成物理数据模型PDM(Physical Data Model):
5:选择Dictionary——Generate Physical Model——在 DataBase Name下拉菜单中选择一种数据库——点击OK, PDM就建立好了; 6:【选做】为Students表与Courses表之间的Relation表 添加Score属性(表示成绩),为Teachers与Courses表 之间的Relation表添加Time属性(表示上课时间); 7:选择Edit——Add Title为PDM添加版本信息; 8:选择File——Create Report——Full PDM Report—— Save RTF为ER图生成报告文档report1.rtf 9:选择Database——Generate Database——在 Directory栏选择文件保存路径——点击Generate Script
《数据库技术》第三次实验内容
数据库技术实验创建库和表1.在'D:\SQL2000\DataBase\路径下创建数据库xscj,要求:主数据文件逻辑名为xscj_Data,物理名为xscj_Data.MDF,初始大小为10MB,最大允许为300MB,文件以5MB递增。
事务日志文件逻辑名为xscj_Log,物理名为xscj_Log.LDF,初始大小为10MB,最大允许为200MB,文件以2MB递增。
2.创建表参见教材附录A的要求:CREATE TABLE xs()CREATE TABLE kc()CREATE TABLE xs_kc()上面的SQL代码调试正确之后,请将xscj数据库整个删除,再进行下面的操作。
带完整数据的XSCJ数据库的还原:先下载我课件中的homework备份。
点击后找到你下载下来的homework 的备份(我课件中XSCJ数据库的备份)所在的位置然后一直“确定”下去,就可以还原XSCJ 数据库了,下面的操作都在这个数据库上进行。
如果报错,把第二幅图中的选项改为计算机上正确的文件路径即可。
学生成绩数据的简单和复杂查询实验步骤以xscj数据库为例,使用查询分析器完成以下的查询语句:(1) 查询xs表中的所有学生的信息以及仅查询学生姓名。
(2) 查询出XS表中的前10个或前面10%的学生信息。
(3) 查询总学分<50的所有学生的学号,姓名,专业名。
(4) 将XS_KC表中的学生学号,课程号及成绩输出,其中成绩按70%的分数显示,并且将成绩列名改为‘考试所占分数’。
(5) 查询XS表中的学生相关信息,并以学生姓名,所学专业,出生时间作为列名。
(6) 查询XS_KC表,显示学生成绩在80到89之间的学生选课信息。
(7) 从KC表中找出学时大于60的课程信息,并按照升序和降序显示。
(8) 找出姓王的所有学生。
(9) 查询总学分大于50的所有学生的姓名,性别,专业和选修课程号和成绩(10)查询计算机专业的学分大于50的学生的姓名及所选课程名和成绩。
数据库的实验心得体会
数据库的实验心得体会引言数据库是计算机科学中非常重要的一个概念,它用于存储和管理大量的数据。
作为一名学习数据库的学生,我在课程中进行了一系列的实验,通过实践掌握了数据库的基本概念、SQL语言以及数据库设计等知识。
在本文中,我将分享我在数据库实验中的心得体会。
实验内容与要点在数据库的实验中,我学习了以下内容:1.数据库的基本概念:包括数据库的定义、特点以及数据库管理系统的作用和功能;2.SQL语言:学习了SQL的基本语法和常用操作,如创建表、插入、查询、更新和删除数据等;3.数据库设计:了解了数据库设计的基本原则和规范,学习了实体-关系模型(ERM)和关系模型(RM)的相关知识;4.数据库管理系统(DBMS):熟悉了市场上常见的DBMS软件,如MySQL、Oracle、SQL Server等。
实验过程与方法实验一:数据库的创建与连接在第一次实验中,我学习了如何创建一个数据库,并且通过连接到数据库来进行操作。
我选择了使用MySQL作为DBMS软件。
下面是我学到的一些重要的实验要点:•创建数据库:使用CREATE DATABASE语句来创建数据库,如下所示:CREATE DATABASE DatabaseName;•连接数据库:使用USE语句来连接到数据库,如下所示:USE DatabaseName;实验二:SQL语句的基本操作在第二次实验中,我学习了SQL语句的基本操作,包括创建表、插入数据以及查询数据等。
下面是我学到的一些重要的实验要点:•创建表:使用CREATE TABLE语句来创建表,如下所示:CREATE TABLE TableName (Column1 DataType,Column2 DataType,...);•插入数据:使用INSERT INTO语句来向表中插入数据,如下所示:INSERT INTO TableName (Column1, Column2, ...)VALUES (Value1, Value2, ...);•查询数据:使用SELECT语句来检索数据,如下所示:SELECT Column1, Column2, ...FROM TableNameWHERE Condition;实验三:数据库设计在第三次实验中,我学习了数据库设计的基本原则和规范。
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表的“课程编号”列,使之为非空。
数据库第三次实验报告
《数据库系统概论》实验报告姓名班级学号日期题目:实验 3:视图操作和安陈鑫100111062011302526 2013-10-23全性控制一实验内容及步骤结果:(1)在 Student 数据库中,利用图形用户界面,创建一个选修了数据库课程并且是1986 年出生的学生的视图,视图中包括学号,性别,成绩这三个信息。
运行结果:(2) 用两种不同的SQL语句创建课本128 页第 11 题中要求的视图(视图名: V_SPJ)1第一种方法:create view v_spjasselect sno , pno , qtyfrom spj, jwherespj . jno= j . jnoand j . jname=' 三建'2第二种方法:create view v_spjasselect sno , pno , qtyfrom spjwhere jno in( select jnofrom jwhere j . jname =' 三建 ' ).(3)用 SQL语句完成课本 128 页第 11 题中对视图 V_SPJ的查询第一问:select *from v_spj第二问:select pno , qtyfrom v_spjwhere sno = 'S1' ;.(4) 用 T-SQL 语句操作视图的数据。
(15 分,每题 5 分)1给视图 V_SPJ中增加一条数据 ( 基本表中有插入的数据即可 ) 。
insert into v_spj ( sno , pno , qty )values ( 'S6' , 'P6' , 600 );2修改视图 V_SPJ中的任意一条数据的供应数量。
update v_spjset sno ='s1'where qty = 400 ;3删除视图 V_SPJ中的任意一条数据。
deletefrom v_spjwhere qty = 200(5) 在图形用户界面中创建新登录名以及用户。
数据库实验三
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”不能用等号(=)代替。
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)查询每个同学的总成绩。
数据库课程实验报告_实验三_熟悉PowerBuilder开发环境
实验三熟悉PowerBuilder开发环境
一.目的与要求
1.初步了解PowerBuilder开发环境,学习使用PowerBuilder开发环境中的常用工具。
2.阅读、理解并按教材P330-335中介绍的内容和本实验书要求进行实际操作。
3.重点练习并掌握使用PowerBuilde数据库环境创建数据库、创建基本表和操作数据库的基本步骤和方法。
二.实验步骤
1.创建学生数据库STUDENT,连接数据源STUDENT
3.利用数据库画板创建以下3个表:
学生情况表:S(SNO,SNAME,SEX,AGE,SDEPT)
课程情况表:C(CNO,CNAME,CDEPT,TNAME)
选课表:SC(SNO,CNO,GRADE)
2.设置各个表的主键以及各表之间的外键
5. 向各表输入数据
6. 使用PowerBuilder提供的查询工具(Query)进行如下操作,实现对表中数据的检索
①检索“王小明”老师所受课程号和课程名
②检索计算机软件专业的全体女生的学好、姓名
③检索至少选修“王小明”老师所受课程中一门课程的女学生姓名
④检索至少选修两门课程的学生学号
⑤求选修C2课程的学生的平均成绩
⑥求“王小明”老师所授课程的每门课程的学生平均成绩
⑦检索姓“刘”的所有计算机应用专业学生的姓名和年龄
⑧在SC中检索成绩为空植的学生学号和课程号
上机体会
通过第三次上机,我对POWERBUILDER的基本界面和使用方法有了初步了解。
特别是创建数据库、表和修改表,让我把课本知识和时间有机地结合起来。
让我对数据库的学习又产生了新的动力。
数据库实验三-实验九含参考答案
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答案
实验三:交互式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表结构列名称用途类型长度约束备注Sno 学号字符8 主键Sname 姓名字符8Ssex 性别字符 2Sage 年龄整型Sdept 所在系字符20Sclass 班级字符 4表2. Course表结构列名称用途类型长度约束备注Cno 课程号字符 4 主键Cname 课程名字符40Cpno 先修课程号字符 4Ccredit 学分整型表3. SC表结构列名称用途类型长度约束备注Sno 学号字符8 外键Cno 课程号字符 4Grade 成绩整型1.创建、修改及删除基本表(1)创建Student表CREATE TABLE Student(Sno CHAR(8)PRIMARY KEY,Sname CHAR(8),Ssex CHAR(2)NOT NULL,Sage INT,Sdept CHAR(20));(2)创建Course表CREATE TABLE Course(Cno CHAR(4)PRIMARY KEY,Cname CHAR(40)NOT NULL,Cpno CHAR(4),Ccredit SMALLINT,);(3)创建SC表CREATE TABLE SC(Sno CHAR(8)FOREIGN KEY (Sno)REFERENCES Student(Sno),Cno CHAR(4),Grade SMALLINT,);(4)创建员工表EmployeeCREATE TABLE Employee(编号CHAR(8)PRIMARY KEY,姓名VARCHAR(8)not null部门CHR(40),工资numeric(8,2),生日datetime,职称char(20),);指出该语句中的错误并改正后执行。
数据库实验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:视图、事务与游标1.定义一个视图,包括购买者的姓名、所在州和他们所订购玩具的名称、价格和数量。
视图定义:CREATE VIEW vwOrderWrapperASSELECT cOrderNo, cToyId, siQty, vDescription, mWrapperRate FROM OrderDetail JOIN WrapperON OrderDetail.cWrapperId = Wrapper.cWrapperId2.基于(1)中定义的视图,查询显示所有California州的购买者的姓名和他们所订购玩具的名称及数量。
UPDATE vwOrderWrapperSET siQty = 2, mWrapperRate = mWrapperRate + 1WHERE cOrderNo = ‘000001’3.名为prcGenOrder的存储过程产生存在于数据库中的定单号:CREATE PROCEDURE prcGenOrder@OrderNo char(6) OUTPUTasSELECT @OrderNo=Max(cOrderNo) FROM OrdersSELECT @OrderNo=CASEWHEN @OrderNo>=0 and @OrderNo<9 Then‘00000’+Convert(char,@OrderNo+1)WHEN @OrderNo>=9 and @OrderNo<99 Then‘0000’+Convert(char,@OrderNo+1)WHEN @OrderNo>=99 and @OrderNo<999 Then‘000’+Convert(char,@OrderNo+1)WHEN @OrderNo>=999 and @OrderNo<9999 Then‘00’+Convert(char,@OrderNo+1)WHEN @OrderNo>=9999 and @OrderNo<99999 Then‘0’+Convert(char,@OrderNo+1)WHEN @OrderNo>=99999 Then Convert(char,@OrderNo+1)ENDRETURN当购物者确认定单时,应该出现下面的步骤:(1)用上面的过程产生定单号。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
南昌航空大学实验报告
2018年5月30日
课程名称:数据库原理实验名称:数据库安全性
学号: 16206127 姓名:周良
指导教师评定:签名:
一,实验目的
○1熟悉不同数据库中的保护措施——安全性控制,重点实践SQL SEVER
的安全性机制,掌握SQL Sever中有关用户、角色及操作权限等的管理方法。
二,实验内容
1,SQL Server的安全模式
(1)利用T-SQL添加SQL Sever账号。
(2)利用T-SQL修改SQL Sever登陆账号属性。
(3)利用T-SQL删除SQL Sever登陆账号。
2,管理数据库用户
(1)利用T-SQL添加SQL Sever用户。
(2)利用T-SQL删除SQL Sever用户。
3,管理数据库角色
(1)利用T-SQL删除用户自定义角色,可以使用系统存储过程sp_droprole删除用户自定义角色。
4,权限管理
(1)利用T-SQL管理权限
○1语句授权。
○2对象授权。
○3收回授权。
三,实验步骤
exec sp_addlogin'qh','qh','jxgl','english'
四,exec sp_password'qh','qhqxzsly','qh'
五,
六,alter login qh with password='123456'
七,
八,exec sp_droplogin qh
九,
十,drop login qh
十一,
十二,use jxgl
十三,exec sp_grantdbaccess'DESKTOP-7M8SQ9T','qh'
十四,exec sp_revokedbaccess qh
十五,
十六,use jxgl;
十七,exec sp_addrole'newrole'
十八,exec sp_addrolemember'newrole','qh'
十九,
二十,exec sp_droprole'newrole'
二十一,
二十二,use master
二十三,grant create database to qh
二十四,
二十五,
二十六,grant create table,create view to qh
二十七,
二十八,grant select on s to qh,qxz,sly
二十九,
三十,grant insert,delete on s to shen
三十一,
三十二,grant update on s(age,dept)to shen
三十三,
三十四,grant execute on sp_ins_s to shen
三十五,
三十六,revoke create table,create view form sly
三十七,
三十八,revoke select on s from qxz ,sly
四,实验心得
通过此次实验我了解了SQL Sever中有关用户、角色及操作权限等的管理方法,同时也更加注重数据库安全性方面的问题,我们创建的每一个数据库都应该考虑安全性问题,应该为数据库创建一些必要的角色,同时也要管理数据库的权限方面,防止数据向外流失,或者被黑客盗用。