现在的位置: 首页 > 综合 > 正文

创建数据表注意问题

2014年01月20日 ⁄ 综合 ⁄ 共 2534字 ⁄ 字号 评论关闭

在很多情况下,我对知识都是掌握的模棱两可,一到用到的时候,自己就不能肯定的说自己作对了。

我总结到,归于知识细节掌握的不扎实。正如今天软考关于数据表创建的一些小问题。在创建表的

时候往往忽略了一些关键词的性质与作用。以至于在做题或者实践中忘记,或者做错。考试中,往往一些不肯定的东西

那肯定是错误的。经此我自己感觉到学习知识要深入到细节,认真思考和踏踏实实做事。

 

创建表:USE 数据库名

           CREATE TABLE 表名 (列名 类型(大小) DEFAULT'默认值',

                                           列名 类型(大小) DEFAULT'默认值',  

                                           列名 类型(大小) DEFAULT'默认值',

                                           ... ...);

 今天失败就是失败在一些约束关键词上。

            USE 数据库名

            CREATE TABLE 表名 (列名 类型(大小) DEFAULT'默认值' CONSTRAINT 约束名 约束定义,

                                             列名 类型(大小) DEFAULT'默认值' CONSTRAINT 约束名 约束定义,  

                                             列名 类型(大小) DEFAULT'默认值' CONSTRAINT 约束名 约束定义,

                                             ... ...);

约束定义:

1、NULL | NOT NULL  用于定义列的空值约束。(定义列)  (下面的蓝色部份是单选其中之一)

            语法:CONSTRAINT 约束名 NULL | NOT NULL

 (2)UNIQUE  约束唯一标识数据库表中的每条记录。(即可以定义列也可能定义表)

            语法:CONSTRAINT 约束名 UNIQUE (列名, 列名, ... ...);

            注意:

                    a. UNIQUE 约束唯一标识数据库表中的每条记录。

                    b. UNIQUE 和 PRIMARY KEY 约束均为列或列集合提供了唯一性的保证。

                    c. PRIMARY KEY 拥有自动定义的 UNIQUE 约束。

                    d.请注意,每个表可以有多个 UNIQUE 约束,但是每个表只能有一个 PRIMARY KEY 约束。

 

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)
)

              SQL Server / Oracle / MS Access:
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 约束,请使用下面的 SQL 语法:

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)
)

 

 

(3)CHECK 约束用于限制列中的值的范围。 (即可以定义列也可能定义表)

            语法:CONSTRAINT 约束名 CHECK (约束条件);

说明:用于指定基本表中的每一条记录必须满足的条件,可以对基本表在各个列上的值做进一步的约束,如成绩列的取值既不能大于100,也不能小于0。

            注意:

                    a. 如果对单个列定义 CHECK 约束,那么该列只允许特定的值。

                    b. 如果对一个表定义 CHECK 约束,那么此约束会在特定的列中对值进行限制。

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)
)
SQL Server / Oracle / MS Access:
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 约束,以及为多个列定义 CHECK 约束,请使用下面的 SQL 语法:

                 MySQL / SQL Server / Oracle / MS Access:
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的用法,希望以后不会再出错

 

 

 

 

 

 

 

 

 

 

 

 

 

 

抱歉!评论已关闭.