T-SQL入門攻略之创建数据表
来源: 阅读:649 次 日期:2014-11-03 11:53:00
温馨提示: 小编为您整理了“T-SQL入門攻略之创建数据表”,方便广大网友查阅!

使用主键约束

主键不允许重复也不允许有空值

--1单字段主键

IF OBJECT_ID ('testtable', 'U') IS NOT NULL DROP TABLE testtable;

CREATE TABLE testtable

(

col1 varchar(10),

col2 int,

col3 datetime,

col4 numeric(10,2),

col5 xml,

col6 image,

primary key(col1)

);

--2多字段主键 IF OBJECT_ID ('testtable', 'U') IS NOT NULL DROP TABLE testtable;

CREATE TABLE testtable

(

col1 varchar(10),

col2 int,

col3 datetime,

col4 numeric(10,2),

col5 xml,

col6 image,

primary key(col1,col2,col3)

);

使用唯一性约束

唯一unique 用于强制非主键列的唯一性,我们可以将唯一约束定义在一个字段上也可以定义在多个字段上。

--1单字段唯一约束

IF OBJECT_ID ('testtable', 'U') IS NOT NULL DROP TABLE testtable;

CREATE TABLE testtable

(

col1 char(10),

col2 int,

col3 float,

unique(col1)

);

--2多字段唯一约束

IF OBJECT_ID ('testtable', 'U') IS NOT NULL DROP TABLE testtable;

CREATE TABLE testtable

(

col1 char(10),

col2 int,

col3 float,

unique(col1,col2)

);

主键与唯一约束的相似点与不同点:

相似点:

在主键列或逐渐列的组合上不允许出现重复值,在被定义唯一性约束的列或列的组合上也不允许出现重复值,他们所在列都创建了一个唯一性索引。

不同点:

在表里只能定义定义一个主键,但可以定义多个唯一约束,主键所在列不允许空值但唯一性约束列允许空值

使用非空约束

使用NOT NULL约束的字段其值不允许为空(NULL)

IF OBJECT_ID ('testtable', 'U') IS NOT NULL DROP TABLE testtable;

CREATE TABLE testtable

(

col1 char(10)NOT NULL UNIQUE, -- 非空约束和唯一性约束

col2 int NOT NULL, -- 非空约束

col3 float

);

使用缺省约束

对有的字段可能不希望直接对其输入值或者暂时不输入,同时希望它自己能够形成一个初始值或者有的字段值是取自其他地方这时候可以使用缺省约束。

IF OBJECT_ID ('usertable', 'U') IS NOT NULL DROP TABLE usertable;

CREATE TABLE usertable

(

username varchar(20),

loginuser varchar(10) DEFAULT user,

logintime datetime DEFAULT getdate(),

uservocation varchar(50) DEFAULT '计算机及其相关'

);

使用检查约束

为了避免输入数据时候出现人为错误,可以通过定义检查约束的方法来解决(check)

IF OBJECT_ID ('testtable', 'U') IS NOT NULL DROP TABLE testtable;

CREATE TABLE testtable

(

userid varchar(10) CHECK(userid LIKE '[a-z]%[1-4]' AND DATALENGTH(userid)=5),

-- age值不能为0

--userid值的长度必须为5

--userid值中最后一个字符必须 1、2、3或4

--userid值的首字符必须为字母

age int CHECK(age > 0 AND age <= 150)

);

创建临时表和表变量

1:临时表

临时表表名以#或##为前缀的一类数据表是临时存储数据库tempdb中的一类数据库对象。其中以#前缀的临时表为本地临时表,在当前会话内有效,会话外无效。前缀##的临时表是全局临时表所有会话都可以访问。临时表的生命周期是创建临时表的会话的生命周期只要创建他的会话还存在,该临时表就会持续存在。数据表都会自动保存到tempdb中,数据库重启后这些表将会被删除。

2:表变量

表变量是用于存储表数据的一种变量,与一般变量一样也使用declare来声明

不管是临时表还是表变量都要把他们当数据表来操作

3:表变量与临时表的不同点

(1) 临时表保存在磁盘上(逻辑上保存在数据库tempdb上)表变量则保存在内存中,

(2) 访问临时表会生成日志信息,而访问表变量则不会

(3)可以对临时表创建索引 但不能对表变量创建索引

(4)临时表需要锁机制,而表变量则不需要

更多信息请查看IT技术专栏

更多信息请查看 数据库
手机网站地址: T-SQL入門攻略之创建数据表
由于各方面情况的不断调整与变化, 提供的所有考试信息和咨询回复仅供参考,敬请考生以权威部门公布的正式信息和咨询为准!
关于我们| 联系我们| 人才招聘| 网站声明| 网站帮助| 非正式的简要咨询| 简要咨询须知| 加入群交流| 手机站点| 投诉建议
工业和信息化部备案号:滇ICP备2023014141号-1 云南省教育厅备案号:云教ICP备0901021 滇公网安备53010202001879号 人力资源服务许可证:(云)人服证字(2023)第0102001523号
云南网警备案专用图标
联系电话:0871-65317125(9:00—18:00) 获取招聘考试信息及咨询关注公众号:
咨询QQ:526150442(9:00—18:00) 版权所有:
云南网警报警专用图标
Baidu
map