sql数据库第六章SQLServer数据表管理2

上传人:无*** 文档编号:169115109 上传时间:2022-11-14 格式:PPT 页数:43 大小:925.52KB
收藏 版权申诉 举报 下载
sql数据库第六章SQLServer数据表管理2_第1页
第1页 / 共43页
sql数据库第六章SQLServer数据表管理2_第2页
第2页 / 共43页
sql数据库第六章SQLServer数据表管理2_第3页
第3页 / 共43页
资源描述:

《sql数据库第六章SQLServer数据表管理2》由会员分享,可在线阅读,更多相关《sql数据库第六章SQLServer数据表管理2(43页珍藏版)》请在装配图网上搜索。

1、SQL Server SQL Server 数据库程序设计数据库程序设计授课教师:姜授课教师:姜 姗姗 数据库中的数据现实世界的反映,数据库的设计必须能够满足现实情况的实现,即满足现实商业规则的要求,这也就是数据完整性的要求。在数据库管理系统中,约束是保证数据库中的数据完整性的重要方法。6.36.3完整性与约束完整性与约束 2FOREIGN KEY约束外键(FOREIGN KEY)用于建立和加强两个表(主表与从表)的一列或多列数据之间的链接,当数据添加、修改或删除时,通过外键约束保证两个表之间数据的一致性。定义表之间的参照完整性是先定义主表的主键,再对从表定义外键约束。FOREIGN KEY约

2、束要求列中的每个值在所引用的表中对应的被引用列中都存在,同时FOREIGN KEY约束只能引用在所引用的表中是PRIMARY KEY或UNIQUE约束的列,或所引用的表中在UNIQUE INDEX内的被引用列。使用表设计器创建使用表设计器创建FOREIGN KEY约束约束 打开需要建立外键的表设计器,在需要设置外键的列上单击鼠标右键选择【关系】命令。打开【外键关系】对话框,单击表和列规范后面的按钮,设置外键关系。使用数据库关系图建立外键使用数据库关系图建立外键使用使用T-SQL语句创建语句创建FOREIGN KEY约束约束 创建外键约束的语法形式如下:CONSTRAINT constraint

3、_name FOREIGN KEY REFERENCES referenced_table_name(column_name)(,n)参数说明如下:referenced_table_name是FOREIGN KEY约束引用的表的名称。column_name是FOREIGN KEY约束所引用的表中的某列。【例6】:建立一个新的stu_info表,指定“学号”为主键,“班级编号”为外键,与class表中的“班级编号”列关联。Create table stu_info(学号 char(10)NOT NULL,姓名 char(8)NOT NULL,出生年月 datetime NULL,性别 char(

4、2)NOT NULL,地址 char(20),班级编号 char(4)Constraint PK_学号 primary key(学号),Constraint FK_班级编号 foreign key(班级编号)References class(班级编号))也可写成Create table stu_info(学号 char(10)NOT NULL PRIMARY KEY,姓名 char(8)NOT NULL,出生年月 datetime NULL,性别 char(2)NOT NULL,地址 char(20),班级编号 char(4)references class)注:此法只能用于列名相同时使用【例

5、7】:在stu_info表中sclass列上添加一个外键,名称为FK_bno,与class表中的bno列关联。Alter table stu_infoAdd constraint FK_bnoForeign key(sclass)references class(bno)3UNIQUE约束UNIQUE约束用于确保表中某个列或某些列(非主键列)没有相同的列值。与PRIMARY KEY约束类似,UNIQUE约束也强制唯一性,但UNIQUE约束用于非主键的一列或多列组合,而且一个表中可以定义多个UNIQUE约束,另外UNIQUE约束可以用于定义允许空值的列。例如在课程表(course_info)中已

6、经定义“课程号”作为主键,而现在对于“课程名”也不允许出现重复,就可以通过设置“课程名”为UNIQUE约束来确保其唯一性。使用表设计器创建使用表设计器创建UNIQUE约束约束 在表设计器需要加入UNIQUE约束的列上单击鼠标右键选择【索引/键】选项。使用使用T-SQL语句创建语句创建UNIQUE约束约束 创建唯一性约束的语法形式如下:CONSTRAINT constraint_name UNIQUE CLUSTERED|NONCLUSTERED 其中,CLUSTERED|NONCLUSTERED表示所创建的UNIQUE约束是聚集索引还是非聚集索引,默认为NONCLUSTERED非聚集索引。【例

7、8】:将course表中cname列设置成为唯一列。Alter table courseAdd constraint ix_courseunique(cname)4CHECK约束CHECK约束用于限制输入到一列或多列的值的范围,从逻辑表达式判断数据的有效性,也就是一个列的输入内容必须满足CHECK约束的条件,否则,数据无法正常输入,从而强制数据的域完整性。例如在学生成绩表(stu_grade)中的“成绩”来讲,应该保证在0 100之间,又如在课程信息表(course_info)中的“学时”来讲,应该保证在0 80之间,而只用int数据类型是无法实现的,可以通过CHECK约束来完成。使用表设计器

8、创建使用表设计器创建CHECK约束约束使用使用T-SQL语句创建语句创建CHECK约束约束 创建检查约束的语法形式如下:CONSTRAINT constraint_name CHECK(check_expression)其中,check_expression 为约束范围表达式。【例8】:新建“成绩”表,要求成绩的值在0100之间Create table 成绩(编号 char(10)NOT NULL,课程编号 char(4)references 课程表,学号 char(10)references 学生信息,姓名 char(8)NOT NULL,成绩 int Constraint PK_学号 pr

9、imary key(编号),Constraint CK_成绩 CHECK(成绩 between 0 and 100))成绩 int CHECK(成绩 between 0 and 100)5DEFAULT约束若将表中某列定义了DEFAULT约束后,用户在插入新的数据行时,如果没有为该列指定数据,那么系统将默认值赋给该列,当然该默认值也可以是空值(NULL)。例如,假设学生信息表(stu_info)中的同学绝大多数都来自于“信息学院”,就可以通过设置“系别”字段的DEFALUT约束来实现,简化用户的输入。使用表设计器创建使用表设计器创建DEFAULT约束约束 在表设计器中,选择需要设置DEFAUL

10、T值的列,在下面“列属性”的“默认值或绑定”栏中输入默认值,然后单击工具栏中的“保存”按钮,即完成DEFAULT约束的创建。使用使用T-SQL语句创建语句创建DEFAULT约束约束 创建默认值约束的语法形式如下:CONSTRAINT constraint_name DEFAULT constraint_expression with VALUES其中,constraint _expression 为默认值。【例9】将表student的电话号码增加默认值0371-00000000.alter table studentadd default 0371-00000000 for 电话号码电话号码启

11、用、禁用约束启用、禁用约束 启用、禁用约束的语法格式如下:CHECKINOCHECKCONSTRAINTALL|constraint_name,n 此语句只能与外键和CHECK约束一起使用,无法禁用DEFAULT、PRIMARY和UNIQUE约束。【例10】禁用表student中的CK_ssex约束。ALTER TABLE student NOCHECK CONSTRAINT CK_ssex若要禁用所有约束则NOCHECK CONSTRAINT ALL【例11】启用表student中的CK_ssex约束。ALTER TABLE student CHECK CONSTRAINT CK_ssex删

12、除约束删除约束 删除约束的语法形式如下:DROPCONSTRAINTconstraint_name|COLUMN column_name【例12】将表student的CK_ssex约束删除Alter table student drop CK_ssex 创建表的目在于利用表进行数据的存储和管理。对数据进行管理的前提是数据的存储,向表中添加数据,没有数据的表是没有任何实际意义的;添加完成后,用户也可以根据自己的需要对表中数据进行修改和删除。在SQL Server 2008中,对于数据的管理包括插入、修改和删除,通过Management Studio来操作,也可以利用SQL语句来实现。6.56.5

13、管理数据表管理数据表 1利用对象资源管理器插入表数据(1)启动SQL Server Management Studio。(2)展开SQL Server实例,选择“表”,单击鼠标右键,然后从弹出的快捷菜单中选择“编辑前200行”命令。(3)在表窗口中,显示出当前表中数据,单击表格中最后一行,填写相应数据信息。界面方式插入数据表界面方式插入数据表 插入一个元组基本格式INSERT INTO(,)VALUES(,)参数说明:Table_name:表名Column_name:列名Expression:对应字段的值或表达式,字符和日期型需要加单引号。命令方式插入数据表命令方式插入数据表 若数据表结构为s

14、tudent(sno,sname,ssex,sage)插入一个完整的元组 INSERT INTO Student VALUES(200215121,李勇,男,20)插入一个不完整的元组 INSERT INTO Student(Sno,Sname)VALUES(200215122,刘晨)新插入记录应与表结构定义匹配;列名项数与提供值的数目应匹配;可以指定列值为Null;INTO子句中没有出现的属性列,新记录在这些列上将取空值(Null)或默认值;如果INTO子句中没有指明任何列名,则新插人的记录必须在每个属性列上均有值,且顺序应与表中属性列顺序一致。插入数据表注意事项插入数据表注意事项 向Stu

15、dent表中插入一条记录(200501,李勇)练习练习 1利用对象资源管理器修改表数据利用对象资源管理器修改表数据,与插入表数据操作类似。修改数据表修改数据表 基本格式Update table_nameSet=,=FROM where 说明:一次可以更新多个属性的值;更新的条件可以与其他的表相关(使用FROM指定);如果省略where语句,则表示要修改表中的所有记录。命令方式修改数据表命令方式修改数据表 三种修改方式1.1.修改某一个元组的值修改某一个元组的值2.2.修改多个元组的值修改多个元组的值3.3.带子查询的修改语句带子查询的修改语句 在修改之前建议先查看表记录(Select Sele

16、ct*from tab from tablele)查看数据表Student所有记录SELECT*FROM Student 查看数据表Student中字段学号、姓名的所有记录SELECT Sno,Sname FROM Student 给学号为200215122的学生年龄增加1岁 UPDATE Student SET Sage=Sage+1 WHERE Sno=200215122 给CS系的男同学年龄增加1岁UPDATE Student SET Sage=Sage+1 WHERE Sdept=CS and Ssex=男给所有课程的学分提高1分UPDATE Course SET Ccredit=Cc

17、redit+1将学号为200515121同学的姓名,性别,年龄分别设置为(张三,男,20)UPDATE Student SET 姓名=张三,性别=男,年龄=20WHERE Sno=200515121 给CS系的学生的选课成绩增加10分UPDATE SC SET Grade=Grade+10WHERE Sno=(SELECT Sno FROM StudentWHERE Student.Sdept=CS)1.将数据表student中学号为200215121的记录的性别及所在系的字段值改为(女,IS);2.将数据表SC中所有记录的成绩的字段值增加10;3.将数据表Student中姓名中姓“王”的记录

18、年龄增加1;4.将表SC中选修课程号为1的记录的成绩字段值增加10,其他记录的成绩字段值增加5;练习练习 1利用对象资源管理器删除表数据在需要删除的记录前点击鼠标右键选择【删除】删除数据库删除数据库 基本格式Delete from table_namewhere DELETE命令从指定的表中删除满足“逻辑表达式”条件的元组;如果没有指定删除条件则删除表中的全部元组,所以在使用该命令时要格外小心;DELETE命令只删除元组,它不删除表或表结构。命令方式删除数据表命令方式删除数据表 1.将数据表Student中学号为2005001的记录删除;2.将数据表Student中性别不为“女”的记录删除;3.将数据表Student 中院系为null的记录删除;4.将数据表Student 中CS系年龄小于20的男同学的记录删除;练习练习

展开阅读全文
温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!