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

实验三订购数据库(一)数据定义一、基本表操作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 元的职工所在仓库的仓库号。
数据库实验三

计算机与信息学院实验报告系:专业:年级:姓名:学号: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年以前的借阅记录存入临时的超期借阅表。
数据库原理实验报告-实验三-数据完整性与安全性控制

《数据库原理》实验报告题目:实验三数据完整性与安全性控制学号班级日期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的查询语句;右下方为结果区,用于显示查询结果和分析结果。
数据库原理 实验三 数据定义

《数据库原理及应用》上机实验实验三数据定义一、学时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,数据类型为日期型。
实验三 数据库中的数据查询及视图操作实验报告

实验三数据库中的数据查询及视图操作实验报告实验三数据库中的数据查询及视图操作实验报告一、实验目的本实验的主要目的是熟悉数据库中的数据查询和视图操作。
通过本实验,我们可以掌握使用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语句后,我们可以得到每个班级的人数统计结果。
数据库实验报告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)创建存储过程的操作。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
四.上机作业
1.创建如下三个基表:
S (S#,SNAME,AGE,SEX) 对应的中文为: [学生 (学号,姓名,年龄,性别)]
c) 名字大小写是一样的;例如 EMP、emp 和 eMp 是表示同一个表;
d) 名字最长不超过 30 个字符;
e) 表名不能和其它的对象重名;
f) 表名不能是 SQL 保留字。
表 3-1 表名命名举例
名字
合法
EMP85 85EMP FIXED_ASSETS FIXED ASSETS UPDATE
YES NO(开始不是字母)
NOT NULL
NUMBER(4) VARCHAR2(10) VARCHAR2(10) NUMBER(4) DATE NUMBER(7,2) NUMBER(7,2)
DEPTNO
NOT NULL NUMBER(2)
2. 从其他表中抽取属性生成数据表 CREATE TABLE EMP_PART AS SELECT EMPNO,ENAME,JOB,SAL,COMM FROM EMP2;
YES NO(包含空格) NO(SQL 保留字)
2. 属性类型
数据类型 VARCHAR2(w) CHAR(w) NUMBER NUMBER(w) NUMBER(w,s)
INTEGER SMALLINT DATE LONG RAW 和 LONG RAW
表 3-2 属性类型 描述 变长字符长度为 w。最长为 2000 个字符。 定长字符长度为 w。默认为 1 个字符;最长为 255 个字符 38 位有效数字的浮点数 W 位精确度的整数,范围从 1 至 38 W 是精度,或总的数字书,范围从 1 至 38。S 是比例,或是小 数点右边的数字位。比例的范围从-84 至 127 整数类型 短整数类型 日期值,范围从公元前 14712 年 1 月到公元 314712 年 12 月 变长字符串,其最大长度为 2G(或 231-1 个字节) 面向字节数据,可存储字符串、浮点数,二进制数据等
二.预备知识
DDL 是 SQL 命令的子集,用来创建、修改、删除 Oracle 数据库结构。这些命令能立即
影响数据库和数据字典属性信息。
1. 表名命名规则
所用的表名必须满足下面的条件:
a) 名字必须以 A-Z 或 a-z 的字母开始;
b) 名字可以包括字母、数字和特殊字母(_)。字符$和#也是合法的,但是这种用法不提倡;
三.上机内容
1. 创建表 EMP2
CREATE TABLE EMP2
(EMPNO NUMBER(4) NOT NULL,
ENAME VARCHAR2(10),
JOB
VARCHAR2(10),
MGR
NUMBER(4),
HIREDATE DATE,
SAL
NUMBER(7,2),
COMM NUMBER(7,2),
输入命令:DESCRIBE EMP_PART
EMP_Part 生成的数据表结构结果显示如下:
Name
Null?
EMPNO
NOT NULL
ENAME
JOB
SAL
Type NUMBER(4) VARCHAR2(10) VARCHAR2(10) NUMBER(7,2)
COMM
3. DROP 命令删除数据表 DROP TABLE EMP_PART;
3. CREATE TABLE 命令 1)、CREATE TABLE table_name( column_name type(size), column_name type(size), …);
例如:
CREATE TABLE DEPT1
(DEPTNO NUMBER(2),
DNAME VARCHAR2(12),
基于单条记录的,NULL 是允许的。 表约束命令格式: ,[CONSTRAINT constraint_name] UNIQUE (Column, Column, …) 属性约束命令格式:
[CONSTRAINT constraint_name] UNIQUE 例如:
CREATE TABLE DEPT2 (DEPTNO NUMBER, DNAME VARCHAR2(9), LOC VARCHAR2(10), CONSTRAINT UNQ_DEPT_LOC UNIQUE(DNAME,LOC)); UNQ_DEPT_LOC 是一个表约束。
Null? NOT NULL
NOT NULL
5. 用 ALTER 的 MODIFY 命令修改已存在的属性的定义 ALTER TABLE EMP2 MODIFY (ENAME VARCHAR2(12));
输入命令:DESCRIBE EMP2
EMP 生成的数据表结构显示如下:
Name EMPNO ENAME JOB MGR HIREDATE SAL COMM DEPTNO SPOUSES_NAME
属性名称
PROJID P_DESC P_START_DATE P_END_DATE BUDGET_AMOUNT MAX_NO_STAFF
数据类型
NUMBER VARCHAR2 DATE DATE NUMBER NUMBER
长度 4 20
7,2 2
3.生成一个数据表 ASSIGNMENTS,其属性定义如下,其中 PROJID 是外键引自 PROJECTS 数据表,EMPNO 是数据表 EMP 的外键,并且要求 PROJID 和 EMPNO 不能为 NULL。
DEPTNO NUMBER(2) NOT NULL);
用 SQL*PLUS 命令 DESCRIBE 来看生成的 EMP2 表的列明细清单:
输入命令:DESCRIBE EMP2
EMP 生成的数据表结构显示如下:
Name
Null?
Type
EMPNO ENAME JOB MGR HIREDATE SAL COMM
[CONSTRAINT constraint_name] PRIMARY KEY 例如:用属性约束定义 DEPTNO 为主键 CREATE TABLE DEPT3
(DEPTNO NUMBER(2) CONSTRAINT DEPT_PRIM PRIMARY KEY, …);
4)、外键约束 外键提供表内或表间的完整性规则。外键必须依赖于一个 primary 或 unique key。
SC (S#,C#,GRADE) 对应的中文为: [学习(学号,课程号,成绩)]
C(C#,CNAME,TEACHER) 对应的中文为: [课程(课程号,课程名,任课教师)]
注:以后要用到这三个基本表。
2.生 成 一 个 数 据 表 PROJECTS , 其 属 性 定 义 如 下 , 其 中 PROJID 是 主 键 并 且 要 求 P_END_DATE 不能比 P_START_DATE 早。
表约束命令格式: ,[CONSTRAINT constraint_name] FOREIGN KEY (Column, Column, …) REFERENCE
table (column, column, …) 属性约束命令格式: [CONSTRAINT constraint_name] FOREIGN KEY table (column) 例如: CREATE TABLE EMP1 (… CONSTRAINT FK_DEPTNO FOREIGN KEY (DEPTNO) REFERENCE DEPT(DEPTNO));
5)、Check 约束 CHECK 约束定义了每条记录必须满足的条件 语法: [CONSTRAINT constraint_name] CHECK (condition)
6. ALTER TABLE 命令 ALTER TABLE 命令可用来修改数据表的定义。 命令格式: ALTER TABLE tablename [ADD 或 MODIFY 或 DROP options ](column_spec [column_constraint]) [ENABLE clause
4.完整性约束 Oracle 允许用户为表和列定义完整性约束来增强一定的规则。 可分为:表约束和属性约束
5.约束类型 1)、NOT NULL 约束
NOT NULL 约束保证属性值不能为 NULL。没有 NOT NULL 约束的属性,值可以为 NULL。
2)、UNIQUE 约束 指定一个属性或者属性的集合为唯一键。在表中没有两行具有相同的值。如果唯一键是
DROP 关键字可以用来删除已存在数据表的约束。 如:把 EMP 中主键删除 ALTER TABLE EMP1 DROP PRIMARY KEY;
7. DROP TABLE 命令 用 DROP TABLE 命令删除 Oracle 数据表的定义。 命令格式:
DROP TABLE table_name [CASCADE CONSTRAINT] 例如: DROP TABLE EMP1; CASCADE CONSTRAINT 选项说明了也把完整性约束一起删除。 注意: DROP TABLE 也把数据表中的数据删除。 数据表的 VIEWS 和 SYNOMNYMS 保留下来,但它们变成了不合法的。 任何悬而未决的事务将被提交。 只有数据表的生成者或 DBA 才有权删除它。
ห้องสมุดไป่ตู้
3)、主键约束(Primary Key Constraint) 主键约束强制属性和属性集合的唯一性,并且用一个唯一索引来管理它。每个表中只能
用一个主键,这样可以通过主键来标识表中的每条记录。NULL 值不允许在主键属性出现。 表约束命令格式: ,[CONSTRAINT constraint_name] PRIMARY KEY (Column, Column, …) 属性约束命令格式: