CREATE TABLE
2016-07-08 18:10
260 查看
本篇介绍与SQL语句中有键表功能的Create Table语句。
其中约束条件可省略,代表无约束。下面介绍常用的数据类型和约束条件。
integer(size)
int(size)
bigint(size)
smallint(size)
tinyint(size)
int和integer并没有什么区别,其他类型之间存在表示范围的区别。一般来说使用int就足够了。size用来表示可显示出的位数。
decimal(size,d)
numeric(size,d)
这两种一般没有区别,习惯使用decimal。size表示整体显示位数,d表示纯小数部分显示的位数。
char(size)
varchar(size)
这两种之间就有区别了,char是指存放固定长度字符,varchar则是可变长度,例如声明100个字符的char,就算存放3个字符的数据,使用的依然是100个字符,而varchar则使用3+1个字符。总体来说,varchar使用较多,但是字符数量固定时推荐char,毕竟效率会高。
NOT NULL
UNIQUE
PRIMARY KEY
FOREIGN KEY
CHECK
DEFAULT
同样check可以如上所示,加在列后面。
基本语法
CREATE TABLE 表名称 ( 列名称1 数据类型 约束条件, 列名称2 数据类型 约束条件, 列名称3 数据类型 约束条件, .... )
其中约束条件可省略,代表无约束。下面介绍常用的数据类型和约束条件。
数据类型
常用的数据类型大致分为整型、小数、字符、日期等。整型
整型有:integer(size)
int(size)
bigint(size)
smallint(size)
tinyint(size)
int和integer并没有什么区别,其他类型之间存在表示范围的区别。一般来说使用int就足够了。size用来表示可显示出的位数。
小数
主要有两种:decimal(size,d)
numeric(size,d)
这两种一般没有区别,习惯使用decimal。size表示整体显示位数,d表示纯小数部分显示的位数。
字符
字符常用的也是两种:char(size)
varchar(size)
这两种之间就有区别了,char是指存放固定长度字符,varchar则是可变长度,例如声明100个字符的char,就算存放3个字符的数据,使用的依然是100个字符,而varchar则使用3+1个字符。总体来说,varchar使用较多,但是字符数量固定时推荐char,毕竟效率会高。
日期
常用日期就是date,格式一般为yyyymmdd,有的数据库会提供更详细的格式(包括时间和分钟)。多半与实际后台编程提供的日期格式相结合使用。约束
约束主要有:NOT NULL
UNIQUE
PRIMARY KEY
FOREIGN KEY
CHECK
DEFAULT
NOT NUL
字面意思就是不能为空,如果不添加值就会导致添加失败。使用时加在被限制的列后面。CREATE TABLE Persons ( Id_P int NOT NULL, LastName varchar(255) NOT NULL, FirstName varchar(255), Address varchar(255), City varchar(255) )
UNIQUE
字面意思是独一无二的,就是说在一张表里这一列的任何数据不能出现两次,意味着添加重复的数据就会导致添加失败。可以如上所示,放在被限制的列后面也可以放在最下面。CREATE TABLE Persons ( Id_P int NOT NULL, LastName varchar(255) NOT NULL, FirstName varchar(255), Address varchar(255), City varchar(255), UNIQUE (Id_P) )
PRIMARY KEY
主键,每个表必须有且只能有一个主键。主键必须包含唯一的值且不能为空,这意味着主键本身自带NOT NULL和UNIQUE属性。使用PRIMARY KEY关键字像前两种使用方式即可。FOREIGN KEY
外键,主要为参考所用,所参考的必须为其他表的主键。如下代码所示的Id_P列为参考Persons表的Id_P列。CREATE TABLE Orders ( Id_O int NOT NULL, OrderNo int NOT NULL, Id_P int, PRIMARY KEY (Id_O), FOREIGN KEY (Id_P) REFERENCES Persons(Id_P) )
CHECK
check为检查某列是否符合某种条件。例如检查Id_P列的数大于0。CREATE TABLE Persons ( Id_P int NOT NULL, LastName varchar(255) NOT NULL, FirstName varchar(255), Address varchar(255), City varchar(255), CHECK (Id_P>0) )
同样check可以如上所示,加在列后面。
DEFAULT
DEFAULT用来为列设置默认值,例如City的默认值为Sandnes。CREATE TABLE Persons ( Id_P int NOT NULL, LastName varchar(255) NOT NULL, FirstName varchar(255), Address varchar(255), City varchar(255) DEFAULT 'Sandnes' )
举例
上面的例子很多,但基本都是对一列进行约束,我们可以使用CONSTRAINT对多列同时进行约束。CREATE TABLE Persons ( Id_P int NOT NULL, LastName varchar(255) NOT NULL, FirstName varchar(255), Address varchar(255), City varchar(255), CONSTRAINT chk_Person CHECK (Id_P>0 AND City='Sandnes') )
相关文章推荐
- SQL中的三值逻辑
- SQL Server 作业批量停止
- 结束SQL阻塞的进程
- 动态生成SQL Server视图作业
- SQL Server 语句操纵数据库
- SQL(结构化查询语句)
- oracle sql日期比较
- linux快速部署mysql服务器
- sql 存储过程分页
- 在WINXP系统上安装SQL Server企业版的方法
- 通过批处理调用SQL的方法(osql)
- SQL Server 存储过程的分页
- ASP程序与SQL存储过程结合使用详解
- SQL SERVER编写存储过程小工具
- 防御SQL注入攻击时需要注意的一个问题
- Microsoft Sql server2005的安装步骤图文详解及常见问题解决方案
- PostgreSQL教程(十九):SQL语言函数
- SQL Server复制需要有实际的服务器名称才能连接到服务器