1.定义基本表语句
Description :
USE 数据库名 CREATE TABLE 表名 (列名 类型(大小) DEFAULT'默认值',
列名 类型(大小) DEFAULT'默认值',
列名 类型(大小) DEFAULT'默认值',
... ...);
注:绿色部份是可以省略的。
Exemple : CREATE TABLE S (SNO char(2), SNAME char(8), AGE decimal(2), SEX char(2) DEFAULT'男', DEPT char(2));
创建了一个五列的表,其中第四列的默认值为'男'。
-------------------------------------------------- -------------------------------
2.定义完整性约束
Description :
USE 数据库名 CREATE TABLE 表名 (列名 类型(大小) DEFAULT'默认值' CONTRAINTE 约束名 约束定义,
列名 类型(大小) DEFAULT'默认值' CONTRAINTE 约束名 约束定义,
列名 类型(大小) DEFAULT'默认值' CONTRAINTE 约束名 约束定义,
... ...);
注:(1) 绿色部份是可以省略的。
(2) 一个列是可以有多个约束的。
约束定义:
(1)NULL | NOT NULL
语法:CONSTRAINT 约束名 NULL | PAS NUL
注意:
un. NOT NULL 约束强制列不接受 NULL 值。
b. NOT NULL.
C'est :
Utiliser SQL pour "Id_P" et "LastName" avec NULL :
CRÉER TABLE Personnes
(
Id_P int NON NULL,
Nom de famille varchar(255) NON NULL,
Prénom varchar(255),
Adresse varchar(255),
Varchar de la ville(255)
)
(2) UNIQUE 约束唯一标识数据库表中的每条记录。(即可以定义列也可能定义表)
语法:CONSTRAINT 约束名 UNIQUE (列名, 列名, ... ...);
定义了UNIQUE约束的那些列称为唯一键。如果为基本表的革一列或多个列的组合指定了Unique上不能取同样的值。
注意:
un. UNIQUE 约束唯一标识数据库表中的每条记录。
b. UNIQUE 和 CLÉ PRIMAIRE 约束均为列或列集合提供了唯一性的保证。
c. CLÉ PRIMAIRE 拥有自动定义的 UNIQUE 约束。
d.
C'est :
En utilisant SQL et "Persons" en utilisant "Id_P" en utilisant UNIQUE :
MySQL :
CRÉER TABLE Personnes
(
Id_P int NON NULL,
Nom de famille varchar(255) NON NULL,
Prénom varchar(255),
Adresse varchar(255),
Varchar de la ville(255),
UNIQUE (Id_P)
)
SQL Serveur/Oracle/MS Access :
CRÉER TABLE Personnes
(
Id_P int NON NULL UNIQUE,
Nom de famille varchar(255) NON NULL,
Prénom varchar(255),
Adresse varchar(255),
Varchar de la ville(255)
)
Pour les applications UNIQUE, pour les applications UNIQUE et pour les applications SQL :
MySQL/SQL Server/Oracle/MS Access :
CRÉER TABLE Personnes
(
Id_P int NON NULL,
Nom de famille varchar(255) NON NULL,
Prénom varchar(255),
Adresse varchar(255),
Varchar de la ville(255),
CONTRAINTE uc_PersonID UNIQUE (Id_P,LastName)
)
(3) Clé primaire
语法:CONSTRAINT 约束名 CLÉ PRIMAIRE (列名, 列名, ... ...);
说明:用于定义基本表的主键。与UNIQUE约束类似,Clé primaire键列(某一个列或多个列的组合)上取值的唯一性。然而它们Clé primaire : Clé primaire unique.本表的某一个列或多个列的组合指定了 PRIMARY KEY 约束,那么其中在任何一个列都不能出现空值; UNIQUE 约束允许出现空值。
注意:
un. 主键必须包含唯一的值。
b. 主键列不能包含 NULL 值。
c. 每个表应该都一个主键,并且每个表只能有一个主键。
C'est :
Il s'agit de SQL et de "Persons" et de "Id_P" et de la clé PRIMARY KEY :
MySQL :
CRÉER TABLE Personnes
(
Id_P int NON NULL,
Nom de famille varchar(255) NON NULL,
Prénom varchar(255),
Adresse varchar(255),
Varchar de la ville(255),
CLÉ PRIMAIRE (Id_P)
)
SQL Serveur/Oracle/MS Access :
CRÉER TABLE Personnes
(
Id_P int CLÉ PRIMAIRE NON NULLe,
Nom de famille varchar(255) NON NULL,
Prénom varchar(255),
Adresse varchar(255),
Varchar de la ville(255)
)
Il s'agit de la clé PRIMARY KEY, mais aussi de la clé PRIMARY KEY et de la clé SQL :
MySQL/SQL Server/Oracle/MS Access :
CRÉER TABLE Personnes
(
Id_P int NON NULL,
Nom de famille varchar(255) NON NULL,
Prénom varchar(255),
Adresse varchar(255),
Varchar de la ville(255),
CONSTRAINT uc_PersonID CLÉ PRIMAIRE (Id_P, LastName)
)
(4)CLÉ ÉTRANGÈRE 外键 (即可以定义列也可能定义表)
语法:CONSTRAINT 约束名 FOREIGN KEY (列名, 列名, ... ...) REFERENCES (列名, 列名, ... ...) ;
说明:指定某一个列或多个列的组合作为外部键,并在外部键和它所引用的主键或唯一键之间建立联系。在这种联系中,包含外部键的基本表称为从表,包含外部键引用的主键或唯一键的表称为主表。一旦为一列或列的组合定义了 FOREIGN KEY 约束,系统将保证从表在外部键上的取值要么是主表中某一个主键值或唯一键值,要么取空值。
注意:
a. 在 Références 中引用的列必须和 Clé étrangère 的外部键列一一对应 , 即列数目相等并且相应列的数据类型相同。
C'est :
Pour SQL et "Orders" et pour "Id_P" et FOREIGN KEY :
MySQL :
CREER TABLE Commandes
(
O_Id int NON NULL,
OrderNo int NON NULL,
Id_P int,
CLÉ PRIMAIRE (O_Id),
CLÉ ÉTRANGÈRE (Id_P) RÉFÉRENCES Personnes (Id_P)
)
SQL Serveur/Oracle/MS Access :
CREER TABLE Commandes
(
O_Id int CLÉ PRIMAIRE NON NULLe,
OrderNo int NON NULL,
Id_P int RÉFÉRENCES CLÉS ÉTRANGÈRES Personnes (Id_P)
)
Pour la clé de clé étrangère, pour la clé de clé étrangère, la clé SQL :
MySQL/SQL Server/Oracle/MS Access :
CREER TABLE Commandes
(
O_Id int NON NULL,
OrderNo int NON NULL,
Id_P int,
CLÉ PRIMAIRE (O_Id),
CONTRAINTE fk_PerOrders CLÉ ÉTRANGÈRE (Id_P) RÉFÉRENCES Personnes (Id_P)
)
(5) VÉRIFIER 约束用于限制列中的值的范围。 (即可以定义列也可能定义表)
语法:CONSTRAINT 约束名 CHECK (约束条件);
说明: 可以对基本表在各个列上的值做进一步的约束,如成绩列的取值既不能大于100,也不能小于0。
注意:
un. 如果对单个列定义 CHECK 约束,那么该列只允许特定的值。
b. 如果对一个表定义 CHECK 约束,那么此约束会在特定的列中对值进行限制。
C'est :
Il s'agit de SQL et de "Persons" et de "Id_P" et de CHECK et de CHECK.CHECK et de "Id_P" 0.
Mon SQL :
CRÉER TABLE Personnes
(
Id_P int NON NULL,
Nom de famille varchar(255) NON NULL,
Prénom varchar(255),
Adresse varchar(255),
Varchar de la ville(255),
VÉRIFIER (Id_P>0)
)
SQL Serveur/Oracle/MS Access :
CRÉER TABLE Personnes
(
Id_P int NON NULL CHECK (Id_P>0),
Nom de famille varchar(255) NON NULL,
Prénom varchar(255),
Adresse varchar(255),
Varchar de la ville(255)
)
Dans le cas de CHECK 约束, il y a aussi CHECK 约束 et SQL SQL :
MySQL/SQL Server/Oracle/MS Access :
CRÉER TABLE Personnes
(
Id_P int NON NULL,
Nom de famille varchar(255) NON NULL,
Prénom varchar(255),
Adresse varchar(255),
Varchar de la ville(255),
CONSTRAINT chk_Person CHECK (Id_P>0 AND City='Sandnes')
)
-------------------------------------------------- -------------------------------
Exemple : UTILISER lijintao CREATE TABLE S2
(SNO CHAR(2) CONTRAINTE S_PRIM CLÉ PRIMAIRE,
SN CHAR(8) CONTRAINTE SN_CONS NON NULL,
AGE NUMERIC(2) CONTRAINTE AGE_CONS NON NULL CONTRAINTE AGE_CHK CHECK(AGE ENTRE 15 ET 45),
SEX CHAR(2) PAR DÉFAUT '男' CONTRAINTE SEX_CHK CHECK(SEX = '男' OR SEX = '女'),
DEPT CHAR(2) CONTRAINTE DEPT_CONS NOT NULL);
Nom du CSDN : http://blog.csdn.net/Qingqinglanghua/archive/2009/12/21/5051563.aspx
-