1、字段的数据类型
数字数据类型
1)整数数据类型:bigint、int、smallint、tinyint。
2)decimal和numeric
3)money和smallmoney
4)float和real数据库类型
5)Bit
字符数据类型
1)char [固定长度]
2)Varchar [可变长度]
3)Text [大文本数据]
4)Nchar
5)Nvarchar
6)Ntext
1-3项是非unicode字符,4-6是unicode字符
日期和时间数据库类型
日期和时间数据库包括datetime和smalldatetime两种类型。这两种类型的差别在于其表示的日期和时间范围不同,时间精度也不同。datetime所存储的日期范围是从1753年1月1日开始至9999年12月31日结束,时间精确度是3.33毫秒。使用small数据类型时,所存储的日期范围是1900年1月1日开始到2079年12月31日结束,时间精确度是1分钟。
二进制数据类型
二进制数据类型包括binary、varbinay、image等3种数据类型,可以用于存储二进制数据。其中binary用于存储固定长度的二进制数据,varbinary用于存储可变长度的二进制数据。binary(n)和varbinary(n)的数据长度由n值为决定,n的取值范围是1至8000。image数据类型用于存储图像信息。
专用数据类型
除前面介绍的数据类型之外,Microsoft sql server 2008系统还提供了cursor、sql_variant、table、timestamp、uniqueidentifier、xml等6种特殊用途的本机数据类型。使用这些数据类型可以完成特殊数据对象的定义、存储和使用。
2、CREATE TABLE语句
(
UserID int IDENTITY(1,1) PRIMARY KEY,
UserName nvarchar(20) NULL,
Password nvarchar(32) NULL,
Sex tinyint NOT NULL DEFAULT 0
)
3、创建数据表(略)
4、使用临时表
临时表
临时表,顾名思义,是临时创建的、不能永久保存的表。临时表又可以分为本地临时表和全局临时表。本地临时表的名称以单个数字符号#打头,它们仅对当前的用户连接是可见的,当用户从SQLServer2008实体断开连接时自动被删除;全局临时表的名称以两个数字符号##打头,创建后对任何用户都是可见的,当所有引用该表的用户从SQLServer2008断开连接时被删除。
(
uid int not null,
uname nvarchar(20) not null,
password nvarchar(32) not null,
sex nvarchar(2) not null
)
select * from #Tmp_UserTest
5、设置标识字段(略)
6、使用默认值(略)
7、创建约束
8、修改表
1)重命名:sp_rename T_User, T_Member
2)新增列:
add age int not null default 0
3)修改列的数据类型:
alter column Password nvarchar(32) not null
4)删除列:
drop column password
5)更多参考Sql Server 2008 联机证书的 alter table帮助
9、用户自定义数据类型
1)用户自己设计并实现的数据类型就称为用户自定义数据类型,即使这些数据类型基于系统数据类型。当几个表中必须存储同一种数据类型时,并且为保证这些列有相同的数据类型、长度和可空性时,可以使用用户定义的数据类型。
2)当创建用户定义的数据类型时,必须提供三个数:
a)数据类型的名称
b)所基于的系统数据类型
c)数据类型的可空性
10、使用规则
概述
规则是单独的Sql Server对象,可以关联到一个或几个表中的一列或几列。它可以使用多种方式完成对数据值的检验,可以使用函数返回验证信息,也可以使用关键字BETWEEN、LIKE 和IN完成对输入数据的检查。
规则的作用是 CHECK 约束的部分功能相同,在向表的某列插入或更新数据时,用它来限制输入的新值的取值范围。规则与CHECK约束的不同主要表现在以下几个方面:
1)CHEKC约束是用CREATE TABLE语句在创建表时指定的,而规则需要作为单独的数据库对象来实现。
2)在一列上只能使用一个规则,但可以使用多个CHECK约束。
3)规则可以应用于多个列,还可以应用于用户自定义的数据类型,而CHECK约束只能应用于它定义的列。
创建规则的语法格式
CREATE RULE rule_name AS condition_expression
AS
@value between 18 and 65
sp_bindrule age_rule,'T_Member.age'
11、解除和删除规则
注意:在删除规则之前必须解除规则与列的绑定
解除规则绑定语法:
sp_unbindrule [@objectname=]<object_name>
[,[@futureonly=]<futureonly_flag]
drop rule age_rule
12、数据关系图(略)