SQL-Server第四章表操作_第1页
SQL-Server第四章表操作_第2页
SQL-Server第四章表操作_第3页
SQL-Server第四章表操作_第4页
SQL-Server第四章表操作_第5页
已阅读5页,还剩70页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、SQL Server SQL Server 实 例 教 程实 例 教 程(20 0 8(20 0 8 版版 ) )第 4 章 表操作勤劳一日,可得一夜安眠;勤劳一生,可得幸福长眠勤劳一日,可得一夜安眠;勤劳一生,可得幸福长眠 达达芬奇芬奇 2022-4-14SQL ServerSQL Server案例教程(案例教程(20082008版)版)本章学习导航本章学习导航2022-4-14SQL ServerSQL Server案例教程(案例教程(20082008版)版) 数据库是用来保存数据的,在数据库是用来保存数据的,在SQL Server数据库管理系统中,数据库管理系统中,物物理的数据存放在表中

2、理的数据存放在表中。表的操作包括。表的操作包括设计表和操作表中记录,设计表和操作表中记录,其中设计表其中设计表指的是规划怎样合理的、规范的来存储数据;表中记录操作是指向表中添指的是规划怎样合理的、规范的来存储数据;表中记录操作是指向表中添加数据、修改已有数据和删除不需要的数据操作。在网上购物时,我们经加数据、修改已有数据和删除不需要的数据操作。在网上购物时,我们经常需要常需要进行提交用户个人信息即注册进行提交用户个人信息即注册。在注册模块中,程序员设计需要用。在注册模块中,程序员设计需要用户提交哪些信息(会员名、密码和电子邮件等)的过程就是户提交哪些信息(会员名、密码和电子邮件等)的过程就是设

3、计表的过程设计表的过程;用户在输入信息后提交实际上就是在会员表中用户在输入信息后提交实际上就是在会员表中添加一个会员记录添加一个会员记录;已注册;已注册的会员可以对自己的基本信息进行修改,就是的会员可以对自己的基本信息进行修改,就是对表中记录的修改对表中记录的修改;管理员;管理员将长久不用的会员清除就是删除会员表中记录的操作。将长久不用的会员清除就是删除会员表中记录的操作。本章学习导航本章学习导航2022-4-14SQL ServerSQL Server案例教程(案例教程(20082008版)版)本章任务描述本章任务描述任任 务务 编编 号号子子 任任 务务任任 务务 内内 容容任务1使用SS

4、MS实现对表的创建、修改、查看和删除操作任务1-1在电子商城数据库WebShop中创建存放商品信息的表Goods任务1-2在电子商城数据库WebShop中修改所创建的Goods表中的信息任务1-3查看电子商城数据库WebShop中所创建的Goods表的信息任务1-4删除电子商城数据库WebShop中所创建的Goods表任务2使用T-SQL实现对表的创建、修改、查看和删除操作任务2-1在电子商城数据库WebShop中创建存放商品信息的表Goods任务2-2在Goods表中增加新列g_Producer任务2-3在Goods表中将g_ProduceDate列的数据类型由datetime修改为char

5、任务2-4在Goods表中删除已有列g_Producer任务2-5将Goods表改名为tb_Goods任务2-6查看Goods表的详细信息任务2-7删除电子商城数据库WebShop中所创建的Goods表2022-4-14SQL ServerSQL Server案例教程(案例教程(20082008版)版)本章任务描述本章任务描述任任 务务 编编 号号子子 任任 务务任任 务务 内内 容容任务3在SQL Server 2008的SSMS中完成表中记录的添加、删除和修改等操作任务4使用INSERT语句完成表中记录的添加操作任务4-1使用 INSERT INTO 语句来向表中添加记录,并指定所有列的信

6、息任务4-2使用 INSERT INTO 语句来向表中添加记录,并指定特定列的信息任务5使用UPDATE语句完成表中记录的修改操作任务5-1使用UPDATE语句修改单条记录任务5-2使用UPDATE语句修改多条记录任务5-3使用UPDATE语句进行多项修改任务6使用DELETE语句完成表中记录的删除操作任务6-1使用DELETE语句删除指定记录任务6-2使用DELETE语句删除所有记录任务7应用允许空值约束实施数据完整性任务8应用DEFAULT定义实施数据完整性任务9应用CHECK约束实施数据完整性任务10应用PRIMARY KEY约束实施数据完整性任务11应用FOREIGN KEY约束实施数

7、据完整性任务12应用UNIQUE约束实施数据完整性2022-4-14SQL ServerSQL Server案例教程(案例教程(20082008版)版)SQL ServerSQL Server表的概念与数据类型表的概念与数据类型(一一) SQL Server表的概念表的概念 表是存放数据库中所有数据的数据库对象。如同表是存放数据库中所有数据的数据库对象。如同Excel电子表格,数电子表格,数据在表中是按行和列的格式进行组织的。其中每行代表一条记录,每列代据在表中是按行和列的格式进行组织的。其中每行代表一条记录,每列代表记录中的一个域。表记录中的一个域。 在一个数据库中需要包含各个方面的数据,如

8、在在一个数据库中需要包含各个方面的数据,如在WebShop数据库中,数据库中,包含商品信息、会员信息和订单信息等。所以在设计数据库时,应先确定包含商品信息、会员信息和订单信息等。所以在设计数据库时,应先确定需要什么样的表,各表中都应该包括哪些数据以及各个表之间的关系和存需要什么样的表,各表中都应该包括哪些数据以及各个表之间的关系和存取权限等,这个过程称之为设计表。取权限等,这个过程称之为设计表。 2022-4-14SQL ServerSQL Server案例教程(案例教程(20082008版)版)设计表时需要确定如下项目设计表时需要确定如下项目 :(1)表的名称。)表的名称。(2)表中每一列的

9、名称。)表中每一列的名称。(3)表中每一列的数据类型和长度。)表中每一列的数据类型和长度。(4)表中的列中是否允许空值、是否唯一、是否要进行)表中的列中是否允许空值、是否唯一、是否要进行默认设置或添加用户定义约束。默认设置或添加用户定义约束。(5)表中需要的索引的类型和需要建立索引的列。)表中需要的索引的类型和需要建立索引的列。(6)表间的关系,即确定哪些列是主键,哪些是外键。)表间的关系,即确定哪些列是主键,哪些是外键。 SQL ServerSQL Server表的概念与数据类型表的概念与数据类型2022-4-14SQL ServerSQL Server案例教程(案例教程(20082008版

10、)版)SQL ServerSQL Server表的概念与数据类型表的概念与数据类型(二二) SQL Server中的基本数据类型中的基本数据类型数 据 类 型符号标识范 围存 储整数型bigint -263 263-1 8字节int -231231-1 4字节smallint -215 215-1 2字节tinyint 02551字节精确数值型numeric-1038 +11038 -1517字节浮点型float-1.79E + 308-2.23E -308、0 以及 2.23E -3081.79E + 30848字节real-3.40E + 38-1.18E -38、0 以及 1.18E -

11、383.40E + 384字节货币型money-263 263-18字节smallmoney -231231-14字节位 型bit 0、1、NULL(TRUE转换为1,FALSE转换为0)1字节日期时间型datetime1753 年 1 月 1 日9999 年 12 月 31 日(精确到3.33 毫秒)8字节smalldatetime1900 年 1 月 1 日2079 年 6 月 6 日(精确到1 分钟)4字节date公元元年1 月 1 日9999 年 12 月 31 日3字节time00:00:00.000 000 023:59:59.999 999 95字节datetime2日期范围:公

12、元元年1 月 1 日9999 年 12 月 31 日68字节datetimeoffset取值范围同datetime2,具有时区偏移量68字节2022-4-14SQL ServerSQL Server案例教程(案例教程(20082008版)版)SQL ServerSQL Server表的概念与数据类型表的概念与数据类型数 据 类 型符号标识范 围存 储字符型char固定长度,长度为 n 个字节,n 的取值范围为 18 000n个字节varchar可变长度,n 的取值范围为 18 000输入数据的实际长度加 2 个字节Unicode字符型nchar固定长度的 Unicode 字符数据,n 值必须在

13、 14 000 之间(含)2n 个字节nvarchar可变长度 Unicode 字符数据,n 值在 14 000 之间(含)输入字符个数的两倍 + 2 个字节文本型text存储较长的备注、日志信息等,最大长度为 231-1个字符=2 147 483 647 字节ntext长度可变的 Unicode 数据,最大长度为 230 -1个Unicode字符输入字符个数的两倍二进制型binary长度为 n 字节的固定长度二进制数据,其中 n 是从18 000n字节varbinary可变长度二进制数据,n 可以取18 000之间的值输入数据的实际长度 +2个字节时间戳型timestamp反映了系统对该记录

14、修改的相对顺序8字节图像类型image长度可变的二进制数据, 0231-1个字节之间不定其它类型cursor游标的引用sql_variant存储 SQL Server 支持的各种数据类型(text、ntext、timestamp 和 sql_variant 除外)值的数据类型table一种特殊的数据类型,存储供以后处理的结果集uniqueidentifier全局唯一标识符 (GUID)xml存储 Xml 数据的数据类型。可以在列中或者 Xml 类型的变量中存储 Xml 实例hierarchyid表示树层次结构中的位置2022-4-14SQL ServerSQL Server案例教程(案例教程(

15、20082008版)版) 在在SQL Server 2008中使用中使用“SQL Server Management Studio”实现对表的创建、修改、实现对表的创建、修改、查看和删除等操作。查看和删除等操作。使用 SSMS 管理表 2022-4-14SQL ServerSQL Server案例教程(案例教程(20082008版)版) 【提示提示】 尽可能地在创建表时正确的输入列的信息。尽可能地在创建表时正确的输入列的信息。 同一数据库中,列名不能相同。同一数据库中,列名不能相同。 2022-4-14SQL ServerSQL Server案例教程(案例教程(20082008版)版) 选择修

16、改表选择修改表 2022-4-14SQL ServerSQL Server案例教程(案例教程(20082008版)版) 修改表 修改表修改表 2022-4-14SQL ServerSQL Server案例教程(案例教程(20082008版)版) 选择属性选择属性 2022-4-14SQL ServerSQL Server案例教程(案例教程(20082008版)版)“表属性表属性”对话框对话框 2022-4-14SQL ServerSQL Server案例教程(案例教程(20082008版)版) “删除删除”表表 2022-4-14SQL ServerSQL Server案例教程(案例教程(20

17、082008版)版)“删除对象删除对象”对话框对话框 数据库中的表删除后不能恢复。数据库中的表删除后不能恢复。 如果要删除的表与其他的表有依赖关系,则该表不能被删除。如果要删除的表与其他的表有依赖关系,则该表不能被删除。 2022-4-14SQL ServerSQL Server案例教程(案例教程(20082008版)版)【课堂实践1】操作要求:操作要求:(1 1)启动)启动“SQL Server Management Studio”SQL Server Management Studio”,在数据库中创,在数据库中创建表建表CustomersCustomers。(2 2)将)将Custome

18、rsCustomers表中的安全码(表中的安全码(c_SafeCodec_SafeCode)修改为可以为)修改为可以为空,将身份证号(空,将身份证号(c_CardIDc_CardID)的类型修改为)的类型修改为charchar(1818)后保)后保存退出。存退出。(3 3)查看步骤()查看步骤(2 2)修改后)修改后CustomersCustomers表的结果。表的结果。(4 4)删除所建)删除所建CustomersCustomers表,重复步骤(表,重复步骤(1 1)()(4 4)。)。2022-4-14SQL ServerSQL Server案例教程(案例教程(20082008版)版) 在

19、在SQL Server 2008中使用中使用T-SQL语句实现语句实现对表的创建、修改、查看和删除等操作。对表的创建、修改、查看和删除等操作。使用 T-SQL 管理表 2022-4-14SQL ServerSQL Server案例教程(案例教程(20082008版)版)一、创建表基本语句格式:基本语句格式: CREATE TABLECREATE TABLE ( 列级完整性约束条件列级完整性约束条件 , 列级完整性约束条列级完整性约束条件件. . , )2022-4-14SQL ServerSQL Server案例教程(案例教程(20082008版)版) USE WebShopGOCREATE

20、TABLE Goods(g_ID char(6),g_Name varchar(50),t_ID char(2),g_Price float,g_Discount float,g_Number smallint,g_ProduceDate datetime,g_Image varchar(100),g_Status varchar(10),g_Description varchar (1 000)一、创建表2022-4-14SQL ServerSQL Server案例教程(案例教程(20082008版)版)【提示提示】 表是数据库的组成对象,在进行创建表的操作之表是数据库的组成对象,在进行创建

21、表的操作之前,先要通过命令前,先要通过命令USE WebShopUSE WebShop打开要操作的数据打开要操作的数据库。库。 用户在选择表和列名称时不要使用用户在选择表和列名称时不要使用SQLSQL语言中的保语言中的保留关键词,如留关键词,如selectselect,createcreate和和insertinsert等。等。 在这里没有考虑表中的约束情况。在这里没有考虑表中的约束情况。一、创建表2022-4-14SQL ServerSQL Server案例教程(案例教程(20082008版)版)二、修改表基本语句格式:基本语句格式: ALTER TABLE ALTER TABLE ALTE

22、R COLUMN ALTER COLUMN ADD ADD 完整性约束完整性约束 DROP DROP 2022-4-14SQL ServerSQL Server案例教程(案例教程(20082008版)版) 【提示提示】 在在ALTER TABLEALTER TABLE语句中使用语句中使用ADDADD关键字增加列。关键字增加列。 不论表中原来是否已有数据,新增加的列一律为空值,不论表中原来是否已有数据,新增加的列一律为空值,且新增加的一列位于表结构的末尾,且新增加的一列位于表结构的末尾,(一一) 添加列添加列 ALTER TABLE Goods ADD g_Producer varchar(20

23、)二、修改表2022-4-14SQL ServerSQL Server案例教程(案例教程(20082008版)版) 【提示提示】 在在ALTER TABLE ALTER TABLE 语句使用语句使用ALTER COLUMNALTER COLUMN关键字修改列的数据关键字修改列的数据类型或宽度。类型或宽度。 在在“对象资源管理器对象资源管理器”中展开中展开【表表】节点中的指定表节点后节点中的指定表节点后再展开再展开【列列】节点可以查看指定表中列的信息。节点可以查看指定表中列的信息。 (二二) 修改列修改列 二、修改表ALTER TABLE Goods ALTER COLUMN g_Produce

24、Date char(10)2022-4-14SQL ServerSQL Server案例教程(案例教程(20082008版)版) 【提示提示】 使用使用 ALTER TABLE ALTER TABLE 时,每次只能添加或者删除一列。时,每次只能添加或者删除一列。 在添加列时,不需要带关键字在添加列时,不需要带关键字COLUMNCOLUMN;在删除列时,在列名前要带上关键;在删除列时,在列名前要带上关键字字COLUMNCOLUMN,因为在默认情况下,认为是删除约束。,因为在默认情况下,认为是删除约束。 在添加列时,需要带数据类型和长度;在删除列时,不需要带数据类型和在添加列时,需要带数据类型和长

25、度;在删除列时,不需要带数据类型和长度,只需指定列名。长度,只需指定列名。 如果在该列定义了约束,在修改列时会进行限制,如果确实要修改该列,如果在该列定义了约束,在修改列时会进行限制,如果确实要修改该列,先必须删除该列上的约束,然后再进行修改。先必须删除该列上的约束,然后再进行修改。(三三) 删除列删除列 二、修改表ALTER TABLE Goods DROP COLUMN g_Producer2022-4-14SQL ServerSQL Server案例教程(案例教程(20082008版)版) 基本语句格式:基本语句格式: sp_rename Goods,tb_Goodssp_rename

26、Goods,tb_Goods(四四) 重命名表重命名表【提示提示】 更改对象名(包括表名)的任一部分都可能会破坏脚本更改对象名(包括表名)的任一部分都可能会破坏脚本和存储过程。和存储过程。 二、修改表2022-4-14SQL ServerSQL Server案例教程(案例教程(20082008版)版)三、查看表基本语句格式:基本语句格式: sp_help sp_help 表名表名 2022-4-14SQL ServerSQL Server案例教程(案例教程(20082008版)版)三、查看表 查看表信息查看表信息 2022-4-14SQL ServerSQL Server案例教程(案例教程(2

27、0082008版)版)四、删除表基本语句格式:基本语句格式: DROP TABLE DROP TABLE 2022-4-14SQL ServerSQL Server案例教程(案例教程(20082008版)版)【课堂实践2】操作要求:操作要求:(1 1)使用)使用T-SQLT-SQL语句在语句在WebShopWebShop数据库中创建会员信息表数据库中创建会员信息表CustomersCustomers和员工信息表和员工信息表EmployeesEmployees。(2 2)对)对CustomersCustomers进行以下修改。进行以下修改。 增加一列增加一列c_Officec_Office用来表

28、示办公地址。用来表示办公地址。 删除一列删除一列c_SafeCodec_SafeCode(安全码)。(安全码)。 将将c_E-mailc_E-mail(电子邮箱)的长度修改为(电子邮箱)的长度修改为100100。(3 3)查看)查看CustomersCustomers表的基本信息。表的基本信息。(4 4)删除新创建的)删除新创建的CustomersCustomers表。表。2022-4-14SQL ServerSQL Server案例教程(案例教程(20082008版)版)【提示提示】 添加、修改和删除记录操作并不总是能正确执行,数据必添加、修改和删除记录操作并不总是能正确执行,数据必须遵循约

29、束规则。须遵循约束规则。 添加和修改过程中按添加和修改过程中按EscEsc键取消不符合约束的数据的输入。键取消不符合约束的数据的输入。【课堂实践2】2022-4-14SQL ServerSQL Server案例教程(案例教程(20082008版)版) 在在SQL Server 2008的的SQL Server Management Studio中完成中完成Goods表中记录的表中记录的添加、删除和修改等操作添加、删除和修改等操作。记录操作 2022-4-14SQL ServerSQL Server案例教程(案例教程(20082008版)版)一、使用SSMS进行记录操作 2022-4-14SQL

30、 ServerSQL Server案例教程(案例教程(20082008版)版)一、使用SSMS进行记录操作 【提示提示】 添加、修改和删除记录操作并不总是能正确执行,数据必须遵循约束添加、修改和删除记录操作并不总是能正确执行,数据必须遵循约束规则。规则。 添加和修改过程中按添加和修改过程中按Esc键取消不符合约束的数据的输入。键取消不符合约束的数据的输入。2022-4-14SQL ServerSQL Server案例教程(案例教程(20082008版)版) 使用使用T-SQL语句完成表中记录的添加操语句完成表中记录的添加操作,包括插入所有列、插入指定列。作,包括插入所有列、插入指定列。二、使用

31、T-SQL进行记录操作 (一)使用(一)使用T-SQL插入记录插入记录INSERT INTO ,.VALUES ( ,.)基本语句格式:基本语句格式: 2022-4-14SQL ServerSQL Server案例教程(案例教程(20082008版)版)1、插入所有列、插入所有列INSERT INTO Goods VALUES(020003,爱国者爱国者MP3-1G,02,128,0.8,20,2007-08-01,pImage/020003.gif,热点热点,容量容量G)二、使用二、使用T-SQLT-SQL进行记录操作进行记录操作 2022-4-14SQL ServerSQL Server案

32、例教程(案例教程(20082008版)版) 2、插入指定列、插入指定列INSERT INTO Goods(g_ID,g_Name,t_ID,g_Price,g_Discount,g_Number,g_ProduceDate,g_Status) VALUES(040002,杉杉西服杉杉西服(男装男装),04,1288,0.9,20,2007-08-01,热点热点)二、使用T-SQL进行记录操作 2022-4-14SQL ServerSQL Server案例教程(案例教程(20082008版)版)二、使用T-SQL进行记录操作 2022-4-14SQL ServerSQL Server案例教程(案

33、例教程(20082008版)版)【提示提示】 INSERTINSERT语句中的语句中的INTOINTO可以省略。可以省略。 如果某些属性列在表名后的列名表没有出现,则新记录在如果某些属性列在表名后的列名表没有出现,则新记录在这些列上将取空值。但必须注意的是,在表定义时说明了这些列上将取空值。但必须注意的是,在表定义时说明了NOT NULLNOT NULL的属性列不能取空值,否则系统会出现错误提示。的属性列不能取空值,否则系统会出现错误提示。 如果没有指明任何列名,则新插入的记录必须在每个属性列如果没有指明任何列名,则新插入的记录必须在每个属性列上均有值。上均有值。 字符型数据必须使用字符型数据

34、必须使用“”“”将其引起来。将其引起来。 常量的顺序必须和指定的列名顺序保持一致。常量的顺序必须和指定的列名顺序保持一致。二、使用T-SQL进行记录操作 2022-4-14SQL ServerSQL Server案例教程(案例教程(20082008版)版) 使用使用T-SQL语句完成表中记录的修改操语句完成表中记录的修改操作,包括修改单条记录、修改多条记录和指作,包括修改单条记录、修改多条记录和指定多项修改。定多项修改。二、使用T-SQL进行记录操作 (二)使用(二)使用T-SQL修改记录修改记录2022-4-14SQL ServerSQL Server案例教程(案例教程(20082008版)

35、版)基本语句格式:基本语句格式:UPDATE UPDATE SET SET =, =. . FROM FROM WHERE WHERE ; 二、使用T-SQL进行记录操作 2022-4-14SQL ServerSQL Server案例教程(案例教程(20082008版)版) 1、修改单条记录、修改单条记录UPDATE Goods SET g_Status=热点热点WHERE g_name=劲霸西服劲霸西服二、使用T-SQL进行记录操作 2022-4-14SQL ServerSQL Server案例教程(案例教程(20082008版)版) 【提示提示】 如果不指定条件,则会修改所有的记录。如果不

36、指定条件,则会修改所有的记录。 如果加上条件如果加上条件IS NOT NULLIS NOT NULL就可以保证对已有图片的商品进行修改。就可以保证对已有图片的商品进行修改。2、修改多条记录、修改多条记录UPDATE Goods SET g_Image=Images/+ g_ImageWHERE g_Image IS NOT NULL二、使用T-SQL进行记录操作 2022-4-14SQL ServerSQL Server案例教程(案例教程(20082008版)版) 【提示提示】 如果要修改多列,则在如果要修改多列,则在SETSET语句后用语句后用“,”,”分隔各修改子句。分隔各修改子句。 这类

37、语句一般在进行数据初始化时使用。这类语句一般在进行数据初始化时使用。 修改记录时可以通过约束和触发器实现数据完整性。修改记录时可以通过约束和触发器实现数据完整性。UPDATE Goods SET g_Discount=0.8,g_ProduceDate=2007-07-013、修改所有记录并指定多项修改、修改所有记录并指定多项修改二、使用T-SQL进行记录操作 2022-4-14SQL ServerSQL Server案例教程(案例教程(20082008版)版) 使用使用T-SQL语句完成表中记录的删除操作,语句完成表中记录的删除操作,包括删除指定记录和删除所有记录。包括删除指定记录和删除所有

38、记录。(三)使用(三)使用T-SQL删除记录删除记录二、使用T-SQL进行记录操作 2022-4-14SQL ServerSQL Server案例教程(案例教程(20082008版)版)基本语句格式:基本语句格式:DELETEDELETEFROM FROM WHERE WHERE 二、使用T-SQL进行记录操作 2022-4-14SQL ServerSQL Server案例教程(案例教程(20082008版)版) 【提示提示】 如果是外键约束,则可以先将外键表中对应的记录删除,然如果是外键约束,则可以先将外键表中对应的记录删除,然后再删除主键表中的记录。后再删除主键表中的记录。 记录删除后不能

39、被恢复。记录删除后不能被恢复。 1、 删除指定记录删除指定记录DELETE FROM Goods WHERE g_ID=040002二、使用T-SQL进行记录操作 2022-4-14SQL ServerSQL Server案例教程(案例教程(20082008版)版) 【提示提示】 DELETEDELETE删除操作被当做是系统事务,删除操作可以被撤销。删除操作被当做是系统事务,删除操作可以被撤销。 TRUNCATE TABELTRUNCATE TABEL则不是,删除操作不能被撤销。则不是,删除操作不能被撤销。 2、删除所有记录、删除所有记录DELETE FROM Goods 二、使用T-SQL进

40、行记录操作 2022-4-14SQL ServerSQL Server案例教程(案例教程(20082008版)版)【课堂实践3】操作要求:操作要求:(1 1)使用)使用T-SQLT-SQL语句在语句在WebShopWebShop数据库中的会员信息表数据库中的会员信息表CustomersCustomers和员工信息表和员工信息表EmployeesEmployees中添加完整的样本记录。中添加完整的样本记录。(2 2)将姓名为)将姓名为“吴波吴波”的会员名称修改为的会员名称修改为“吴海波吴海波”。(3 3)将所有籍贯为)将所有籍贯为“湖南株洲湖南株洲”的会员的邮政编码修改为的会员的邮政编码修改为“

41、412000”412000”。(4 4)将所有会员的密码初始化为)将所有会员的密码初始化为“1234”1234”。(5 5)删除)删除“1988”1988”年出生的会员信息。年出生的会员信息。2022-4-14SQL ServerSQL Server案例教程(案例教程(20082008版)版)SQL Server 2008SQL Server 2008中的数据库完整性中的数据库完整性 一、数据完整性概述。一、数据完整性概述。二、列约束和表约束。二、列约束和表约束。三、允许值约束。三、允许值约束。四、四、DEFAULT定义。定义。五、五、CHECK约束。约束。六、六、PRIMARY KEY约束。

42、约束。七、七、FOREIGNKEY约束。约束。八、八、UNIQUE约束。约束。四类完整性四类完整性(1)实体完整性。)实体完整性。(2)域完整性。)域完整性。(3)引用完整性。)引用完整性。(4)用户定义完整性。)用户定义完整性。2022-4-14SQL ServerSQL Server案例教程(案例教程(20082008版)版)【提示提示】 添加约束可以使用添加约束可以使用CREATE TABLE在创建表时创建,也可在创建表时创建,也可以使用以使用ALTER TABLE修改表时添加。修改表时添加。使用使用ALTER TABLE添加约束时,使用添加约束时,使用【WITH NOCHECK】选项可

43、以实现对表中已有的数据不强制应用约束选项可以实现对表中已有的数据不强制应用约束(CHECK和和FOREIGH KEY)。)。使用使用ALTER TABLE添加约束时,使用添加约束时,使用【NOCHECK】选项选项可以实现禁止在修改和添加数据时应用约束(可以实现禁止在修改和添加数据时应用约束(CHECK和和FOREIGH KEY)。)。删除约束只能使用删除约束只能使用ALTER TABLE语句完成。语句完成。二、列约束和表约束二、列约束和表约束2022-4-14SQL ServerSQL Server案例教程(案例教程(20082008版)版)三、允许空值约束三、允许空值约束 : 应用允许空值约

44、束实施数据完整性。应用允许空值约束实施数据完整性。2022-4-14SQL ServerSQL Server案例教程(案例教程(20082008版)版)(一)使用(一)使用 SQL Sever Management Studio 管理管理 NOT NULL 约束约束三、允许空值约束三、允许空值约束 :2022-4-14SQL ServerSQL Server案例教程(案例教程(20082008版)版) 在使用在使用CREATE TABLE创建表和使用创建表和使用ALTER TABLE修改表时,都可以创建修改表时,都可以创建NOT NULL约束。对于商品信约束。对于商品信息表息表Goods中的中

45、的g_Name(商品名)、(商品名)、g_Price(价格)和(价格)和g_Number(数量)等列不能为空,否则该记录没有意义。可(数量)等列不能为空,否则该记录没有意义。可以在创建以在创建Goods表时为这些列设置表时为这些列设置NOT NULL约束,也可以使约束,也可以使用用ALTER TABLE语句修改表时实现。语句修改表时实现。 (二)使用(二)使用 T-SQL 管理管理 NOT NULL 约束约束三、允许空值约束三、允许空值约束 :2022-4-14SQL ServerSQL Server案例教程(案例教程(20082008版)版)四、四、DEFAULT定义定义 应用应用DEFAU

46、LT定义实施数据完整性。定义实施数据完整性。2022-4-14SQL ServerSQL Server案例教程(案例教程(20082008版)版)(一)使用(一)使用 SQL Sever Management Studio 管理管理 DEFAULT 定定义义(二)使用(二)使用 T-SQL 语句管理语句管理 DEFAULT 定义定义 【提示提示】 若要修改若要修改 DEFAULT 定义,必须首先删除现有的定义,必须首先删除现有的 DEFAULT 定义,然定义,然后重新创建。后重新创建。 默认值必须与要应用默认值必须与要应用 DEFAULT 定义的列的数据类型相配。例如,定义的列的数据类型相配。

47、例如,int 列的默认值必须是整数,而不能是字符串。列的默认值必须是整数,而不能是字符串。 可以使用可以使用getdate( )函数替代函数替代“2007-07-01”,表示默认值必须是,表示默认值必须是整数,而不能是字符串。整数,而不能是字符串。四、四、DEFAULT定义定义2022-4-14SQL ServerSQL Server案例教程(案例教程(20082008版)版)五、五、CHECK约束约束 应用应用CHECK约束实施数据完整性。约束实施数据完整性。2022-4-14SQL ServerSQL Server案例教程(案例教程(20082008版)版)(一)使用(一)使用SQL Se

48、ver Management Studio管理管理CHECK约束。约束。【提示提示】 可以将多个可以将多个CHECK约束应用于单个列。约束应用于单个列。 可以通过在表级创建可以通过在表级创建CHECK约束,将一个约束,将一个CHECK约束应用于约束应用于多个列。多个列。 CHECK约束不接受计算结果为约束不接受计算结果为False的值。的值。 在执行添加和修改记录语句时验证在执行添加和修改记录语句时验证CHECK约束,执行删除记约束,执行删除记录语句时不验证录语句时不验证CHECK约束。约束。 请读者自行设置语句验证请读者自行设置语句验证CHECK 约束。约束。五、五、CHECK约束约束 20

49、22-4-14SQL ServerSQL Server案例教程(案例教程(20082008版)版)(二)(二) 使用使用T-SQL管理管理CHECK约束。约束。【提示提示】 也可以使用也可以使用CHECK期期TABLE语句在创建表时指定约束。语句在创建表时指定约束。 可以使用可以使用“ALTER TABLE Goods DROP CONSTRAINT ck_Discount” 删除删除CHECK约束。约束。五、五、CHECK约束约束 2022-4-14SQL ServerSQL Server案例教程(案例教程(20082008版)版)【课堂实践4】操作要求:操作要求:(1 1)将)将WebSh

50、opWebShop数据库中的会员信息表数据库中的会员信息表CustomersCustomers和员工信息表和员工信息表EmployeesEmployees中的各列均设置为中的各列均设置为NOT NULLNOT NULL。 (2 2)为会员信息表)为会员信息表CustomersCustomers设置以下设置以下DEFAULTDEFAULT定义:定义: 性别(性别(c_Genderc_Gender)默认为)默认为“男男”( 使用使用SQL Server SQL Server Management StudioManagement Studio完成)。完成)。 用户类别(用户类别(c_Typec_T

51、ype)默认为)默认为“普通用户普通用户”(使用(使用T-SQLT-SQL完完成)。成)。2022-4-14SQL ServerSQL Server案例教程(案例教程(20082008版)版)(3 3)为会员信息表)为会员信息表CustomersCustomers设置以下设置以下CHECKCHECK约束。约束。 会员性别(会员性别(c_Genderc_Gender)只能输入)只能输入“男男”或或“女女”,并且默,并且默认为认为“男男”(使用(使用SQL Server Management StudioSQL Server Management Studio完成)。完成)。 身份证号(身份证号(

52、c_CardIDc_CardID)只能为)只能为1515位或位或1818位(使用位(使用T-SQLT-SQL完完成)。成)。 电子邮箱(电子邮箱(c_E-mailc_E-mail)中必须包含)中必须包含“”符号(使用符号(使用T-SQLT-SQL完成)。将姓名为完成)。将姓名为“吴波吴波”的会员名称修改为的会员名称修改为“吴海波吴海波”。【课堂实践4】2022-4-14SQL ServerSQL Server案例教程(案例教程(20082008版)版)六、六、PRIMARY KEY约束约束 应用应用PRIMARY KEY约束实施数约束实施数据完整性。据完整性。2022-4-14SQL Serv

53、erSQL Server案例教程(案例教程(20082008版)版)(一)使用(一)使用SQL Sever Management Studio管理管理PRIMARY KEY约束。约束。六、六、PRIMARY KEY约束约束选择设置主键选择设置主键 创建创建PRIMARY KEY约束约束 2022-4-14SQL ServerSQL Server案例教程(案例教程(20082008版)版)(二)使用(二)使用T-SQL创建创建PRIMARY KEY 约束。约束。六、六、PRIMARY KEY约束约束CONSTRAINT 约束名约束名 PRIMARY KEY(列或列的组合)(列或列的组合)定义定义

54、PRIMARY KEY约束的基本语句格式:约束的基本语句格式: 2022-4-14SQL ServerSQL Server案例教程(案例教程(20082008版)版)【提示提示】 在本书的例子中设置了在本书的例子中设置了d_ID作为作为OrderDetails表的主键。表的主键。 作为表级约束必须指明主键的名称。作为表级约束必须指明主键的名称。 如果为表指定了如果为表指定了 PRIMARY KEY 约束,则约束,则 SQL Server 2008 数据库引擎将通过为主键列创建唯一索引来强制数数据库引擎将通过为主键列创建唯一索引来强制数据的唯一性。当在查询中使用主键时,此索引还可用来对数据的唯一

55、性。当在查询中使用主键时,此索引还可用来对数据进行快速访问。据进行快速访问。 如果对多列定义了如果对多列定义了 PRIMARY KEY 约束,则一列中的值可约束,则一列中的值可能会重复,但来自能会重复,但来自 PRIMARY KEY 约束定义中所有列的任约束定义中所有列的任何值组合必须唯一。何值组合必须唯一。 六、六、PRIMARY KEY约束约束2022-4-14SQL ServerSQL Server案例教程(案例教程(20082008版)版)七、七、FOREIGN KEY约束约束主键和外键的关系主键和外键的关系 2022-4-14SQL ServerSQL Server案例教程(案例教程

56、(20082008版)版)七、七、FOREIGN KEY约束约束 应用应用FOREIGN KEY约束实施数据完整约束实施数据完整性。性。2022-4-14SQL ServerSQL Server案例教程(案例教程(20082008版)版)(一)(一) 使用使用SQL Sever Management Studio管理管理FOREIGN KEY约束。约束。七、七、FOREIGN KEY约束约束2022-4-14SQL ServerSQL Server案例教程(案例教程(20082008版)版)【提示提示】 FOREIGN KEYX约束并不仅仅可以与另一表的约束并不仅仅可以与另一表的PRIMARY KEY约束约束相链接,它还可以定义为引用另一表的相链接,它还可以定义为引用另一表的UNKQUE 约束。约束。 FOREIGN KEY 约束也可以引用同一数据库的表中的列或同一表中的约束也可以引用同一数据库的表中的列或同一表中的列。列。 表中包含的表中包含的 FOREIGN KEY 约束不要超过约束不要超过 253 个,并且引用该表个,并且引用该表的的 FOREIGN KEY 约束也不要超过约束也不要超过 253 个。个。七、七、FOREIGN

温馨提示

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

评论

0/150

提交评论