CREATE TABLE

  本篇介绍与SQL语句中有键表功能的Create Table语句。

基本语法

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')
)
  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值