数据库-实验3

合集下载

大数据库原理-实验3-大数据库地安全系统性

大数据库原理-实验3-大数据库地安全系统性

一、实验目的1.掌握Windows 认证模式下数据库用户的建立与取消方法;2.掌握混合模式下数据库用户的建立与取消方法;3.掌握数据库用户权限的设置方法;4.熟悉数据库数据库用户的权限分配、回收等方法;5.了解数据库角色的分类、作用及使用方法。

二、实验环境SQL Server 企业版三、实验学时2学时三、实验原理:1. Microsoft® SQL Server™可以在两种安全(身份验证)模式:(1)Windows 身份验证模式(Windows 身份验证)Windows 身份验证模式使用户得以通过 Microsoft Windows NT® 4.0 或Windows® 2000 用户进行连接。

(2)混合模式(Windows 身份验证和 SQL Server 身份验证)混合模式使用户得以使用 Windows 身份验证或 SQL Server 身份验证与SQL Server 实例连接。

在 Windows 身份验证模式或混合模式下,通过 Windows NT 4.0 或 Windows 2000 用户连接的用户可以使用信任连接。

2. SQLServer的安全机制(1)服务器级别所包含的安全对象主要有登录名、固定服务器角色等。

其中登录名用于登录数据库服务器,而固定服务器角色用于给登录名赋予相应的服务器权限。

SQL Server 中的登录名主要有两种:第一种是Windows登录名,第二种是SQL Server登录名。

Windows登录名对应Windows验证模式,该验证模式所涉及的账户类型主要有Windows本地用户账户、Windows域用户账户、Windows组。

SQL Server登录名对应SQL Server验证模式,在该验证模式下,能够使用的账户类型主要是SQL Server账户。

(2)数据库级别所包含的安全对象主要有用户、角色、应用程序角色、证书、对称密钥、非对称密钥、程序集、全文目录、DDL事件、架构等。

数据库实验三

数据库实验三

计算机与信息学院实验报告系:专业:年级:姓名:学号: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年以前的借阅记录存入临时的超期借阅表。

数据库实验报告(通用3篇)

数据库实验报告(通用3篇)

数据库实验报告(通用3篇)数据库试验报告篇1一、实训时间:20_年5月13日至5月24日二、实训地点:三、实训目的与意义:1,这次实习可以使我们在课本上学到的学问用于实践增加了我对电脑技巧的一些认知。

2,通过这次实习也可以让我体验到上班族的生活为我将来毕业后找工作打下了基础。

3,并且这次实习可以非常好的关心我完成将来的毕业论文。

四、实训感悟:还依旧记得来的第一天对这里很茫然,不知道实习要做些什么。

然后经过老师的急躁讲解,熟悉了自己实习要做些什么,得到了许多心理熟悉,对许多问题都有了一些更深的了解。

同时,我熟识了河北玛世电子商务有限公司,总部位于国家命名的“中国丝网之乡”、“中国丝网产业基地”、中国丝网产销基地“、”中国丝网出口基地“—河北省安平县。

使我们队公司有了更进一步的了解实习,就是在实践中学习。

经过这半个月的实习训练,我了解到自己所学的如何在实践中运用。

当然学的更多的是如何在更新网站内容和添加商品,每天不厌其烦的更新添加,观察自己的胜利更多的是兴奋。

还有发布了一些关于公司产品的博客,比如新浪,网易。

而后又尝试在百度知道上提问与回答,在回答问题的过程中,通过网站搜寻相关内容来回答各种丝网问题,通过百度知道这个平台,我对公司又了更一步的了解。

经过半个月的实训我学到了许多之前没有学过没有接触到的东西,熟悉到自己的不足,需要更加努力,才能尽快的学会在社会上生活,敢于面对社会的压力,使自己可以在社会上成长进展。

数据库试验报告篇2由于平常接触的都是一些私人项目,这些项目大都是一些类库,其他人的沟通相对可以忽视不计,因此也就不考虑规范化的文档。

实际上从学习的经受来看,我们接触的学问体系都是属于比较老或比较传统的,与现在进展快速的IT行业相比许多状况已不再适用,尤其是当开源模式渐渐走近开发者后更是如此。

虽然这次是一个数据库课程设计,由于本人在选择项目的时候是本着对自己有实际应用价值的角度考虑的,所以其中也涉及到一些数据库以外的设计。

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

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

《数据库原理》实验报告题目:实验三数据完整性与安全性控制学号班级日期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. 掌握使用SQL Server Management Studio创建数据库的方法与步骤2. 掌握创建数据库的SQL 语句3、掌握使用SQL Server Management Studio创建数据表的方法与步骤4、掌握创建数据表的SQL 语句背景知识在SQL Server中,数据库是由数据库文件和事务日志文件组成的。

一个数据库至少应包含一个数据库文件和一个事务日志文件。

数据库文件是存放数据库数据和数据库对象的文件。

一个数据库可以有一个或多个数据库文件,当有多个数据库文件时,有一个文件被定义为主数据库文件,扩展名为.mdf,它用来存储数据库的启动信息和部分或全部数据,一个数据库只能有一个主数据库文件。

其它数据库文件被称为次数据库文件,扩展名为.ndf,它主要用来存储除主数据文件外的所有数据文件。

一个数据库可以没有次数据库文件,但也可以同时拥有多个次数据库文件。

事务日志文件是用来记录数据库更新情况的文件,扩展名为.ldf。

它包含恢复数据库所需的所有日志信息。

每个数据库必须至少有一个日志文件。

文件组是将多个数据库文件集合起来形成的一个整体。

每个文件组有一个组名。

文件组分为主文件组和用户定义文件组。

一个文件只能存在于一个文件组中,一个文件组也只能被一个数据库使用。

注:事务日志文件不属于任何文件组。

二、实验内容与步骤2.1 操作内容:●创建一个名为“testdb”数据库:(1)包含一个数据文件,逻辑文件名“testdb_data”,磁盘文件名‘d:\testdb-data.mdf’,文件初始容量为5MB,最大容量为15MB,文件容量递增值为1MB;(2)包含一个事务日志文件,逻辑文件名为‘d:\testdb_log’, 磁盘文件名“testdb_log.ldf”,文件初始容量为5MB,最大容量为10MB,文件容量递增值为1MB;●对数据库作如下修改:(1)添加一个数据文件,逻辑文件“testdb2_data”,磁盘文件名“d;\testdb2_data.ndf”,文件初始容量为1MB,最大容量为6MB,文件容量递增值为1MB;(2)将事务日志文件的最大容量增加为15MB,递增值改为2MB;在testdb数据库下创建一个members(会员表),表结构如下:表1 表Members(会员表)2.2 实验步骤:方式一:使用SQL Server Management Studio创建和修改数据库1、创建数据库1. 单击“开始”,指向“程序”,指向“Microsoft SQL Server 2005”,然后单击“SQL Serv erManagement Studio”。

数据库原理实验报告(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,数据类型为日期型。

实验三 数据库中的数据查询及视图操作实验报告

实验三  数据库中的数据查询及视图操作实验报告

实验三数据库中的数据查询及视图操作实验报告实验三数据库中的数据查询及视图操作实验报告一、实验目的本实验的主要目的是熟悉数据库中的数据查询和视图操作。

通过本实验,我们可以掌握使用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

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

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

数据库实验三

数据库实验三
【例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-SQL语言之数据查询(简单查询)

数据库实验3-SQL语言之数据查询(简单查询)

实验三SQL数据查询(简单查询)姓名:学号:专业:网络工程班级:20网络工程同组人:无实验日期:【实验目的与要求】1、熟练掌握SELECT 语句的基本语法格式;2、熟练掌握使用SQL语句进行单表查询,掌握GROUP BY子句、HA VING 子句和集函数;3、熟练掌握使用SQL标准语句和T-SQL扩展语句进行连接查询。

【实验内容】3.0. 实验准备与说明本实验将用到实验二中数据库SalesDB和相应的表及数据,若该数据库及表尚未创建,或数据尚未录入,则请先完成之。

请根据前面实验创建的表结构和数据,完成如下查询。

本实验及后面实验中所用测试数据库中表的字段及含义如下表:表-1 测试数据库表的字段及含义3.1.简单查询(1).查询各种产品的产品编号、产品名称和价格。

请给出相应语句:USE SalesDB;SELECT Pno,Pname,Price FROM Product;请给出运行结果:(2).查询所在城市为“厦门”的客户编号和客户名称,结果中各列的标题分别指定为:“客户编号”和“客户名称”显示。

请给出相应语句:SELECT Cno as客户编号,Cname as客户名称FROM Customer WHERE City='厦门';请给出运行结果:(3).查询各产品编号、名称、库存量和产品总值。

(总值:价格与库存数量的积)请给出相应语句:SELECT Pno,Pname,Price ,Stocks FROM Product;SELECT SUM(Price*Stocks)as产品总值FROM Product;请给出运行结果:(4).查询曾购买过产品的客户编号(不重复)。

请给出相应语句:SELECT Cno FROM Customer;请给出运行结果:(5).查询价格在1000-2000的产品信息,并依价格由低到高的顺序排序。

(请使用Between…and和算术比较运算符分别实现)a.使用Between…and比较实现:请给出相应语句:use SalesDB;select*from Productwhere Price between 1000 and 2000order by Price;请给出运行结果:b.使用算术比较实现:请给出相应语句:use SalesDB;select*from Productwhere Price >= 1000 and Price<=2000order by Price;请给出运行结果:(6).查询产品名称含有“热水器”的产品信息。

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

实验三:交互式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

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

实验3数据表的创建与管理实验目的1.掌握SQL Server 2005数据表的类型、数据类型。

2.掌握SQL Server 2005创建数据表的不同方法。

3.使用图形界面和使用SQL语句。

4.掌握数据表结构的查看、修改及删除的操作。

5.掌握数据的完整性,6个完整性约束的应用。

实验内容及步骤一、表的创建1.利用SQL Server管理平台创建表在SQL Server管理平台中,展开指定的服务器和数据库,打开想要创建新表的数据库,右击表对象,并从弹出的快捷菜单中选择“新建表”选项,如图3-1所示。

在图3-1的对话框中,可以对表的结构进行更改,设置主键及字段属性,使用SQL Server管理平台可以非常直观地修改数据库结构和添加数据。

在表中任意行上右击,则弹出一个快捷菜单,如图3-2所示。

图3-1 新建表对话框图3-2 设置字段属性对话框2. 利用create命令创建表使用create命令创建表非常灵活,它允许对表设置几种不同的选项,包括表名、存放位置和列的属性等。

其完整语法形式如下:CREATE TABLE [database_name.[owner].|owner.]table_name({<column_definition>|column_name AS computed_column_expression| <table_constraint>}[,…n])[ON{ filegroup|DEFAULT}][TEXTIMAGE_ON { filegroup|DEFAULT}]<column_definition>::={column_name data_type}[COLLATE <collation_name>][[DEFAULT constant_expression]|[IDENTITY[(seed,increment )[NOT FOR REPLICATION]]]][ROWGUIDCOL][<column_constraint>][...n]例1创建了一个工人信息表,它包括工人编号、姓名、性别、出生日期、职位、工资和备注信息。

SQL语句的程序清单如下:CREATE TABLE worker (number char(8)not null,wname char(8)NOT NULL, --此处不能用namesex char(2)NULL,birthday datetime null,job_title varchar(10)null,salary money null,memo ntext null);3完整性约束约束是SQL Server提供的自动保持数据库完整性的一种方法,它通过限制字段中数据、记录中数据和表之间的数据来保证数据的完整性。

在SQL SERVER 中,对于基本表的约束分为列约束和表约束。

列约束是对某一个特定列的约束,包含在列定义中,直接跟在该列的其他定义之后,用空格分隔,不必指定列名;表约束与列定义相互独立,不包括在列定义中,通常用于对多个列一起进行约束,与列定义用’,’分隔,定义表约束时必须指出要约束的那些列的名称。

完整性约束的基本语法格式为:[CONSTRAINT constraint_name(约束名)] <约束类型>约束不指定名称时,系统会给定一个名称。

在SQL Server 2005中有6种约束:主键约束(primary key constraint)、惟一性约束(unique constraint)、检查约束(check constraint)、默认约束(default constraint)、外部键约束(foreign key constraint)和空值(NULL)约束。

1)主键(PRIMARY KEY)约束PRIMARY KEY约束用于定义基本表的主键,它是惟一确定表中每一条记录的标识符,其值不能为NULL,也不能重复,以此来保证实体的完整性。

PRIMARY KEY与UNIQUE约束类似,通过建立唯一索引来保证基本表在主键列取值的唯一性,但它们之间存在着很大的区别:①在一个基本表中只能定义一个PRIMARY KEY约束,但可定义多个UNIQUE约束;②对于指定为PRIMARY KEY的一个列或多个列的组合,其中任何一个列都不能出现空值,而对于UNIQUE所约束的唯一键,则允许为空。

不能为同一个列或一组列既定义UNIQUE约束,又定义PRIMARY KEY约束。

PRIMARY KEY既可用于列约束,也可用于表约束。

例2 建立一个SC1表,定义SNO,CNO共同组成SC的主键,程序清单如下:CREATE TABLE SC1 (SNO CHAR(5)NOT NULL,CNO CHAR(5)NOT NULL,SCORE NUMERIC(3),CONSTRAINT SC_PRIM PRIMARY KEY(SNO,CNO));2)惟一性约束惟一性约束用于指定一个或者多个列的组合值具有惟一性,以防止在列中输入重复的值。

定义了UNIQUE约束的那些列称为唯一键,系统自动为唯一键建立唯一索引,从而保证了唯一键的唯一性。

当使用惟一性约束时,需要考虑以下几个因素:使用惟一性约束的字段允许为空值;➢一个表中可以允许有多个惟一性约束;➢可以把惟一性约束定义在多个字段上;➢惟一性约束用于强制在指定字段上创建一个惟一性索引;➢默认情况下,创建的索引类型为非聚集索引。

例3创建一个学生信息表,其中name字段具有惟一性。

create table student (sid char(8),sname char(10),sex char(2),constraint pk_id primary key(sid),constraint uk_identity unique(sname));3)检查约束检查约束对输入列或者整个表中的值设置检查条件,以限制输入值,保证数据库数据的完整性。

当使用检查约束时,应该考虑和注意以下几点:➢一个列级检查约束只能与限制的字段有关;一个表级检查约束只能与限制的表中字段有关;➢一个表中可以定义多个检查约束;➢每个CREATE TABLE语句中每个字段只能定义一个检查约束;➢在多个字段上定义检查约束,则必须将检查约束定义为表级约束;➢当执行INSERT语句或者UPDATE语句时,检查约束将验证数据;➢检查约束中不能包含子查询。

例4建立一个SC2表,SCORE 的取值范围为0到100之间。

CREATE TABLE SC2 (SNO CHAR(5),CNO CHAR(5),SCORE NUMERIC(5,1)CONSTRAINT SCORE_CHK CHECK(SCORE>=0 AND SCORE <=100));4)默认(DEFAULT)约束默认约束指定在插入操作中如果没有提供输入值时,则系统自动指定值。

默认约束可以包括常量、函数、不带变元的内建函数或者空值。

使用默认约束时,应该注意以下几点:➢每个字段只能定义一个默认约束;➢如果定义的默认值长于其对应字段的允许长度,那么输入到表中的默认值将被截断;➢不能加入到带有IDENTITY属性或者数据类型为timestamp的字段上;➢如果字段定义为用户定义的数据类型,而且有一个默认绑定到这个数据类型上,则不允许该字段有默认约束。

例5创建SC3表,Dept字段创建默认为计算机。

CREATE TABLE SC3 (SNO CHAR(5)NOT NULL,CNO CHAR(5)NOT NULL,SCORE NUMERIC(3),Dept char(10)constraint con_dept default('计算机'));5) 外部键约束外键(FOREIGN KEY) 是用于建立和加强两个表数据之间的链接的一列或多列。

外部键约束用于强制参照完整性。

当使用外部键约束时,应该考虑以下几个因素:➢外部键约束提供了字段参照完整性;➢外部键从句中的字段数目和每个字段指定的数据类型都必须和REFERENCES从句中的字段相匹配;➢外部键约束不能自动创建索引,需要用户手动创建;➢用户想要修改外部键约束的数据,必须有对外部键约束所参考表的SELECT权限或者REFERENCES权限;➢参考同一表中的字段时,必须只使用REFERENCES子句,不能使用外部键子句;➢主键和外部键的数据类型必须严格匹配例6 建立一个SC4表,定义SNO,CNO为SC的外部键。

CREATE TABLE SC4 (SNO CHAR(5)NOT NULLCONSTRAINT S_FORE FOREIGN KEY REFERENCES S(SNO),CNO CHAR(5)NOT NULLCONSTRAINT C_FORE FOREIGN KEY REFERENCES C(CNO),SCORE NUMERIC(3),CONSTRAINT S_C_PRIM PRIMARY KEY(SNO,CNO));6) 空值(NULL)约束空值(NULL)约束用来控制是否允许该字段的值为NULL。

NULL值不是0也不是空白,更不是填入字符串的“NULL”字符串,而是表示“不知道”、“ 不确定”或“没有数据”的意思。

当某一字段的值一定要输入才有意义的时候,则可以设置为NOT NULL。

如主键列就不允许出现空值,否则就失去了唯一标识一条记录的作用。

空值(NULL)约束只能用于定义列约束。

创建空值(NULL)约束常用的操作方法有如下两种:➢在SQL Server管理平台中添加空值(NULL)约束;➢使用Transact-SQL语句设置空值(NULL)约束。

例7建立一个S表,对SNO字段进行NOT NULL约束。

CREATE TABLE S (SNO CHAR(10)CONSTRAINT S_CONS NOT NULL,SN VARCHAR(20),AGE INT,SEX CHAR(2)DEFAULT('男'),DEPT VARCHAR(20));二、表的修改1.利用Transact-SQL语句修改表向表中添加新的字段:在学生表中添加一个“班级”字段,数据类型为字符型。

ALTER TABLE student add班级char(10)◆删除表中的旧列:将学生表中的“Sdept”字段删除。

ALTER TABLE student DROP column Sdept;◆更改表以添加具有约束的列:给学生表的增加“grade”字段并加上CHECK约束,让其不可以大于100。

ALTER TABLE student ADD grade intConstraint chname check(grade<100);Exec sp_help chname;给学生表中添加“birthday”字段,并且这个日期不能在录入当天的日期之后。

相关文档
最新文档