CREATE DATABASE 语句:
CREATE DATABASE database_name
CREAT TABLE 语句:
CREATE TABLE 表名称
(
列名称1 数据类型,
列名称2 数据类型,
列名称3 数据类型,
....
)
数据类型 |
描述 |
integer(size) int(size) smallint(size) tinyint(size) |
仅容纳整数。在括号内规定数字的最大位数。 |
decimal(size,d) numeric(size,d) |
容纳带有小数的数字。 "size" 规定数字的最大位数。"d" 规定小数点右侧的最大位数。 |
char(size) |
容纳固定长度的字符串(可容纳字母、数字以及特殊字符)。 在括号中规定字符串的长度。 |
varchar(size) |
容纳可变长度的字符串(可容纳字母、数字以及特殊的字符)。 在括号中规定字符串的最大长度。 |
date(yyyymmdd) |
容纳日期。 |
NOT NULL 约束:
约束强制字段始终包含值。这意味着,如果不向字段添加值,就无法插入新记录或者更新记录
UNIQUE 约束:
SQL UNIQUE Constraint on CREATE TABLE(在创建表格的时候添加单个Unique约束):
CREATE TABLE Persons
(
Id_P int NOT NULL UNIQUE,
LastName varchar(255) NOT NULL,
FirstName varchar(255),
Address varchar(255),
City varchar(255)
)
命名 UNIQUE 约束,以及为多个列定义 UNIQUE 约束:
CREATE TABLE Persons
(
Id_P int NOT NULL,
LastName varchar(255) NOT NULL,
FirstName varchar(255),
Address varchar(255),
City varchar(255),
CONSTRAINT uc_PersonID UNIQUE (Id_P,LastName)
)
SQL UNIQUE Constraint on ALTER TABLE(修改表格并添加Unique约束)
--添加单个约束
ALTER TABLE Persons
ADD UNIQUE (Id_P)
--添加多个约束
ALTER TABLE Persons
ADD CONSTRAINT uc_PersonID UNIQUE (Id_P,LastName)
撤销UNIQUE约束
ALTER TABLE Persons
DROP CONSTRAINT uc_PersonID
PRIMARY KEY 约束:
SQL PRIMARY KEY Constraint on CREATE TABLE(在创建表格时添加单个约束)
CREATE TABLE Persons
(
Id_P int NOT NULL PRIMARY KEY,
LastName varchar(255) NOT NULL,
FirstName varchar(255),
Address varchar(255),
City varchar(255)
)
命名 PRIMARY KEY 约束,以及为多个列定义 PRIMARY KEY 约束
CREATE TABLE Persons
(
Id_P int NOT NULL,
LastName varchar(255) NOT NULL,
FirstName varchar(255),
Address varchar(255),
City varchar(255),
CONSTRAINT pk_PersonID PRIMARY KEY (Id_P,LastName)
)
SQL PRIMARY KEY Constraint on ALTER TABLE
ALTER TABLE Persons
ADD PRIMARY KEY (Id_P)
ALTER TABLE Persons
ADD CONSTRAINT pk_PersonID PRIMARY KEY (Id_P,LastName)
注意:
使用 ALTER TABLE 语句添加主键,必须把主键列声明为不包含 NULL 值(在表首次创建时)
PRIMARY KEY 拥有自动定义的 UNIQUE 约束
撤销 PRIMARY KEY 约束
ALTER TABLE Persons
DROP PRIMARY KEY
ALTER TABLE Persons
DROP CONSTRAINT pk_PersonID
FOREIGN KEY 约束:
创建表格时添加Foreign Key约束:
CREATE TABLE Orders
(
Id_O int NOT NULL PRIMARY KEY,
OrderNo int NOT NULL,
Id_P int FOREIGN KEY REFERENCES Persons(Id_P)
)
命名 FOREIGN KEY 约束,以及为多个列定义 FOREIGN KEY 约束
CREATE TABLE Orders
(
Id_O int NOT NULL,
OrderNo int NOT NULL,
Id_P int,
PRIMARY KEY (Id_O),
CONSTRAINT fk_PerOrders FOREIGN KEY (Id_P)
REFERENCES Persons(Id_P)
)
SQL FOREIGN KEY Constraint on ALTER TABLE
ALTER TABLE Orders
ADD FOREIGN KEY (Id_P)
REFERENCES Persons(Id_P)
ALTER TABLE Orders
ADD CONSTRAINT fk_PerOrders
FOREIGN KEY (Id_P)
REFERENCES Persons(Id_P)
撤销 FOREIGN KEY 约束
ALTER TABLE Orders
DROP CONSTRAINT fk_PerOrders
CHECK 约束:
SQL CHECK Constraint on CREATE TABLE
--添加单个check约束
CREATE TABLE Persons
(
Id_P int NOT NULL CHECK (Id_P>0),
LastName varchar(255) NOT NULL,
FirstName varchar(255),
Address varchar(255),
City varchar(255)
)
--添加多个check约束
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')
)
CHECK 约束用于限制列中的值的范围
SQL CHECK Constraint on ALTER TABLE
--方法一
ALTER TABLE Persons
ADD CHECK (Id_P>0)
--方法二(可添加多个约束)
ALTER TABLE Persons
ADD CONSTRAINT chk_Person CHECK (Id_P>0 AND City='Sandnes')
撤销 CHECK 约束
ALTER TABLE Persons
DROP CONSTRAINT chk_Person
DEFAULT 约束:
SQL DEFAULT Constraint on CREATE TABLE
CREATE TABLE Persons
(
Id_P int NOT NULL,
LastName varchar(255) NOT NULL,
FirstName varchar(255),
Address varchar(255),
City varchar(255) DEFAULT 'Sandnes'
)
DEFAULT 约束也可以用于插入系统值:
OrderDate date DEFAULT GETDATE()
SQL DEFAULT Constraint on ALTER TABLE
ALTER TABLE Persons
ALTER COLUMN City SET DEFAULT 'SANDNES'
撤销 DEFAULT 约束
ALTER TABLE Persons
ALTER COLUMN City DROP DEFAULT