数据库和表数据库表的基本操作和表级约束约束条件-实验报告
- 格式:doc
- 大小:1.13 MB
- 文档页数:15
数据库系统概论实验指导(第七版)计算机学院2013/09改版履历目录目录 (3)1.实验概要 (4)1.1.实验说明 (4)1.2.实验环境和配置 (4)1.3.上机要求 (5)2.实验1:数据库/表的基本操作和表级约束 (5)2.1.目的和要求 (5)2.2.实验准备 (5)2.3.实验内容 (5)3.实验2:库级约束和基本表的数据操作 (8)3.1.目的和要求 (8)3.2.实验准备 (8)3.3.实验内容 (8)4.实验3:视图操作和安全性控制 (10)4.1.目的和要求 (10)4.2.实验准备 (10)4.3.实验内容 (10)5.实验4:存储过程/触发器/ODBC数据库编程 (12)5.1.目的与要求 (12)5.2.实验准备 (12)5.3.实验内容 (12)6.实验5:数据库综合实验 (14)6.1.目的与要求 (14)6.2.实验准备 (14)6.3.实验内容 (15)5.3.1.题目一:零件交易中心管理系统 (15)5.3.2.题目二:图书管理系统 (15)5.3.3.题目三:民航订票管理系统 (15)5.3.4.题目四:学生学籍管理系统 (16)5.3.5.题目五:车站售票管理系统 (16)5.3.6.题目六:企业人事管理系统 (16)5.3.7.题目七:电话交费管理系统 (16)5.3.8.题目八:医药销售管理系统 (17)7.附录:实验报告格式 (18)1.实验概要1.1.实验说明内容:本课程实验分5次完成,每次完成一部分。
具体内容参考本指导的后半部分。
成绩:每次实验100分,最后取5次实验的加权平均分作为实验的总成绩,其中第五次实验占40%,其余各次占15%。
每次实验中各个环节的评分标准如下:上述每一项按照百分制给出分值,最后按照比率计算每次实验的最终成绩。
实验报告每次实验需提交电子版的实验报告(最后一次实验需提交设计文档,源程序等相关资料)。
每次实验结束时,将写好的实验报告,提交给各班辅导老师。
表之间的约束关系随着现代信息化技术的飞速发展,数据库的应用越来越广泛。
在一个数据库中,有多个表,表与表之间存在着各种约束关系。
这些约束关系是数据库设计中必不可少的一部分,它们帮助我们保证数据的正确性和完整性。
本文将从以下几个方面来介绍表之间的约束关系。
一、主外键约束主外键约束是表之间常见的一种约束关系,它可以保证数据在不同表之间的一致性。
具体来说,如果表A中某个字段是作为主键,而此字段在表B中作为外键与表A中定义的主键相互关联,那么表B中的数据必须与表A的数据保持一致。
这种关系通常被称为“父子”关系,其中表A是“父表”,表B是“子表”。
如果试图向表B中插入一条与表A 中定义的主键不匹配的记录,就会导致插入失败,并返回错误提示信息。
二、唯一约束唯一约束是一种保证数据唯一性的约束关系。
在一个表中,可以对某些字段进行唯一性约束,这样就可以避免在插入或更新记录时出现重复数据。
如果试图向一个已经存在相同值的唯一字段中插入数据,就会报错。
值得注意的是,一个表可以有多个唯一约束。
三、检查约束检查约束是一种声明式的约束,可以为一个表中某些字段设置一些限制条件。
例如,可以定义一个检查约束,使得一个表中的某个字段只允许存储特定的数值范围。
如果试图在插入或更新记录时违反了这个限制条件,就会返回错误提示信息。
四、默认约束默认约束是一种设置字段默认值的约束关系。
如果在插入记录时没有给字段赋值,就会使用默认值代替。
也可以在更新记录时使用默认值。
默认值可以是一个数字、一个字符串、一个日期或其他类型的值。
五、级联操作级联操作是指在父表和子表之间进行删除或更新操作时,一起进行的相关操作。
级联删除可以在删除父表中的一个记录时自动删除子表中相关的记录。
级联更新可以在更新父表中的一个记录时自动更新子表中相关的记录。
需要注意的是,级联操作应该谨慎使用,以免误操作导致数据的不一致性。
六、触发器触发器是在特定事件发生时自动执行的一些操作。
在数据库中,触发器常常用于实现复杂的限制约束和业务逻辑。
数据库实验报告姓名学号目录一.实验标题:2二.实验目的:2三.实验内容:2四.上机软件:3五.实验步骤:3(一)SQL Server 2016简介3(二)创建数据库 4(三)创建数据库表 7(四)添加数据17六.分析与讨论: 19一.实验标题:创建数据库和数据表二.实验目的:1.理解数据库、数据表、约束等相关概念;2.掌握创建数据库的T-SQL命令;3.掌握创建和修改数据表的T-SQL命令;4.掌握创建数据表中约束的T-SQL命令和方法;5.掌握向数据表中添加数据的T-SQL命令和方法三.实验内容:1.打开“我的电脑”或“资源管理器”,在磁盘空间以自己的姓名或学号建立文件夹;2.在SQL Server Management Studio中,使用create database命令建立“学生-选课”数据库,数据库文件存储在步骤1建立的文件夹下,数据库文件名称自由定义;3.在建立的“学生-选课”数据库中建立学生、课程和选课三张表,其结构及约束条件如表所示,要求为属性选择合适的数据长度;4.添加具体数据;四.上机软件:SQL Server 2016五.实验步骤:(一)SQL Server 2016简介1.SQL Server 2016的界面2.启动和退出SQL Server 20161)双击图标,即出现SQL Server2016的初始界2)选择“文件”菜单中的“退出”命令,或单击控制按钮中的“×”即可注意事项:1.在退出SQL Server 2016之前,应先将已经打开的数据库进行保存,2.如果没有执行保存命令,系统会自动出现保存提示框,根据需要选择相应的操作(二)创建数据库方法一:1.点击“新建查询”,出现如下对话框2.在空白区域输入创建数据库“学生选课”的代码命令,点击“执行”3.消息框中出现“命令已成功完成”即表示数据库创建成功,在“对象资源管理器”中,右击“数据库”,打开快捷菜单,选择“刷新”命令,在“数据库”向下会出现新创建的数据库“学生选课”方法二:1.右击数据库,在弹出的快捷菜单中选择“新建”2.在弹出的对话框中输入“学生选课”3. 在“对象资源管理器”中,右击“数据库”,打开快捷菜单,选择“刷新”命令,在“数据库”向下会出现新创建的数据库“学生选课”注意事项:数据库名称在服务器中必须唯一,并且符合标识符的规则(三)创建数据库表1.左键点击“学生选课”数据库,再点击“新建查询”,在出现的空白对话框中输入如图代码后点击“执行”,消息框中出现“命令已成功执行”即成功建立好学生、课程、选课三张表2.建立成功后的表格如图所示注意事项:1.T-SQL中创建数据库表的指令格式为:Create table 表名(字段名1 数据类型{identify | not null | null},字段名2 数据类型{identify | not null | null},……)null表示该字段的值可以为控制,空值意味着没有任何存储数据,这是默认参数,当所定义的字段允许空值时,参数null可以忽略not null表示该字段的值不能为空值identify称为计数器,表示该字段的值是一组递增的证书数据。
实验五约束默认和规则1、约束在数据库中的应用(1)用系统存储过程sp_helpconstraint查看student表的约束。
(2)在新建查询中输入插入一个学生信息的命令:insert into student(SNO,Sname,Sex,ClsNO,StuAddr,Birthday,Height)values('19920101','王军','男','CS01','下关#','1976.12.21',1.76),观察其结果。
修改SNO的值,将其值修改为’19000001’,其他的值保持不变,再插入一次,观察其结果。
(3)修改studeng表,使用Check约束,使性别列只能接受“男”或“女”,以强制执行域数据完整性。
重做(1),观察其结果。
(4)禁止student表中的sex列上的约束:alter table student nocheck constraint ck_student(5)删除约束:alter table student drop constraint ck_xsqk。
重做(1)。
(6)利用关系图,建立student表与course表与grade表的主外键约束。
2、默认的应用(1)创建默认对象:default_birthday,默认值为’1982-1-1’。
CREATE DEFAULT default_birthday AS ‘1982-01-01’(2)利用系统存储过程sp_bindefault将default_birthday绑定到student表的Birthday列上。
(3)利用系统存储过程sp_unbindefault解除student表的Birthday列上的默认值绑定。
(4)删除默认值:DROP DEFAULT default_birthday(5)定义一个默认值为4的Default_Value,并将它绑定到course表的Credit列上,绑定后给course插入数据行,观察默认值的设置情况,使用完毕后,解除并删除绑定。
实验三、四 创建表及输入数据及完整性约束本实验需要4学时。
一、实验目的要求学生熟练掌握和使用Transact-SQL、SQL Server企业管理器创建表、索引和修改表结构,并学会使用SQL Server 查询分析器接收Transact-SQL语句和进行结果分析。
学生熟练掌握使用 SQL、Transact-SQL和SQL Server企业管理器向数据库输入数据、修改数据和删除数据的操作。
二、实验内容1 创建表、确定表的主码和约束条件。
为主码建索引。
2 查看和修改表结构。
3 输入数据、修改数据和删除数据三、实验步骤(1)通过企业管理器,在建好的图书借阅数据库中建立图书、读者和借阅3个表,其结构为;图书(书号,类别,出版社,作者,书名,定价,作者).读者(编号,姓名,单位,性别,电话).借阅(书号,读者编号,借阅日期)要求为属性选择合适的数据类型,定义每个表的主码.是否允许空值和默认值等列级数据约束。
(2)在企业管理器中建立图书、读者和借阅3个表的表级约束.每个表的主码约束.借阅表与图书表间、借阅表与读者表之间的外码约束,要求按语义先确定外码约束表达式.再通过操作予以实现.实现借阅表的书号和读者编号的惟一性约束:实现读者性别只能是“男”或“女”的Check(检查)约束。
(3)通过企业管理器,在图书借阅数据库的图书、读者和借阅3个表中各输入10条记录。
要求记录不仅满足数据约束要求.还要有表间关联的记录。
(4)通过企业管理器实现对图书借阅数据库的图书、读者和借阅3个表中数据的插入。
删除和修改操作。
(5)通过企业管理器实现对学生选课库的数据增加、数据删除和数据修改操作、要求学生、课程和选课表中各有10条以上的记录。
四、实验方法1 新建表在 SQL Serve 2000的数据库中,文件夹是按数据库对象的类型建立的.文件夹名是该数据库对象名。
当在企业管理器中选择服务器和数据库文件夹,并打开已定义好的图书.读者数据库后,会发现它自动设置了关系图、表、视图、存储过程、用户、角色、规则、默认等文件夹。
南京信息工程大学实验(实习)报告实验(实习)名称数据库和表的创建与管理实验(实习)日期得分指导教师系计算机专业计算机科学与技术年级班次姓名学号一、实验目的1.熟悉S QL Server 2005 中S QL Server Management Studio 的环境。
2.了解S QL Server 2005 数据库的逻辑结构和物理结构。
3.掌握使用向导创建和删除数据库的方法。
4.掌握使用S QL 语句创建和删除数据库。
5.了解表的结构特点,了解SQL Server 的基本数据类型,管理器创建表,会用T-SQL语句创建表。
6.管理器中修改表的定义,使用SQL语句修改表的定义。
二、实验内容内容一:使用向导创建和删除数据库。
内容二:使用SQL 语句创建和删除数据库。
内容三:用向导和SQL 语句创建和删除表。
‘内容四:修改数据库基本表的定义。
三、实验步骤内容一:设有一学籍管理系统,其数据库名为“EDUC”,初始大小为10MB,最大为50MB,数据库自动增长,增长方式是按5%比例增长;日志文件初始为2MB,最大可增长到5MB,按1MB 增长。
数据库的逻辑文件名为“student_data”, 物理文件名为“student_data.mdf,存放路径为“E:\sql_data”。
日志文件的逻辑文件名为“student_log”, 物理文件名为“student_log.ldf”,存放路径为“E:\sql_data”。
(1)使用向导创建上诉描述的数据库。
1.建立数据库2.修改数据库名,数据库逻辑名,初始大小,增长方式等(2)使用向导删除上面建立的数据库。
1.删除数据库:内容二:1.以下是创建数据库userdb1 的SQL 语句,Create database userdb1On((name='userdb4_data',/*数据文件的逻辑名称,注意不能与日志逻辑同名*/filename='d:\sql_data\userdb4.mdf' ,/*物理名称,注意路径必须存在*/size=5,/*数据初始长度为M*/maxsize=10,/*最大长度为M*/filegrowth=1)/*数据文件每次增长M*/log on(( name=userdb4_log,filename='d:\sql_data\userdb4.ldf ' ,size=2,maxsize=5,filegrowth=1)Goa.选“视图”-“模板资源管理器”-Database-create database,双击databaseb.编写上述代码:2.根据步骤1 的sql 语句,写出创建实验二中数据库EDUC 的sql 语句,并建立数据库EDUC.3.用SQL 语句删除步骤一建立的数据库userdb1。
实验1 数据库设计实验名称:数据库设计实验内容:以所在学校选课和课程管理为实际应用背景,设计一个教学管理数据库。
假设至少包含以下需求:学生信息管理;课程信息管理;教师信息管理;学生选修课程及成绩信息管理;教师负责课程和讲授课程信息管理。
实验目的:通过实践,掌握本章介绍的数据库设计方法。
学会使用PowerDesigner来完成数据库设计过程。
实验方法:(1)根据实验内容明确要完成的系统功能。
(2)运行PowerDesigner创建概念数据模型转换成逻辑数据模型,建立实体、属性和联系。
对关键字、空值、域完整性等做出必要的描述,根据实际情况确定联系的类型。
(3)将检查无误的概念数据类型转换成逻辑数据模型,并对生成的逻辑数据模型作必要的修改。
(4)选择一个实际的DBMS软件根据逻辑数据模型生成物理数据模型,并对生成的物理数据模型作必要的修改。
实验要求:使用PowerDesiger或其他建模工具完成本实验。
建立满足需求的概念数据模型,逻辑数据模型和物理数据模型。
提交实验报告(含完整的设计文档)。
实验过程、源程序、运行结果及简单分析:概念数据模型学生姓名学号班级性别学院<pi>Characters (10)Characters (20)Characters (20)Characters (4)Characters (10)<M>学号...<pi>教师教师编号姓名性别<pi>Characters (20)Characters (20)Characters (10)<M>教师编号...<pi>课程课程名称课程编号学时学分<pi>Characters (20)Characters (10)Characters (10)Characters (10)<M>课程编号...<pi>逻辑数据授课学生姓名学号班级性别学院<pi>Characters (10)Characters (20)Characters (20)Characters (4)Characters (10)<M>学号...<pi>教师教师编号姓名性别<pi>Characters (20)Characters (20)Characters (10)<M>教师编号...<pi>课程课程名称课程编号教师编号学时学分<pi><fi>Characters (20)Characters (10)Characters (20)Characters (10)Characters (10)<M>课程编号...<pi>选课课程编号姓名成绩<pi,fi2><pi,fi1>Characters (10)Characters (10)<Undefined><M><M>Identifier_1...<pi>授课教师编号课程编号<pi,fi2><pi,fi1>Characters (20)Characters (10)<M><M>Identifier_1...<pi>物理数据模型学生姓名学号班级性别学院...char(10)char(20)char(20)char(4)char(10)<pk>教师教师编号姓名性别char(20)char(20)char(10)<pk>课程课程名称课程编号教师编号学时学分...char(20)char(10)char(20)char(10)char(10)<pk><fk>选课课程编号姓名成绩char(10)char(10)character<pk,fk1><pk,fk2>授课教师编号课程编号char(20)char(10)<pk,fk1><pk,fk2>总结:经过对这个实验的制作,信息比较多,做表格有点复杂,涉及的框架知识多,对关键字、空值、域完整性做的描述基本熟练。
数据库中数据完整性与约束的设计与实现数据完整性是指数据库中的数据符合定义好的规则和约束,保证数据的正确性、有效性和一致性。
数据完整性和数据约束是数据库设计和实现过程中非常重要的部分,能够确保数据的质量和可靠性。
在本文中,我们将探讨数据库中数据完整性的设计与实现,并介绍数据库约束的各种类型和用法。
在数据库设计中,我们可以通过以下几种方式来保证数据的完整性:1. 实体完整性:实体完整性是指每张表中的每一行数据都必须唯一存在,不能出现重复数据。
为了保证实体完整性,我们可以在数据库设计中设置主键约束。
主键是对表中每一行数据进行唯一标识的一列或一组列。
通过将主键设置为唯一且非空,我们可以确保表中的每一行数据都是唯一的。
2. 参照完整性:参照完整性是指确保数据库中的外键与它所引用的主键保持一致性。
外键是一张表中对另一张表中主键的引用。
通过参照完整性约束,我们可以限制外键引用主键的行为,防止数据引用错误或引用不存在的数据。
参照完整性可以通过设置外键约束来实现。
3. 域完整性:域完整性是指对数据库中的列设置约束,保证数据按照预期的规则进行插入。
常见的域完整性约束包括:唯一约束、非空约束、默认值约束、检查约束等。
唯一约束要求列中的数据不能重复;非空约束要求列中的数据不能为NULL;默认值约束在未指定值的情况下给予一个默认值;检查约束要求满足指定的条件。
4. 用户定义完整性:用户定义完整性是指用户通过触发器或存储过程来实现的一些额外约束条件。
触发器是一种特殊的存储过程,当满足某些条件时会自动触发执行。
用户可以根据业务需求,在特定操作前后编写触发器,用来实现自定义的数据约束。
了解了如何设计和实现数据完整性,接下来我们将介绍数据库约束的各种类型和用法:1. 主键约束(Primary Key):主键约束是对表中的一个或多个列设置唯一非空的约束。
主键通过确保表中每一行数据的唯一性来标识数据记录。
在设计数据库表时,我们应该为每个表选择一个合适的主键,并在创建表时设置主键约束。
一、实训目的本次数据库系统实训旨在通过实际操作,使学生掌握数据库的基本概念、设计方法、实现技术以及数据库系统的维护与管理,提高学生的数据库应用能力。
通过本次实训,学生能够:1. 理解数据库的基本概念和原理;2. 掌握数据库设计的方法和步骤;3. 学会使用数据库管理系统(DBMS)进行数据库的创建、修改、查询和维护;4. 了解数据库安全性和完整性控制的基本方法;5. 培养学生实际应用数据库解决实际问题的能力。
二、实训内容1. 数据库基本概念和原理(1)数据库系统的组成:数据库、数据库管理系统、数据库管理员、用户。
(2)数据库的三个级别:物理级别、概念级别、逻辑级别。
(3)数据模型:层次模型、网状模型、关系模型。
(4)数据库设计方法:需求分析、概念设计、逻辑设计、物理设计。
2. 数据库设计工具(1)E-R图:实体-联系图,用于表示实体和实体之间的关系。
(2)ERwin:实体-联系图绘制工具。
(3)PowerDesigner:数据库设计工具,支持多种数据库系统。
3. 数据库管理系统(DBMS)(1)SQL语言:结构化查询语言,用于数据库的创建、修改、查询和维护。
(2)Oracle、MySQL、SQL Server等数据库管理系统。
4. 数据库实现技术(1)数据库的创建、修改、删除。
(2)数据的查询、更新、删除。
(3)数据库的备份与恢复。
5. 数据库安全性和完整性控制(1)用户权限管理:授予、回收、修改用户权限。
(2)完整性约束:主键约束、外键约束、唯一性约束、非空约束。
(3)事务管理:事务的概念、特性、事务控制语句。
三、实训过程1. 实训环境:Windows操作系统,Oracle 11g数据库管理系统。
2. 实训步骤:(1)创建数据库:使用SQL语句创建数据库。
(2)创建表:根据需求设计表结构,使用SQL语句创建表。
(3)插入数据:使用SQL语句向表中插入数据。
(4)查询数据:使用SQL语句查询表中的数据。
计算机与信息学院实验报告系:专业:年级:姓名:学号:22 实验室号计算机号22 实验时间:2013年10月29日指导教师签字:成绩:报告退发(订正、重做)实验名称:(一)数据库的定义实验一、实验目的和要求(1)要求学生熟练掌握和使用SQL、Transact-SQL、SQL Server企业管理器创建数据库、表、索引和修改表结构。
(2)学会使用SQL Server 查询分析器接收Transact-SQL语句和进行结果分析。
二、实验内容和原理1. 基本操作实验(1)使用企业管理器按教材中的内容建立图书—读者数据库。
(2)在企业管理器中查看图书读者数据库的属性,并进行修改,使之符合要求。
(3)通过企业管理器,在建好的图书借阅数据库中建立图书、读者和借阅3个表,其结构为;图书(书号,类别,出版社,作者,书名,定价);读者(编号,姓名,单位,性别,电话);借阅(书号,读者编号,借阅日期)要求为属性选择合适的数据类型,定义每个表的主码,是否允许空值和默认值等列级数据约束。
(4)在企业管理器中建立图书、读者和借阅3个表的表级约束:每个表的主码约束;借阅表与图书表间、借阅表与读者表之间的外码约束,要求按语义先确定外码约束表达式,再通过操作予以实现;实现借阅表的书号和读者编号的惟一性约束:实现读者性别只能是“男”或“女”的Check(检查)约束。
2. 提高操作实验(1)参考教材,在查询分析器中完成用Transact-SQL命令建立学生-课程数据库及表的操作。
其中表结构为:学生(学号,姓名,年龄,性别,所在系);课程(课程号,课程名,先行课,学分);选课(学号,课程号,成绩)要求:1) 用SQL命令建库、建表和建立表间联系。
2) 选择合适的数据类型。
3) 定义必要的索引、列级约束和表级约束.三、实验环境硬件:计算机软件:Windows 2000和SQL Server 2000四、算法描述及实验步骤1、创建数据库2、在当前数据库中创建表五、调试过程六、实验结果七、总结创建数据库及创建表的sql语句:create database DB_BookAndReaderon(name='DB_BookAndReader_Data',filename='F:\SqlService Database\DB_BookAndReader_Data.mdf')log on(name='DB_BookAndReader_Log',filename='F:\SqlService Database\DB_BookAndReader_Log.lDF')gouse DB_BookAndReadergo/*图书(书号,类别,出版社,作者,书名,定价);读者(编号,姓名,单位,性别,电话);借阅(书号,读者编号,借阅日期)要求为属性选择合适的数据类型,定义每个表的主码,是否允许空值和默认值等列级数据约束。
SQL Server2005实验指导书实验二数据库和表的操作一.实验目的:1.了解数据库的结构特点、领会数据库中三种类型的文件特点2.学会创建和管理数据库的方法3.了解SQL SERVER的基本数据类型4.了解表结构的特点,学会创建和管理表的方法5.学会使用T-SQL语句创建和管理表二、实验学时2学时三、实验要求1.了解SQL Server数据库结构;2.熟练使用Management Studio或者2000系统下的企业管理器多种方式设计和创建及编辑数据库;3.熟练进行数据库分离附加操作;4.独立完成实验内容,并提交书面实验报告。
四、实验内容1.设计和创建数据库,及管理数据库2.设计和创建数据表,及表基本操作一插入数据。
五、实验步骤内容一:数据库的设计与创建数据库分析1.创建用于学生信息分析的数据库,名称为“学生信息”。
2.主数据文件“学生信息_data”,物理存储路径为”e:\个人目录\学生信息_data.mdf”,初始大小为3mb,最大容量为10mb,递增量为1mb,文件组为primary 文件组。
3.事物日志文件“学生信息_log”,物理存储路径为”e:\个人目录\学生信息_log.ldf”,初始大小为2mb,最大容量为5mb,递增量为10%。
内容二:数据库的管理1.利用sp_helpdb查看数据库“学生信息”的信息。
2.将创建的数据库改名为“学生情况”。
3.通过sql语句做如下修改:(1)主数据文件的容量为4mb,最大容量为20mb,递增量为2mb (2)事务日志文件容量为2mb,最大容量为10mb,递增量为1mb. 4.收缩数据库“学生情况”的容量内容三:设计与管理表1.通过sql语句创建表1“学生”,并保存结果。
表结构如下:2.通过sql语句创建表2“学期成绩”,标结构如下:3.创建表3“课程注册”,表结构如下:4.用sql语句在“学生”表中添加一格“备注”字段并保存结果5. 用sql语句将“学生”表中“专业”字段数据类型改为varchar,长度为30并保存结果6. 用sql语句删除“学生成绩”表中的“备注”字段并保存结果内容四:表的基本操作1.向学生表中添加信息。
数据库(MySQL)表基本操作思前想后,最终还是把博客的名字改成了数据库表基本操作,以前叫SQL语句⼤全,感觉⽤“⼤全”这个名词太⼤了,⽽⽂章中介绍的内容有限⽽且也不深。
如果您在阅读的过程中发现有不完善的地⽅,欢迎补充说明。
⼀提笔就讲创建数据库,感觉好像是从半道上开始的。
创建数据库前总得安装数据库吧,不管是SQL Server、mysql、Oracle。
但是如果这样写下去,不知道这篇博客还能不能完成,那就默认是安装好数据库了吧,本⽚博客如下都是使⽤mysql数据库,⾸先是登⼊数据库操作(mysql -u root -p)。
1. 查看当前所存在的数据库:show databases;查询结果中的mysql数据库是必须的,⽤来描述⽤户的访问权限;information_schema数据库提供了访问数据库元数据的⽅式,其中保存着关于MySQL服务器所维护的所有其他数据库的信息。
如数据库名,数据库的表,表栏的数据类型与访问权限等;performance_schema⽤于收集数据库服务器性能参数。
2. 创建新的数据库:create database test_db;test_db为要创建的数据库名称,该名称不能与现有的数据库重名。
3. 查看创建好的数据库定义:show create database test_db;4. 删除数据库:drop database test_db;test_db为要删除的数据库名称。
5. 查看数据库存储引擎:show engines;Support列为YES表⽰引擎可⽤,DEFAULT表⽰数据库当前默认的引擎。
可以通过my.ini⽂件设置数据库的默认存储引擎。
在数据库中,数据表是最重要、最基本的操作对象,数据存储的基本单位。
本节将介绍数据表的增、删、改、查操作,使读者能够熟练掌握数据表的基本操作,理解约束、默认和规则的含义。
创建数据表:数据表属于数据库,在创建数据表前,应该使⽤use test_db;指定在哪个数据库(test_db)下进⾏操作,如果没有指定数据库会抛出No database selected错误。
实验六数据完整性约束姓名:学号:专业:网络工程班级:20网络工程同组人:无实验日期:2022.5【实验目的与要求】1.熟练掌握实体完整性的实现。
2.熟练掌握参照完整性的实现。
3.熟练掌握域完整性的实现。
【实验内容与步骤】实验准备:(1)对于SalesDB数据库,若在产品表、销售表和客户表上已有约束,请先删除之;(2)删除掉表中重复的行。
6.1.实体完整性的实现(1) 对产品表,定义主键约束(用企业管理器实现)。
写出相应过程:(1)在对象资源管理器中的数据库节点下找到数据库SalesDB,找到表Product。
右击-修改(2)按住Ctrl键选中Price和Stocks,右键-设置主键-保存测试:试着对产品表插入一条与原表中数据行具有相同主键值的数据。
给出测试结果:(2)客户表(CUSTOMER),定义名为PK_Cstm的主键约束,设定客户号(Cno)为主键。
(用SQL语句实现,写出相应语句)。
给出相应的SQL语句:alter table Customeraddconstraint PK_Cstm primary key(Cno)给出测试结果:(3)对销售表,定义名为PK_Sales的主键约束,设定主键为(Pno,Cno)的组合(用SQL语句实现,写出相应语句)。
给出相应的SQL语句:alter table Salesaddconstraint PK_Sales primary key(Pno,Cno)给出测试结果:(1)利用企业管理器建立产品表(Product)与销售表(Sales)之间的参照关系,当对主表产品表进行更新和删除操作时,从表Sales采用NO ACTION方式,写出其过程。
给出相应的过程:测试:试着删除主表中与从表有关联的一条记录,而后分别查看主表和从表中数据记录,给出测试结果。
(2)利用SQL语句建立销售表(SALES)与客户表(CUSTOMER)之间的参照关系,设定外键约束名为FK_SC,使得当对主表客户表(CUSTOMER)进行更新和删除操作时,从表销售表(SALES)采用CASCADE(级联)方式处理,给出相应的SQL语句和测试结果。
实验报告二课程名称数据库系统原理与应用实验日期9.21(软工1401B)实验项目名称T-SQL指令创建数据库和表实验地点1#606 实验类型□验证型√设计型□综合型学时 2一、实验目的及要求(本实验所涉及并要求掌握的知识点)1.掌握用T-SQL指令创建数据库和表的方法2.掌握用T-SQL指令在数据表插入数据的方法3.掌握交互式和T-SQL语句修改数据表中数据的方法4.掌握交互式和T-SQL指令删除数据表中数据的方法5.掌握交互式和T-SQL指令删除数据库和表的方法二、实验环境(本实验所使用的硬件设备和相关软件)硬件:微型计算机软件:Windows XP/Windows Vista/Win 7操作系统;SQL Server2005数据库管理系统。
三、实验内容及步骤阅读以下内容:1、通过新建查询用SQL指令创建教材P20-21图1-15和图1-17学生成绩数据库,数据库名为StuScore在SQL Server Management Studio中,单击工具栏上的“新建查询”,然后在查询窗口中输入下面SQL语句:2、用T-SQL指令创建数据库StuScore的三张表student、course和grade(1)改变当前数据库为StuScore默认情况下登录SQL SERVER服务器后,以master数据库为当前数据库,如下图所示,应先使用下列命令改变当前数据库为StuScore数据库:USE StuScoreGO执行该命令后,发现查询窗口的标题栏发生了变化,master被换成了StuScore,说明命令执行成功,当前数据库为StuScore。
(2)在数据库StuScore中建立Student表在查询窗口中输入下面SQL语句:(3)在数据库StuScore中建立Course表在查询窗口中输入下面SQL语句:按上述方法查看StuScore的Course表是否创建成功。
(4)在数据库StuScore中建立grade表在查询窗口中输入下面SQL语句:也可以在表创建成功后再增加表级完整性约束3、学习用SQL语句修改基本表的结构的方法。
数据库设计中的主键与外键规范与约束在数据库设计中,主键和外键是建立关系和维护数据完整性的重要工具。
它们定义了表之间的联系,并且为数据库提供了强大的查询和操作能力。
在设计数据库时,遵循一定的规范和约束是非常重要的,以确保数据库的正确性和一致性。
本文将介绍数据库设计中主键和外键的规范与约束,以及如何正确地使用它们。
一、主键的规范与约束1. 主键的定义主键是与每个表中的每一行数据相关联的唯一标识符。
它能够保证表中的每一行数据都有一个唯一的标识符,使得数据能够被准确地搜索、更新和删除。
主键可以是一个或多个字段的组合,但需要满足以下条件:- 主键的值必须唯一并且不能为空。
- 主键的值在整个表中必须是唯一的,并且不可更改。
2. 主键的选择选择合适的字段作为主键是数据库设计的重要一环。
通常情况下,以下几种字段适合作为主键:- 自增字段: 这种字段的值会自动递增,确保每个记录都具有唯一标识符。
- 逻辑键: 通过业务需求将多个字段组合在一起形成一个唯一的标识符。
- 外键: 使用其他表中的字段作为主键。
3. 主键的约束主键约束是为了确保主键属性的完整性和一致性。
通常有以下几个约束:- 非空约束: 主键字段不允许为空值。
- 唯一约束: 主键字段的值不能重复。
- 自动递增约束: 对于自增主键,系统会自动分配唯一的值。
二、外键的规范与约束1. 外键的定义外键是一个表中的字段,它引用了其他表中的主键,用于建立表之间的关系。
它允许表之间进行数据的关联,并在需要时提供完整性和一致性的保证。
外键通常用于建立表之间的一对多或多对多的关系。
2. 外键的选择选择合适的字段作为外键是数据库设计的关键一步。
以下几种情况可考虑使用外键:- 存在一对多的关系: 例如,一个订单可以有多个产品。
- 存在多对多的关系: 例如,一个产品可以被多个订单购买。
- 需要维护数据的完整性和一致性。
3. 外键的约束外键约束是为了确保外键引用的完整性和一致性。
通常有以下几个约束:- 参照约束: 确保外键引用的主键值在引用表中存在。
数据库原理SQLServer实验指导书数据库系统原理实验一、基本操作实验实验1:数据库的定义实验本实验的实验目的是要求学生熟练掌握和使用SQL、T-SQL、SQL Server Enterpriser Manager Server 创建数据库、表、索引和修改表结构,并学会使用SQL Server Query Analyzer,接收T-SQL语句和进行结果分析。
本实验的内容包括:l)创建数据库和查看数据库属性。
2)创建表、确定表的主码和约束条件,为主码建索引。
3)查看和修改表结构。
4)熟悉SQL Server Enterpriser Manager和 Query Analyzer工具的使用方法具体实验任务如下。
1.基本提作实验1)使用Enterpriser Manager建立图书读者数据库2)在Enterpriser Manager中查看图书读者数据库的属性,并进行修改,使之符合要求。
3)通过Enterpriser Manager,在建好了图书借阅数据库中建立图书、读者和借阅3个表,其结构为:图书(书号,类别,出版社,作者,书名,定价,作者);读者(编号,姓名,单位,性别,电话):借阅(书号,读者编号,借阅日期人)要求为属性选择合适的数据类型,定义每个表的主键,Allow Null(是否允许空值)和Default Value(缺省值)等列级数据约柬。
4)在Enterpriser Manager建立图书、读者和借阅3个表的表级约束:每个表的PrimaryKey (主键)约束;借阅表与图书表间、借阅表与读者表之间的FOREIGNKEY(外码)约柬,要求按语义先确定外码约束表达式,再通过操作予以实现;实现借阅表的书号和读者编号的UNIQUE(惟一性)约束;实现读者性别只能是“男”或“女”的check(检查)约束。
2.提高操作实验建立学生_课程库操作,在SQL Server Enterpriser Manager中实现。
数据库原理实验学期总结班级摘要学习数据库已经有一个学期的时间,经过一个学期的SQL Server 2000课程的学习,老师在课堂上耐心、细致的讲解,以及内容详细、层次鲜明、易于记忆和理解的教学课件,让我了解了SQL Server 2000的基础知识,学会了创建数据库以及对数据库操作的一些基本应用,现就所学到知识作出以下的学习心得总结:SQL Server 是一个关系数据库管理系统,SQL Server 2000 是Microsoft 公司推出的SQL Server 数据库管理系统的一个版本,具有使用方便,可伸缩性好与相关软件集成程度高等优点,可跨越从运行Microsoft Windows 98 的膝上型电脑到运行Microsoft WindowsXP 的大型多处理器的服务器等多种平台使用。
一、数据库实验的主要意义的目的数据库是数据管理的最新技术,是计算机科学的重要分支。
目前,对数据库各种模型的研究以及理论上的探讨都还在蓬勃开展,其应用也从一般管理扩大到计算机辅助设计,人工智能以及科技计算等领域。
数据库实验有利于同学理解书中复杂抽象的理论,让同学建立直观印象,加强实践操作技能,加深对理论的理解。
二、概述本学期的实验内容和目的本学期实验内容:1数据库的创建和管理2 数据表的创建和管理3 表中数据的操作4 视图的创建和使用5索引的创建和使用6 存储过程的创建和使用7 触发器的创建和使用目的:掌握使用SQL Server 2005 开发数据库系统的方法三、总结1.我的实验完成的实际情况数据库实验报告(一)实验内容:1.在STUDENT数据库中创建一个名为t_course(课程信息)的表,要求如下:c_number char(10) primary key, c_name char(30), hours int ,credit real;2.在STUDENT数据库中创建一个名为t_score (学生成绩)的表要求如下:s_number char(10)取值范围:数据来自学生信息表主键,C_number char(10)取值范围:数据来自课程信息主键,Score real 取值范围:0~100.2.在SQLServer2005 中有多少中约束?答:在SQL Server 中有5 种约束:主关键字约束(Primary Key Constraint)、外关键字约束(Foreign Key Constraint)、惟一性约束(Unique Constraint)、检查约束(Check Constraint)和缺省约束(Default Constraint)。
《数据库系统概论》实验报告
题目:实验一 数据库和表数据库
/表的基本操
作和表级约束约束条件
姓名 班级 学号 日期
2010.9.29
一. 实验内容和步骤结果
1.在Student 数据库中,利用图形用户界面,创建一个选修了数据库课程并且是1986年出生的学生的视图,视图中包括学号,性别,成绩这三个信息:
2.用两种不同的SQL 语句创建课本128页第11题中要求的视图(视图名:V_SPJ ) 方法一:
CREATE VIEW V_SPJ AS
SELECT SNO ,PNO ,QTY FROM SPJ WHERE JNO in( SELECT JNO FROM J 表
WHERE JNAME ='三建')
方法二:
CREATE VIEW V_SPJ
AS
SELECT SNO,PNO,QTY
FROM SPJ,J表
WHERE SPJ.JNO=J表.JNO AND
JNAME='三建'
3.用SQL语句完成课本128页第11题中对视图V_SPJ的查询(1)
SELECT PNO,QTY
FROM V_SPJ
(2)
SELECT PNO,QTY FROM V_SPJ
WHERE SNO='S1'
4.用T-SQL语句操作视图的数据。
(15分,每题5分)
(1) 给视图V_SPJ中增加一条数据(基本表中有插入的数据即可)。
INSERT
INTO V_SPJ
VALUES('S0','P0','100')
(2)修改视图V_SPJ中的任意一条数据的供应数量。
UPDATE V_SPJ
SET QTY=10
WHERE SNO='S1'AND
PNO='P1'
(3)删除视图V_SPJ中的任意一条数据。
DELETE
FROM V_SPJ
WHERE SNO='S1';
5.在图形用户界面中创建新登录名以及用户。
(20分,每题10分)
(1)对于数据库company创建P148页第 8题中所需要用到的各个用户以及相关的关的登录名。
(假定有数据库company,库中有两个表e(职工表)和d(部门
表))。
具体步骤:
在安全性目录下选择登录名,右键单击新建,输入登录名和登录密码,并在用户映射出选择company。
运行结果:
(2)用图形用户界面完成以下的权限勇赋予:
a)用户王明对两个表有Select和Insert的权力。
具体步骤:
右键单击王明,选择属性,选择安全对象,添加对象,特定对象。
复选框选择表,确定。
表对象选择:e和d。
在授予下的复选框选择Select和 Insert。
运行结果:
b)用户李勇对职工表具有Select权力,对工资字段具有更新权力:
具体步骤:
确定Select权利和上题一样。
而对工资字段具有更新权力,单击Update,点列权限,选择“工资”。
运行结果:
6.用T-SQL语句授权和收回权限并加以验证。
(50分,每题5分)
(1)P148页 8题。
(除过(a),(e))
(b) SQL源码:
GRANT INSERT,DELETE
ON e
TO李勇
GRANT INSERT,DELETE
ON d
TO李勇
运行结果:
(c)SQL源码:CREATE VIEW E_SELECT
AS SELECT*
FROM e
WHERE e.姓名=CURRENT_USER GO
GRANT SELECT
ON E_SELECT
TO PUBLIC
运行结果:
(d)SQL源码:GRANT SELECT,UPDATE(工资) ON e
TO刘星
运行结果:
(f) SQL源码:GRANT ALL PRIVILEGES
ON e
TO周平
WITH GRANT OPTION
GRANT ALL PRIVILEGES
ON d
TO周平
WITH GRANT OPTION
运行结果:
(g)SQL源码:
CREATE VIEW X_PAY
AS
SELECT e.部门号,MAX(工资)最大工资,MIN(工资)最小工资,AVG(工资)平均工资FROM e,d
WHERE e.部门号=d.部门号
GROUP BY e.部门号
GO
GRANT SELECT
ON X_PAY
TO杨兰;
运行结果:
(2)P148页 9题的c),d),f),g):
(c) SQL源码:
REVOKE SELECT
ON E_SELECT
FROM PUBLIC;
DROP VIEW E_SELECT;
运行结果:
(d)SQL源码:
REVOKE SELECT,UPDATE
ON e
FROM刘星
运行结果:
(f)SQL源码:REVOKE ALL PRIVILEGES ON e
FROM周平
REVOKE ALL PRIVILEGES ON d
FROM周平
运行结果:
(g)SQL源码:REVOKE SELECT
ON X_PAY
FROM杨兰;
DROP VIEW X_PAY;
运行结果:
二. 实验中出现的问题以及解决方案(对于未解决问题请将问题列出来)除了标题内容以外,
该部分内容中还可以写对于实验的一些感受,建议,意见等。
本次实验是对视图的操作和安全性控制问题,基本的一些题目在书上都有例题,没多大难度。
只有少部分结合了视图的构造,开始没想到这方面,最后终于在老师的帮助下明白了。
总的来说本次实验学到不少,但是还是对ALL的用法不太了解!
批阅者:
批阅日期:
实验成绩:
批注:。