SQL_Server_2008完全学习之第四章管理数据表

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语句

Create Table T_User
(
    UserID int IDENTITY(1,1PRIMARY KEY,
    UserName nvarchar(20NULL,
    Password nvarchar(32NULL,
    Sex tinyint NOT NULL DEFAULT 0
)

3、创建数据表(略)

4、使用临时表

临时表

临时表,顾名思义,是临时创建的、不能永久保存的表。临时表又可以分为本地临时表和全局临时表。本地临时表的名称以单个数字符号#打头,它们仅对当前的用户连接是可见的,当用户从SQLServer2008实体断开连接时自动被删除;全局临时表的名称以两个数字符号##打头,创建后对任何用户都是可见的,当所有引用该表的用户从SQLServer2008断开连接时被删除。

create table #Tmp_UserTest
(
    uid int not null,
    uname nvarchar(20not null,
    password nvarchar(32not null,
    sex nvarchar(2not null
)

select * from #Tmp_UserTest

5、设置标识字段(略)

6、使用默认值(略)

7、创建约束


8、修改表

1)重命名:sp_rename T_User, T_Member

2)新增列:

alter table t_member
add age int not null default 0

3)修改列的数据类型:

alter table t_member
alter column Password nvarchar(32not null

4)删除列:

alter table t_member
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

CREATE RULE age_rule
AS
@value between 18 and 65

sp_bindrule age_rule,'T_Member.age'


11、解除和删除规则

注意:在删除规则之前必须解除规则与列的绑定

解除规则绑定语法:

sp_unbindrule [@objectname=]<object_name>

[,[@futureonly=]<futureonly_flag]

sp_unbindrule 'T_Member.age'
drop rule age_rule

12、数据关系图(略)

原文地址:https://www.cnblogs.com/cxmsky/p/3269581.html