1.定义基本表语句
Beschreibung:
USE 数据库名 CREATE TABLE 表名 (列名 类型(大小) DEFAULT'默认值',
列名 类型(大小) DEFAULT'默认值',
列名 类型(大小) DEFAULT'默认值',
... ...);
注:绿色部份是可以省略的.
Beispiel: CREATE TABLE S (SNO char(2), SNAME char(8), AGE decimal(2), SEX char(2) DEFAULT'男', DEPT char(2));
创建了一个五列的表,其中第四列的默认值为'男'.
-------------------------------------------------- ----------------
2.定义完整性约束
Beschreibung:
USE 数据库名 CREATE TABLE 表名 (列名 类型(大小) DEFAULT'默认值' CONSTRAINT 约束名 约束定义,
列名 类型(大小) DEFAULT'默认值' CONSTRAINT 约束名 约束定义,
列名 类型(大小) DEFAULT'默认值' CONSTRAINT 约束名 约束定义,
... ...);
注:(1) 绿色部份是可以省略的.
(2) 一个列是可以有多个约束的.
约束定义:
(1)NULL | NICHT NULL.
Bedingung: CONSTRAINT ist NULL | NICHT NULL
Hinweis:
A. NOT NULL bedeutet, dass der Wert NULL ist.
B. NOT NULL 约束强制字段始终包含值.
Beispiel:
Verwenden Sie SQL-Anweisungen, um „Id_P“ und „LastName“ zu verwenden und NULL zu verwenden:
TABELLE Personen ERSTELLEN
(
Id_P int NICHT NULL,
Nachname varchar(255) NICHT NULL,
Vorname varchar(255),
Adresse varchar(255),
Stadt Varchar(255)
)
(2) EINZIGARTIG 约束唯一标识数据库表中的每条记录.(即可以定义列也可能定义表)
Beschreibung:CONSTRAINT 约束名 UNIQUE (列名, 列名, ... ...);
说明:用于指定基本表在某一个列或多个列的组合上取值必须唯一.定义了UNIQUE约束的那些列称为唯一键.如果为基本表的革一列或多个列的组合指定了UNIQUE约束,则系统将为这些列建立唯一索引,从而保证在表中的任意两行记录在指定的列或列组合上不能取同样的值.
Hinweis:
A. UNIQUE 约束唯一标识数据库表中的每条记录.
B. UNIQUE 和 PRIMARY KEY 约束均为列或列集合提供了唯一性的保证。
C. PRIMARY KEY ist eine einzigartige UNIQUE-Nummer.
d).
Beispiel:
SQL-Datenbank für „Persons“ und „Id_P“ für die UNIQUE-Funktion:
MySQL:
TABELLE Personen ERSTELLEN
(
Id_P int NICHT NULL,
Nachname varchar(255) NICHT NULL,
Vorname varchar(255),
Adresse varchar(255),
Stadt Varchar(255),
EINZIGARTIG (Id_P)
)
SQL Server / Oracle / MS Access:
TABELLE Personen ERSTELLEN
(
Id_P int NOT NULL UNIQUE,
Nachname varchar(255) NICHT NULL,
Vorname varchar(255),
Adresse varchar(255),
Stadt Varchar(255)
)
如果需要命名 UNIQUE 约束, 以及为多个列定义 UNIQUE 约束, 请使用下面的 SQL-Anweisungen:
MySQL / SQL Server / Oracle / MS Access:
TABELLE Personen ERSTELLEN
(
Id_P int NICHT NULL,
Nachname varchar(255) NICHT NULL,
Vorname varchar(255),
Adresse varchar(255),
Stadt Varchar(255),
CONSTRAINT uc_PersonID UNIQUE (Id_P,LastName)
)
(3)PRIMÄRSCHLÜSSEL 约束唯一标识数据库表中的每条记录。(即可以定义列也可能定义表)
语法:CONSTRAINT 约束名 PRIMARY KEY (列名, 列名, ... ...);
说明:用于定义基本表的主键.与UNIQUE约束类似, PRIMARY KEY 约束也是通过建立唯一索引来保证基本表在主键列(某一个列或多个列的组合)上取值的唯一性.然而它们之间也存在着很大差别: 在一个基本表中只能定义一个 PRIMARY KEY 约束, 却能定义多个UNIQUE约束.如果为基本表的某一个列或多个列的组合指定了 PRIMARY KEY 约束,那么其中在任何一个列都不能出现空值;而 UNIQUE 约束允许出现空值.
Hinweis:
A. 主键必须包含唯一的值.
B. Es ist nicht möglich, NULL zu verwenden.
C. 每个表应该都一个主键,并且每个表只能有一个主键.
Beispiel:
SQL-Datenbank für „Persons“ und „Id_P“ für PRIMARY KEY:
MySQL:
TABELLE Personen ERSTELLEN
(
Id_P int NICHT NULL,
Nachname varchar(255) NICHT NULL,
Vorname varchar(255),
Adresse varchar(255),
Stadt Varchar(255),
PRIMÄRSCHLÜSSEL (Id_P)
)
SQL Server / Oracle / MS Access:
TABELLE Personen ERSTELLEN
(
Id_P int NICHT NULL PRIMÄRSCHLÜSSEL,
Nachname varchar(255) NICHT NULL,
Vorname varchar(255),
Adresse varchar(255),
Stadt Varchar(255)
)
如果需要命名 PRIMARY KEY 约束, 以及为多个列定义 PRIMARY KEY 约束, 请使用下面的 SQL-Anweisungen:
MySQL / SQL Server / Oracle / MS Access:
TABELLE Personen ERSTELLEN
(
Id_P int NICHT NULL,
Nachname varchar(255) NICHT NULL,
Vorname varchar(255),
Adresse varchar(255),
Stadt Varchar(255),
CONSTRAINT uc_PersonID PRIMARY KEY (Id_P,LastName)
)
(4) FOREIGN KEY 外键 (即可以定义列也可能定义表)
Beschreibung:CONSTRAINT 约束名 FOREIGN KEY (列名, 列名, ... ...) REFERENCES (列名, 列名, ... ...) ;
说明:指定某一个列或多个列的组合作为外部键, 并在外部键和它所引用的主键或唯一键之间建立联系.在这种联系中,包含外部键的基本表称为从表包含外部键引用的主键或唯一键的表称为主表.一旦为一列或列的组合定义了 FOREIGN KEY将保证从表在外部键上的取值要么是主表中某一个主键值或唯一键值,要么取空值.
Hinweis:
a. 在REFERENZEN 中引用的列必须和 FOREIGN KEY 。
Beispiel:
Verwenden Sie SQL für „Orders“ und verwenden Sie „Id_P“ für FOREIGN KEY:
MySQL:
TISCHBestellungen ERSTELLEN
(
O_Id int NOT NULL,
OrderNo int NOT NULL,
Id_P int,
PRIMÄRSCHLÜSSEL (O_Id),
AUSLÄNDISCHER SCHLÜSSEL (Id_P) REFERENZEN Personen (Id_P)
)
SQL Server / Oracle / MS Access:
TISCHBestellungen ERSTELLEN
(
O_Id int NICHT NULL PRIMÄRSCHLÜSSEL,
OrderNo int NOT NULL,
Id_P int AUSLÄNDISCHE SCHLÜSSELREFERENZEN Personen (Id_P)
)
如果需要命名 FOREIGN KEY 约束, 以及为多个列定义 FOREIGN KEY 约束, 请使用下面的 SQL 语法:
MySQL / SQL Server / Oracle / MS Access:
TISCHBestellungen ERSTELLEN
(
O_Id int NOT NULL,
OrderNo int NOT NULL,
Id_P int,
PRIMÄRSCHLÜSSEL (O_Id),
CONSTRAINT fk_PerOrders FOREIGN KEY (Id_P) REFERENCES Persons(Id_P)
)
(5)CHECK 约束用于限制列中的值的范围。 (即可以定义列也可能定义表)
语法:CONSTRAINT 约束名 CHECK (约束条件);
说明:用于指定基本表中的每一条记录必须满足的条件, 可以对基本表在各个列上的值做进一步的约束, 如成绩列的取值既不能大于100, 也不能小于0.
Hinweis:
A. 如果对单个列定义 CHECK 约束,那么该列只允许特定的值.
B. 如果对一个表定义 CHECK 约束,那么此约束会在特定的列中对值进行限制.
Beispiel:
Verwenden Sie SQL, um „Persons“ zu verwenden, und „Id_P“ zu verwenden.
Mein SQL:
TABELLE Personen ERSTELLEN
(
Id_P int NICHT NULL,
Nachname varchar(255) NICHT NULL,
Vorname varchar(255),
Adresse varchar(255),
Stadt Varchar(255),
CHECK (Id_P>0)
)
SQL Server / Oracle / MS Access:
TABELLE Personen ERSTELLEN
(
Id_P int NOT NULL CHECK (Id_P>0),
Nachname varchar(255) NICHT NULL,
Vorname varchar(255),
Adresse varchar(255),
Stadt Varchar(255)
)
如果需要命名 CHECK 约束,以及为多个列定义 CHECK 约束,请使用下面的 SQL-Anweisungen:
MySQL / SQL Server / Oracle / MS Access:
TABELLE Personen ERSTELLEN
(
Id_P int NOT NULL,
Nachname varchar(255) NICHT NULL,
Vorname varchar(255),
Adresse varchar(255),
Stadt Varchar(255),
CONSTRAINT chk_Person CHECK (Id_P>0 UND Stadt='Sandnes')
)
-------------------------------------------------- ----------------
例:VERWENDEN Sie lijintao CREATE TABLE S2
(SNO CHAR(2) CONSTRAINT S_PRIM PRIMARY KEY,
SN CHAR(8) CONSTRAINT SN_CONS NOT NULL,
AGE NUMERIC(2) CONSTRAINT AGE_CONS NOT NULL CONSTRAINT AGE_CHK CHECK(ALTER ZWISCHEN 15 UND 45),
SEX CHAR(2) DEFAULT '男' CONSTRAINT SEX_CHK CHECK(SEX = '男' OR SEX = '女'),
DEPT CHAR(2) CONSTRAINT DEPT_CONS NOT NULL);
本文来自CSDN博客,转载请标明出处: http://blog.csdn.net/Qingqinglanghua/archive/2009/12/21/5051563.aspx
-