数据库实验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 元的职工所在仓库的仓库号。

数据库实验3

数据库实验3

实验三:创建及管理数据表一、实验目的1.熟悉数据表的特点;2.熟悉在Management Stuio中创建、编辑及删除数据表;3.熟悉使用T-SQL创建、编辑及删除数据表;二、实验学时2学时三、实验要求1.了解表的结构特点;2.了解SQL Server的基本数据类型;3.熟悉使用T-SQL语法;4.完成实验报告。

四、实验准备知识创建数据表的命令CREATE TABLE[ database_name . [ schema_name ] . | schema_name . ] table_name( { <column_definition> | <computed_column_definition>| <column_set_definition> }[ <table_constraint> ] [ ,...n ] )FEDERATED ON ( distribution_name = column_name)[ ; ]<column_definition> ::=column_name <data_type>[ COLLATE collation_name ][ NULL | NOT NULL ][[ CONSTRAINT constraint_name ] DEFAULT constant_expression ]| [ IDENTITY [ ( seed ,increment ) ]][ <column_constraint> [ ...n ] ]五、实验内容请分别使用Management Stuio及T-SQL完成以下内容:1.界面方式下创建数据表利用界面方式创建教师授课管理数据库JSSK,并在数据库JSSK中创建下列三张表;表名:teachers表名:lessons表名:shouke2.命令方式下创建数据表1)使用T-SQL语句,在实验二中创建的数据库student中创建模式XSKC。

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

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

《数据库原理》实验报告题目:实验三数据完整性与安全性控制学号班级日期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 数据库 数据操作

选择导入目的对话框
选择源表、目的表
实验3
数据操作
2.在企业管理器中录入数据至数据表T中 在企业管理器中录入数据至数据表T 把左下表中的内容录入数据至表T。
待录入到表 T的数据 待插入表C的数据 语句插入数据至数据表C 3.使用INSERT INTO语句插入数据至数据表C中 使用INSERT INTO语句插入数据至数据表 把右上表中的数据插入课程表C。 在查询分析器中输入下面SQL语句,把表中第一行数据插入表C: 在查询分析器中输入下面SQL语句,把表中第一行数据插入表C: SQL语句 USE jxsk VALUES( C1 C1’, 程序设计 程序设计’, 60 60’) INSERT INTO C VALUES(‘C1 ,‘程序设计 ,‘60 )
格式的S_EXCEL.xls Excel 格式的S_EXCEL.xls 数据文件内容
实验3
【实验步骤】 实验步骤】
数据操作
1.利用导入导出向导把Excel文件S_EXCEL.xls中的数据导入数据表S中 ቤተ መጻሕፍቲ ባይዱ用导入导出向导把Excel文件S_EXCEL.xls中的数据导入数据表S Excel文件S_EXCEL.xls中的数据导入数据表
实验3
数据操作
"TNO" "T1" "T1" "T2" "T3" "T3" "T4" "T4" "T5" "T5"
"CNO" "C1" "C4" "C5" "C1" "C1" "C2" "C3" "C5" "C7"

数据库原理 实验三 数据定义

数据库原理 实验三  数据定义

《数据库原理及应用》上机实验实验三数据定义一、学时2学时二、实验类型设计三、实验目的1.巩固数据库的基础知识;2.熟悉SQL Server2012中常用的数据类型;3.熟悉和掌握利用查询分析器进行数据表的建立、修改和删除的方法;4.利用查询分析器用SQL语言定义索引并进行相关操作。

四、实验准备1.熟悉SQL Server 2012的工作环境;2.复习有关表的建立、修改和删除的SQL语言命令和方法;3.复习有关索引的建立、修改和删除的SQL语言命令和方法。

五、实验方法及步骤1.登陆企业管理器/查询分析器;2.创建数据库或连接已建立的数据库;3.在当前数据库上建立新表,并注意定义表的主码,外码;4.修改表的结构;5.在表上建立索引;6.删除表的定义。

六、实验内容使用企业管理器完成以下操作:1.创建学生课程数据库SCDB,并在SCDB中完成以下操作。

CREATE DATABASE SCDB2.创建附录中的学生关系表student:(学号为主码,姓名要求唯一值,各属性数据类型根据实际情况设置);CREATE TABLE student(sno CHAR(11)PRIMARY KEY,sname VARCHAR(12)UNIQUE,ssex VARCHAR(6),sage INT,sdept VARCHAR(50))3.创建附录中的课程关系表course:(课程号为主码,各属性数据类型根据实际情况设置);CREATE TABLE course(cno CHAR(3)PRIMARY KEY,cname VARCHAR(12),cpo VARCHAR(12),credit INT)4.创建附录中的选课关系表sc:(sno和cno共同作为主码,sno和cno分别为外码,各属性数据类型根据实际情况设置);CREATE TABLE sc(sno CHAR(11)FOREIGN KEY REFERENCES student(sno),cno CHAR(3)FOREIGN KEY REFERENCES course(cno),grade int,PRIMARY KEY (sno,cno))5.在表student上增加“出生日期”属性列sbirth,数据类型为日期型。

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

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

实验三:数据完整性1、实验目的(1)了解SQL Serer数据库系统中数据完整性控制的基本方法(2)熟练掌握常用CREATE 或ALTER 在创建或修改表时设置约束(3)了解触发器的机制和使用(4)验证数据库系统数据完整性控制2、实验平台使用SQL Server数据库管理系统提供的SSMS和查询编辑器。

3 实验内容及要求结合ST数据库中的各个表,设置相关的约束,要求包括主键约束、外键约束、唯一约束、检查约束、非空约束等,掌握各约束的定义方法。

设置一个触发器,实现学生选课总学分的完整性控制,了解触发器的工作机制。

设计一些示例数据,验证完整性检查机制。

要求包括如下方面的内容:3.1 使用SQL语句设置约束使用CREATE或ALTER语句完成如下的操作,包括:1.设置各表的主键约束2.设置相关表的外键3. 设置相关属性的非空约束、默认值约束、唯一约束4. 设置相关属性的CHECK约束3.2 使用触发器创建一个触发器,实现如下的完整性约束:● 当向SC 表中插入一行数据时,自动将学分累加到总学分中。

● 记录修改学分的操作。

3.4 检查约束和触发器分别向相关表插入若干条记录,检查你设置的完整性约束是否有效:1. 插入若干条包含正确数据的记录,检查插入情况2. 分别针对设置的各个约束,插入违反约束的数据,检查操作能否进行 3. 向SC 表插入若干行数据,检查触发器能否实现其数据一致性功能。

4 实验报告要求写出实验的基本过程。

解释操作过程中出现的现象。

SC Student参考示例:建立一个学生选课数据库,熟悉约束及触发器的使用方法。

一、声明完整性约束创建学生选课数据库TEST,包括三个基本表,其中Student表保存学生基本信息,Course 表保存课程信息,SC表保存学生选课信息,其结构如下表:表1. Student表结构表2. Course表结构表3. SC表结构1.创建基本表及约束(1)创建Student表CREATE TABLE Student(Sno CHAR(8)PRIMARY KEY,Sname CHAR(8)NOT NULL,Ssex CHAR(2) CHECK( Ssex in ('男','女')),Sage SMALLINT,Sdept CHAR(20),Sclass CHAR(4)NOT NULL,Stotal smallint DEFAULT 0);●掌握主键约束、非空约束、CHECK约束、默认值的定义格式。

(2)创建Course表CREATE TABLE Course(Cno CHAR(4)CONSTRAINT FK_Course PRIMARY KEY,Cname CHAR(40),Cpno CHAR(4) ,Ccredit SMALLINT);(3)创建SC表CREATE TABLE SC(Sno CHAR(8)FOREIGN KEY (Sno)REFERENCES Student(Sno),Cno CHAR(4),Grade SMALLINT CONSTRAINT SC_CHECK CHECK(Grade>0 AND Grade<100), PRIMARY KEY (Sno,Cno),CONSTRAINT FK_SC FOREIGN KEY (Cno)REFERENCES Course(Cno) );●掌握多个属性的主键约束、外键约束、CHECK约束的定义格式。

●掌握约束的命名方式。

(4)检查表是否创建成功。

2.插入数据将如下表格中的数据分别插入到数据库相应的表中:表4.学生基本信息表表5.课程信息表表6.学生选课信息表(1)插入学生信息到Student表INSERT INTO Student VALUES('20100001','李勇','男',20,'CS','1001',0)INSERT INTO Student VALUES('20100002','刘晨','女',19,'CS','1001',0)请写出插入其余行的插入语句,并插入数据。

(2)插入到课程信息到Course表INSERT INTO Course(Cno,Cname,Cpno,Ccredit)VALUES('1','数据库系统原理','5',4) INSERT INTO Course(Cno,Cname,Cpno,Ccredit)VALUES('2','高等数学',null,2)请写出插入其余行的插入语句,并插入数据。

(3)插入到SC表INSERT INTO SC VALUES('20100001','1',92)INSERT INTO SC VALUES('20100002','2',80)请写出插入其余行的插入语句,并运行。

(4)检查插入到表中的数据3.修改约束对数据库中已经存在的表,可对其增加约束或修改已存在的约束:(1)添加约束ALTER TABLE Course ADD UNIQUE(Cname)ALTER TABLE Course ADD FOREIGN KEY (Cpno)REFERENCES Course(Cno)●掌握如何添加约束●掌握如何声明唯一约束(2)修改约束ALTER TABLE SC DROP CONSTRAINT SC_CHECKALTER TABLE SC ADD CONSTRAINT SC_CHECK CHECK(Grade>=0 AND Grade<=100)●掌握如何修改约束●理解命名约束的优点二、检查完整性约束通过修改数据库中的数据检查完整性约束条件的作用。

1.检查主键约束(1)执行下面的语句修改Student表,观察语句能否正确运行,解释为什么?INSERT INTO Student VALUES('20100101','李斌','男',20,'CS','1001',0)INSERT INTO Student VALUES('20100001','李斌','男',20,'CS','1001',0)UPDATE Student SET Sno='20100021'WHERE Sname='张立'(2)执行下面的语句修改SC表,观察语句能否正确运行,解释为什么?INSERT INTO SC VALUES('20100001','1',78)INSERT INTO SC VALUES('20100001',null,78)2.检查唯一约束执行下面的语句修改Course表,观察语句能否正确运行,解释为什么?INSERT INTO Course VALUES('8','JAVA',7, 3)INSERT INTO Course VALUES('9','数据结构',7, 3)3.检查默认值、允许空值列运行如下的语句:INSERT INTO Student(Sno,Sname,Ssex,Sclass)VALUES('20100102','张盛','男','1008')观察插入数据行的数值SELECT*FROM Student WHere Sno='20100102'4.检查非空约束下面的语句包含空值,检查运行结果,解释为什么?INSERT INTO Student(Sno,Sname,Ssex,Sclass)VALUES('20100103','张盛','男',NULL)INSERT INTO Student(Sno,Sname,Ssex)VALUES('20100104','张盛','男')5.检查CHECK约束执行下面的语句,解释其运行结果。

INSERT INTO SC VALUES('20100001','4',95)INSERT INTO SC VALUES('20100001','4',102)INSERT INTO Student(Sno,Sname,Ssex,Sclass)VALUES('20100103','张盛','男','1008')INSERT INTO Student(Sno,Sname,Ssex,Sclass)VALUES('20100104','张盛','','1008')6.检查外键约束(1)执行下面的语句检查外键约束的作用INSERT INTO SC VALUES('20100301','1',95)INSERT INTO SC VALUES('20100001','10',95)UPDATE SC SET Cno='10'Where Cno='1'UPDATE Course SET Cno='10'Where Cno='3'(2)执行下面的语句检查对被引用表的约束DELETE Student WHERE Sno='20100021'DELETE Student WHERE Sno='20100001'UPDATE Course SET Cno='10'WHERE Cname='数据库系统原理'三、触发器的定义及使用1.定义触发器(1)定义一个触发器,实现有关学分的完整性约束:当向SC表插入一行选课记录时,自动将该课程的学分累加到该学生的总学分中。

CREATE TRIGGER tr_INSERT ON SCFOR INSERTAS--声明变量DECLARE@sno char(8)DECLARE@cridit intDECLARE@cno char(4)--提取插入的数据SELECT@sno=Sno,@cno=Cno FROM inserted--提取学生的总学分SELECT@cridit=CcreditFROM SC join Course ON (o=o)WHERE o=@cno--更新总学分UPDATE Student SET Stotal=Stotal+@criditWHERE Sno=@snoGO(2)定义一个触发器,实现对SC表的操作登记:当用户向SC表插入或修改时,记录该操作到数据库中。

相关文档
最新文档