在很多情况下,我对知识都是掌握的模棱两可,一到用到的时候,自己就不能肯定的说自己作对了。
我总结到,归于知识细节掌握的不扎实。正如今天软考关于数据表创建的一些小问题。在创建表的
时候往往忽略了一些关键词的性质与作用。以至于在做题或者实践中忘记,或者做错。考试中,往往一些不肯定的东西
那肯定是错误的。经此我自己感觉到学习知识要深入到细节,认真思考和踏踏实实做事。
创建表: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的用法,希望以后不会再出错