火龙果-第3章_SQL表的管理_第1页
火龙果-第3章_SQL表的管理_第2页
火龙果-第3章_SQL表的管理_第3页
火龙果-第3章_SQL表的管理_第4页
火龙果-第3章_SQL表的管理_第5页
已阅读5页,还剩38页未读 继续免费阅读

下载本文档

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

文档简介

1、1 SQL(Structured Query Language,结构查询语言)是一个功能强大的数据库语言。SQL通常使用于数据库的通讯。ANSI(美国国家标准学会)声称,SQL是关系数据库管理系统的标准语言。SQL语句通常用于完成一些数据库的操作任务,比如在数据库中更新数据,或者从数据库中检索数据。使用SQL的常见关系数据库管理系统有:Oracle、 Sybase、 Microsoft SQL Server、 Access、 Ingres等等。虽然绝大多数的数据库系统使用SQL,但是它们同样有它们自立另外的专有扩展功能用于它们的系统。但是,标准的SQL命令,比如 Select、 Insert、

2、 Update、 Delete、 Create和 Drop常常被用于完成绝大多数数据库的操作。2SQL功能强大,但是概括起来,它可以分成以下几组:DML(Data Manipulation Language,数据操作语言),数据操作语言): 用于检索或者修改数据;用于检索或者修改数据;DDL(Data Definition Language,数据定义语言),数据定义语言): 用于定义数据的结构,比如用于定义数据的结构,比如 创建、修改或者删除数据库对象;创建、修改或者删除数据库对象;DCL(Data Control Language,数据控制语言),数据控制语言): 用于定义数据库用户的权限。

3、用于定义数据库用户的权限。3DML组组可以细分为以下的几个语句:SELECT:用于检索数据; INSERT:用于增加数据到数据库;UPDATE:用于从数据库中修改现存的数据 DELETE:用于从数据库中删除数据。 DDL语句语句可以用于创建用户和重建数据库对象。下面是DDL命令:CREATE TABLE ALTER TABLE DROP TABLE CREATE INDEX DROP INDEXDCL命令命令用于创建关系用户访问以及授权的对象。下面是几个DCL命令:ALTER PASSWORD GRANT REVOKE CREATE SYNONYM4l3.1 SQL的命名规范和数据类型的命名规

4、范和数据类型 l3.2 创建表创建表 l3.3 创建、删除和修改约束创建、删除和修改约束 l3.4 增加、删除和修改字段增加、删除和修改字段 l3.5 查看表格查看表格 l3.6 创建和删除索引创建和删除索引l3.7 删除表删除表 5lSQL的命名规范的命名规范标志符格式标志符格式:(:(最多容纳最多容纳128128个字符个字符) )且不区分大小写且不区分大小写。标志符的首字母必须是:标志符的首字母必须是:2626个英文字母个英文字母a-za-z和和A-Z,A-Z,以及其他一些语言字符以及其他一些语言字符, ,如如: :汉字。或者是汉字。或者是下划线下划线“_ _”、“ ”、“# #”。标志符

5、的首字母后的字符可以是:标志符的首字母后的字符可以是: 26 26个英文字母个英文字母a-za-z和和A-Z,A-Z,以及其他一些语言字符以及其他一些语言字符, ,如汉字。或者是下如汉字。或者是下划线划线“_ _”、“ ”、“# #”或或“$ $”。标志符不允许是标志符不允许是T-SQLT-SQL的保留字。的保留字。标志符不允许有空格或特殊字符。标志符不允许有空格或特殊字符。6l1. 1. 整型数据类型整型数据类型l2. 2. 浮点数据类型浮点数据类型 l3. 3. 字符数据类型字符数据类型 l4. 4. 日期和时间数据类型日期和时间数据类型 l5. 5. 文本和图形数据类型文本和图形数据类型

6、 6. 6. 货币数据类型货币数据类型 7. 7. 位数据类型位数据类型 8. 8. 二进制数据类型二进制数据类型 9. 9. 特殊数据类型特殊数据类型 10. 10. 新增数据类型新增数据类型71 1整型数据类型整型数据类型 整型数据类型是最常用的数据类型之一,它主要用整型数据类型是最常用的数据类型之一,它主要用来存储数值,可以直接进行数据运算,而不必使用函数转来存储数值,可以直接进行数据运算,而不必使用函数转换。换。l(1 1)intint(integerinteger):):4 4个字节个字节l(2 2)Smallint Smallint : 2 2个字节个字节l(3 3)Tinyint

7、 Tinyint : 1 1个字节个字节 请大家自己计算它们的取值范围请大家自己计算它们的取值范围82 2浮点数据类型浮点数据类型l用于存储十进制小数用于存储十进制小数 l(1 1)RealReal:4 4个字节的,最大个字节的,最大7 7位精确位数,位精确位数,不包括小数点不包括小数点。 对于超出数据表示范围的对于超出数据表示范围的采用四舍五入的方式采用四舍五入的方式 例例1 1 如指定某列为如指定某列为RealReal型数据类型,型数据类型,8.43687688.4368768 那么该列实际存储的是:那么该列实际存储的是: 8.436877 8.436877。 例例2 2 如指定某列为如指

8、定某列为RealReal型数据类型,型数据类型,84.36876884.368768 那么该列实际存储的是:那么该列实际存储的是: 84.36877 84.36877。l(2 2)FloatFloat 可以精确到第可以精确到第1515位小数,其范围从位小数,其范围从-1.79E-308-1.79E-308到到1.79E+3081.79E+308。9l(3 3)DecimalDecimal和和numericnumeric:可以提供小数所需要的实:可以提供小数所需要的实际存储空间,可以用际存储空间,可以用5-175-17个字节来存储。也可以将其个字节来存储。也可以将其写为写为decimaldeci

9、mal(p p,s s)的形式。)的形式。(1p=38(1p=38;0=s=p)0=s=p) 注意:注意:数值类型的总位数不包括小数点数值类型的总位数不包括小数点。 例如:例如: decimal decimal(1010,5 5),表示共有),表示共有1010位数,其中整数位数,其中整数5 5位,位,小数小数5 5位。位。 10 例例1 1 如指定某列的精度为如指定某列的精度为6 6,小数位数为,小数位数为3 3,即,即decimal(6,3)decimal(6,3),则向某记,则向某记录的该例附值录的该例附值86.43687686.436876, 如果使用企业管理器录入的方法:如果使用企业管

10、理器录入的方法: 那么该列实际存储的是:那么该列实际存储的是:86.43686.436。 如果使用如果使用T-SQLT-SQL语句的方法:语句的方法: 例如代码如下:例如代码如下: Insert Into Insert Into 表名表名 Values(86.436876) Values(86.436876) 该列实际存储的是:该列实际存储的是:86.43786.437请大家试验一下上题如果输入请大家试验一下上题如果输入1234.567的结果是什么?的结果是什么?将将 numeric 转换为数据类型转换为数据类型 numeric 时出现算术溢出时出现算术溢出错误。语句已终止。错误。语句已终止。

11、11l如指定某列的精度为如指定某列的精度为8 8,小数位数为,小数位数为3 3,即,即numeric(8,3)numeric(8,3),则向某记录,则向某记录的该例附值的该例附值12685.56498612685.564986, 如果使用企业管理器录入的方法:如果使用企业管理器录入的方法: 那么该列实际存储的是:那么该列实际存储的是: 12685.564 12685.564 。 如果使用如果使用T-SQLT-SQL语句的方法:语句的方法: 例如代码如下:例如代码如下: Insert Into Insert Into 表名表名 Values(12685.564986) Values(12685.

12、564986) 该列实际存储的是:该列实际存储的是: 12685.565 12685.565注意:数值型数据时,其小数位数必须小于精度;注意:数值型数据时,其小数位数必须小于精度;注意什么时候进行四舍五入。注意什么时候进行四舍五入。123 3字符数据类型字符数据类型 用来存储各种字母、数字符号和特殊符号。在使用时用来存储各种字母、数字符号和特殊符号。在使用时需要在其前后加上英文单引号或者双引号。需要在其前后加上英文单引号或者双引号。 (1 1)CharChar:占用:占用1 1个字节。个字节。 其定义形式为:其定义形式为:charchar(n n) 如果实际数据的字符长度短于给定的最大长度,则

13、多如果实际数据的字符长度短于给定的最大长度,则多余的字节会被空格填充。余的字节会被空格填充。如果实际数据的字符长度超过了如果实际数据的字符长度超过了给定的最大长度,则超过的字符将会被截断。使用双引号给定的最大长度,则超过的字符将会被截断。使用双引号或单引号将字符型变量括起来。或单引号将字符型变量括起来。 n n的取值为的取值为1-80001-8000。默认默认n n的值为的值为1 1。13(2 2)VarcharVarchar:可以存储长达可以存储长达80008000个字符的可变长度字符串,和个字符的可变长度字符串,和charchar类型不同类型不同varcharvarchar类型根据输入数据

14、的实际长度而变化。类型根据输入数据的实际长度而变化。 其定义形式为:其定义形式为:varcharvarchar(n n) 当每列数据没有达到规定的字符数时,并不会在多余的字当每列数据没有达到规定的字符数时,并不会在多余的字节上填充空格。可以有效的节省空间。节上填充空格。可以有效的节省空间。(3 3)NcharNchar:采用采用UnicodeUnicode(统一字符编码标准)字符集每个(统一字符编码标准)字符集每个UnicodeUnicode字符用两个字节为一个存储单位。范围是字符用两个字节为一个存储单位。范围是1-40001-4000。 其定义形式为:其定义形式为:ncharnchar(n

15、n)(3 3)NvarcharNvarchar:使用使用UnicodeUnicode字符集的字符集的VarcharVarchar数据类型。数据类型。 其定义形式为:其定义形式为:nvarcharnvarchar(n n),范围是),范围是0-40000-4000。14 例例1 1 某例的数据类型为某例的数据类型为 char(18) char(18),而输入的字符串,而输入的字符串为为“shanghaishanghai”,则存储的字符是,则存储的字符是shanghaishanghai。( (表示空格表示空格) ) 例例2 2 表中某例的数据类型为表中某例的数据类型为varchar(18)varc

16、har(18),而输入的,而输入的字符串为字符串为“shanghaishanghai”,则存储的字符是,则存储的字符是shanghaishanghai。注意:若存储的字符串长度不足注意:若存储的字符串长度不足n n时,时,则在串尾添加空格。则在串尾添加空格。注意:若存储的字符串长度不足注意:若存储的字符串长度不足n n时,按实际时,按实际长度输入。长度输入。153 3日期和时间数据类型日期和时间数据类型(1 1)DatetimeDatetime:占用:占用8 8个字节。个字节。 用于存储日期和时间的结合体,可以存储从公元用于存储日期和时间的结合体,可以存储从公元17531753年年1 1月月1

17、 1日零时起日零时起 公元公元99999999年年1212月月3131日日2323时时5959分分5959秒之间秒之间的所有日期和时间,其精确度可达三百分之一秒,即的所有日期和时间,其精确度可达三百分之一秒,即3.333.33毫秒。毫秒。 当存储当存储datetimedatetime数据类型时,默认的格式是:数据类型时,默认的格式是:MM DD MM DD YYYY hh:mm A.M./P.MYYYY hh:mm A.M./P.M。当插入数据或者在其它地方使用。当插入数据或者在其它地方使用datetimedatetime类型时,需要用类型时,需要用单引号单引号把它括起来。把它括起来。16 默

18、认默认January 1,1900 12:00 A.MJanuary 1,1900 12:00 A.M。 可以接受的输入格式如下:可以接受的输入格式如下: Jan 3 1999 Jan 3 1999、JAN 3 1999JAN 3 1999 January 3 1999 January 3 1999 Jan 1999 3 Jan 1999 3 1/1/1990 1999-1-1 1/1/1990 1999-1-1 1999 3 Jan 1999 3 Jan和和1999 Jan 31999 Jan 3 datetime datetime数据类型允许使用数据类型允许使用/ /、- -和和. .作为

19、不同时间单位间的分隔符。作为不同时间单位间的分隔符。(2 2)SmalldatetimeSmalldatetime:存储从:存储从19001900年年1 1月月1 1日到日到20792079年年6 6月月6 6日内的日期。日内的日期。占占4 4个字节。个字节。 在没有指定小时以上的精度的数据时,会自动设置在没有指定小时以上的精度的数据时,会自动设置datetimedatetime和和smalldatetimesmalldatetime数据的时间为数据的时间为00:00:0000:00:00。175 5文本和图形数据类型文本和图形数据类型(1 1)TextText:容量可以在:容量可以在1-21

20、-23131个字节。个字节。 在定义在定义TextText数据类型时,不需要指定数据长度,数据类型时,不需要指定数据长度,SQL ServerSQL Server会根据数据的长度自动为其分配空间。会根据数据的长度自动为其分配空间。(2 2)ntextntext:采用:采用unicodeunicode标准字符集,用于存储大容量标准字符集,用于存储大容量文本数据。其理论上的容量为文本数据。其理论上的容量为2G2G个字节。个字节。(3 3)ImageImage:一组二进制的数据流。用于存储照片、目:一组二进制的数据流。用于存储照片、目录图片或者图画,其理论容量为录图片或者图画,其理论容量为2G2G个

21、字节。个字节。 186 6货币数据类型货币数据类型(1)Money(1)Money:用于存储货币值,数值以一个正数部分和一个:用于存储货币值,数值以一个正数部分和一个小数部分存储在两个小数部分存储在两个4 4字节的整型值中,存储范围为字节的整型值中,存储范围为 -2-26363 - - 2 - - 26363-1-1,精度为货币单位的万分之一。,精度为货币单位的万分之一。(2)Smallmoney:(2)Smallmoney:货币值有两个货币值有两个2 2字节整数组成。字节整数组成。 其存储范围为其存储范围为-213738.3368-213738.3368213738.3367213738.3

22、367。 当为当为moneymoney或或smallmoneysmallmoney的表输入数据时,必须在有的表输入数据时,必须在有效位置前面加一个货币单位符号(如效位置前面加一个货币单位符号(如$ $或其它货币单位的或其它货币单位的记号)。记号)。 197 7位数据类型位数据类型 Bit Bit称为位数据类型,有两种取值:称为位数据类型,有两种取值:0 0和和1 1。 在输入在输入0 0以外的其它值时,系统均把它们当以外的其它值时,系统均把它们当1 1看待。看待。8 8二进制数据类型二进制数据类型(1 1)BinaryBinary: 其定义形式为其定义形式为binarybinary(n n),

23、数据的存储长度是),数据的存储长度是固定的固定的,即,即n+4n+4字节,当字节,当输入的二进制数据长度小于输入的二进制数据长度小于n n时,余下部分填充时,余下部分填充0 0。二进制数据类型的最大。二进制数据类型的最大长度(即长度(即n n的最大值)为的最大值)为8KB8KB,常用于存储图像等数据。,常用于存储图像等数据。(2 2)VarbinaryVarbinary: 其定义形式为其定义形式为varbinaryvarbinary(n n),数据的存储长度是),数据的存储长度是变化的变化的,最大长度不,最大长度不可以超过可以超过8KB8KB。在输入二进制常量时,需在该常量前面加一个前缀。在输

24、入二进制常量时,需在该常量前面加一个前缀0 x0 x。209 9特殊数据类型特殊数据类型(1)Timestamp(1)Timestamp:也称作时间戳数据类型。是一种自动记录时间的数据类:也称作时间戳数据类型。是一种自动记录时间的数据类型,主要用于在数据表中记录其数据的修改时间。它提供数据库范围型,主要用于在数据表中记录其数据的修改时间。它提供数据库范围内的唯一值。内的唯一值。( 2 ) U n i q u e i d e n t i f i e r( 2 ) U n i q u e i d e n t i f i e r : 也 称 作 唯 一 标 识 符 数 据 类 型 。: 也 称 作

25、唯 一 标 识 符 数 据 类 型 。UniqueidentifierUniqueidentifier用于存储一个用于存储一个1616字节长的二进制数据类型,它是字节长的二进制数据类型,它是SQL ServerSQL Server根据计算机网络适配器地址和根据计算机网络适配器地址和CPUCPU时钟产生的全局唯一标时钟产生的全局唯一标识符代码(识符代码(Globally Unique IdentifierGlobally Unique Identifier,简写为,简写为GUIDGUID)。)。 1010新增数据类型新增数据类型(1 1)BigintBigint:占用:占用8 8个字节。个字节。

26、(2 2)sql_variantsql_variant:用于存储除文本、图形数据和:用于存储除文本、图形数据和timestamptimestamp类型数据外类型数据外的其它任何合法的的其它任何合法的SQL ServerSQL Server数据。数据。(3 3)tabletable:用于存储对表或者视图处理后的结果集。:用于存储对表或者视图处理后的结果集。213.1.2 3.1.2 自定义数据类型自定义数据类型 使用企业管理器创建使用企业管理器创建 利用系统存储过程创建利用系统存储过程创建 sp_addtype typename= type, sp_addtype typename= type,

27、 phystype= system_data_type phystype= system_data_type , nulltype= , nulltype= null_typenull_type , owner= , owner= owner_nameowner_name 22ltypetype:指定用户定义的数据类型的名称。:指定用户定义的数据类型的名称。lsystem_data_typesystem_data_type:指定相应的系统提供的数据类型的名称及定义。:指定相应的系统提供的数据类型的名称及定义。注意,不能使用注意,不能使用timestamptimestamp数据类型,当所使用的系

28、统数据类型有数据类型,当所使用的系统数据类型有额外说明时,需要用引号将其括起来。额外说明时,需要用引号将其括起来。lnull_typenull_type:指定用户自定义数据类型的:指定用户自定义数据类型的nullnull属性,其值可以为属性,其值可以为nullnull、not nullnot null或者或者nonullnonull。默认与系统默认的。默认与系统默认的nullnull属性相同。属性相同。lowner_nameowner_name:指定用户自定义数据类型的所有者。:指定用户自定义数据类型的所有者。23删除用户自定义数据删除用户自定义数据 1 1使用企业管理器使用企业管理器 2 2

29、利用系统存储过程利用系统存储过程 sp_droptype typename= sp_droptype typename= typetype 24l表是包含数据库中所有数据的数据库对象,用来存储各种各表是包含数据库中所有数据的数据库对象,用来存储各种各样的信息。样的信息。 l在在SQL Server 2000SQL Server 2000中,一个数据库中最多可以创建中,一个数据库中最多可以创建200200万个万个表,用户创建数据库表时,最多可以定义表,用户创建数据库表时,最多可以定义10241024列,也就是可列,也就是可以定义以定义10241024个字段。个字段。l在同一数据库的不同表中,可以

30、有相同的字段,但在同一个在同一数据库的不同表中,可以有相同的字段,但在同一个表中不允许有相同的字段,而且每个字段都要求数据类型相表中不允许有相同的字段,而且每个字段都要求数据类型相同。同。 lSQL Server 2000SQL Server 2000提供了两种方法创建数据库表,第一种方提供了两种方法创建数据库表,第一种方法是利用企业管理器(法是利用企业管理器(Enterprise ManagerEnterprise Manager)创建表;另一)创建表;另一种方法是利用种方法是利用Transact-SQLTransact-SQL语句中的语句中的createcreate命令创建表。命令创建表。

31、25l在在Enterprise ManagerEnterprise Manager中,展开指定的服务器和数据库,中,展开指定的服务器和数据库,打开想要创建新表的数据库,用右键单击表对象,从弹打开想要创建新表的数据库,用右键单击表对象,从弹出的快捷菜单中选择新建表选项,或者在工具栏中选择出的快捷菜单中选择新建表选项,或者在工具栏中选择图标,就会出现新建表对话框,在该对话框中,可以定图标,就会出现新建表对话框,在该对话框中,可以定义列的以下属性:义列的以下属性:列名称、数据类型、长度、精度、小列名称、数据类型、长度、精度、小数位数、是否允许为空、缺省值、标识列、标识列的初数位数、是否允许为空、缺省

32、值、标识列、标识列的初始值、标识列的增量值和是否有行的标识。始值、标识列的增量值和是否有行的标识。 然后根据提然后根据提示进行设置。示进行设置。26例子:例子:具体语法请看课本或者联机丛书。具体语法请看课本或者联机丛书。 USE Sample Create Table customers ( CustomerID int identity(1,1) primary key, FirstName varchar(20) not null, LastName varchar(20) not null, Stu_Sex bit not null Constraint Sex check(Stu_Se

33、x in(1,0), Address varchar(100), City varchar(20), Tel varchar(20) unique, Company varchar(20), Birthday datetime, Type tinyint default 1 )“CustomerIDCustomerID”列列定为标识列,种子定为标识列,种子值为值为1 1,增量为,增量为1 1。添加性别检查约束,此列要添加性别检查约束,此列要求非空。约束的名称叫求非空。约束的名称叫Sex.Sex.273.3.1 3.3.1 约束约束是是SQL ServerSQL Server提供的自动保持数据库

34、完整性的一种方法:提供的自动保持数据库完整性的一种方法:1 1)主键)主键(Primary Key)约束:约束:一列或多列的组合唯一标识一行。一列或多列的组合唯一标识一行。 实现实体完整性实现实体完整性( (表中所有行唯一表中所有行唯一) )。2 2)外键)外键(Foreign Key)约束:约束:一列或多列的组合。实现参照完整性一列或多列的组合。实现参照完整性( (两个以上两个以上的表的数据一致性维护的表的数据一致性维护) )。外部键约束不能自动创建索引,需要用户手动创建。外部键约束不能自动创建索引,需要用户手动创建。 3 3)唯一性)唯一性(Unique)约束:约束:保证非主键的列不重复。

35、保证非主键的列不重复。4 4)检查)检查(Check)约束:约束:限制列的取值。限制列的取值。5 5)默认值)默认值(Default):当字段没有明确给值时,有系统自动给出。当字段没有明确给值时,有系统自动给出。6 6)空值)空值(NULL):字段允许空,可以不输入值,否则必须有值。字段允许空,可以不输入值,否则必须有值。 28外部键约束用于强制参照完整性,提供单个字段或者多个字段的参照完整性。外部键约束用于强制参照完整性,提供单个字段或者多个字段的参照完整性。当使用外部键约束时,应该考虑以下几个因素:当使用外部键约束时,应该考虑以下几个因素:外部键约束提供了字段参照完整性。外部键约束提供了字

36、段参照完整性。外部键从句中的字段数目和每个字段指定的数据类型必须和外部键从句中的字段数目和每个字段指定的数据类型必须和REFERENCESREFERENCES从句从句中的字段相匹配。中的字段相匹配。外部键约束不能自动创建索引,需要用户手动创建。外部键约束不能自动创建索引,需要用户手动创建。用户想要修改外部键约束的数据,必须有对外部键约束所参考表的用户想要修改外部键约束的数据,必须有对外部键约束所参考表的SELECTSELECT权权限或者限或者REFERENCESREFERENCES权限。权限。参考同一表中的字段时,必须只使用参考同一表中的字段时,必须只使用REFERENCESREFERENCE

37、S子句,不能使用外部键子句。子句,不能使用外部键子句。一个表中最多可以有一个表中最多可以有3131个外部键约束。个外部键约束。在临时表中,不能使用外部键约束。在临时表中,不能使用外部键约束。主键和外部键的数据类型必须严格匹配。主键和外部键的数据类型必须严格匹配。293.4.1 3.4.1 利用企业管理器增加、删除和修改字段利用企业管理器增加、删除和修改字段 3.4.2 3.4.2 利用利用Transact-SQLTransact-SQL语言的语言的ALTER TABLEALTER TABLE子句子句增增 加、删除和修改字段加、删除和修改字段 30例:例:A. A. 更改表以添加新列更改表以添加

38、新列 下例添加一个允许空值的列,而且没有通过下例添加一个允许空值的列,而且没有通过 DEFAULT DEFAULT 定义提供值。定义提供值。 各行的新列中的值将为各行的新列中的值将为 NULL NULL。 CREATE TABLE testa ( column_a INT) GO 新建一个表新建一个表 ALTER TABLE testa ADD column_b VARCHAR(20) NULL GO新建一个列新建一个列 EXEC sp_help testa GO 查看一个表查看一个表 DROP TABLE testa GO 删除一个表删除一个表 注:添加的字段必须为允许空字段或者是默认字段。

39、注:添加的字段必须为允许空字段或者是默认字段。31B. 更改表以除去列更改表以除去列 下例修改表以删除一列。下例修改表以删除一列。 CREATE TABLE testb ( column_a INT, column_b VARCHAR(20) NULL) GO ALTER TABLE testb DROP COLUMN column_b GO EXEC sp_help testb GO DROP TABLE testb GO 32设已经在数据库设已经在数据库StuStu中创建表中创建表Stu_infoStu_info。 例例11 在表在表Stu_InfoStu_Info中增加一个新列中增加一个

40、新列奖学金等级。奖学金等级。 USE Stu ALTER TABLE Stu_Info ADD 奖学金等级奖学金等级 tinyint NULL GO33 例例22 修改表修改表Stu_InfoStu_Info中已有列的属性,将名为中已有列的属性,将名为“姓名姓名”的列的长的列的长 度由原来的度由原来的8 8改为改为1010,将名为,将名为“出生时间出生时间”的列的数的列的数 据类型由原来的据类型由原来的smalldatetimesmalldatetime改为改为datetimedatetime。USE StuALTER TABLE Stu_InfoALTER COLUMN 姓名姓名 char(

41、10) orALTER COLUMN 出生时间出生时间 datetimeGO添加列时是否可以添加添加列时是否可以添加“Not Not NullNull”和和“DefaultDefault”约束约束34 例例33 在表在表stu_infostu_info中删除名为奖学金等级的列。中删除名为奖学金等级的列。USE StuALTER TABLE Stu_InfoDROP COLUMN 奖学金等级奖学金等级GO35 例例44 在表在表Stu_InfoStu_Info中删除一个带有约束的列。中删除一个带有约束的列。USE StuALTER TABLE Stu_InfoDROP CONSTRAINT 约束

42、名称约束名称GOALTER TABLE Stu_InfoDROP COLUMN 字段名字段名GO36例例5 在表在表stu_info中添加一个带主键约束的列。中添加一个带主键约束的列。alter table testadd constraint pk primary key(stu_id)37例例6 在表在表stu_info中添加一个带检查约束的列。中添加一个带检查约束的列。ALTER TABLE stu_info WITH NOCHECK ADD CONSTRAINT ss CHECK (stu_sex in (男男,女女)利用利用 WITH NOCHECK WITH NOCHECK 来防止对现有行验证约束,从来防止对现有行验证约束,从而允许该约束的添加。而允许该约束的添加。 WITH CHECK WITH CHECK 和和 WITH NOCHECK WITH NOCHECK 子句不能用于子句不能用于 PRIMARY KEY PRIMARY KEY 和和 UNIQUE UNIQUE 约束。约束。383.5.1

温馨提示

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

评论

0/150

提交评论