SQL世界之命令语句Ⅳ

目录

一、SQL CREATE DATABASE 语句

1.CREATE DATABASE 语句

2.SQL CREATE DATABASE 语法

3.SQL CREATE DATABASE 实例

二、SQL CREATE TABLE 语句

1.CREATE TABLE 语句

2.SQL CREATE TABLE 语法

3.SQL中最常用的数据类型

4.SQL CREATE TABLE 实例

三、SQL 约束 (Constraints)

四、SQL NOT NULL 约束

五、SQL UNIQUE 约束

 1.在 "Persons" 表创建时,在 "Id_P" 列创建 UNIQUE 约束

2.命名 UNIQUE 约束,以及为多个列定义 UNIQUE 约束

3.当表已被创建时,在 "Id_P" 列创建 UNIQUE 约束

4.命名 UNIQUE 约束,并定义多个列的 UNIQUE 约束

5.撤销 UNIQUE 约束

六、SQL PRIMARY KEY 约束

1.SQL PRIMARY KEY 约束

2.在 "Persons" 表创建时,在 "Id_P" 列创建 PRIMARY KEY 约束

3.命名 PRIMARY KEY 约束,以及为多个列定义 PRIMARY KEY 约束

4.在表已存在的情况下为 "Id_P" 列创建 PRIMARY KEY 约束

5.命名 PRIMARY KEY 约束,以及为多个列定义 PRIMARY KEY 约束

6.撤销 PRIMARY KEY 约束

七、SQL FOREIGN KEY 约束

1.SQL FOREIGN KEY 约束

 2.在 "Orders" 表创建时为 "Id_P" 列创建 FOREIGN KEY

3.命名 FOREIGN KEY 约束,以及为多个列定义 FOREIGN KEY 约束

4.在 "Orders" 表已存在的情况下为 "Id_P" 列创建 FOREIGN KEY 约束

5.命名 FOREIGN KEY 约束,以及为多个列定义 FOREIGN KEY 约束

6.撤销 FOREIGN KEY 约束

八、SQL CHECK 约束

1.SQL CHECK 约束

2.在 "Persons" 表创建时为 "Id_P" 列创建 CHECK 约束

3.命名 CHECK 约束,以及为多个列定义 CHECK 约束

4.在表已存在的情况下为 "Id_P" 列创建 CHECK 约束

5.命名 CHECK 约束,以及为多个列定义 CHECK 约束

6.撤销 CHECK 约束

九、SQL DEFAULT 约束

1.SQL DEFAULT 约束

2.在 "Persons" 表创建时为 "City" 列创建 DEFAULT 约束

3.通过使用类似 GETDATE() 这样的函数,DEFAULT 约束也可以用于插入系统值

4.在表已存在的情况下为 "City" 列创建 DEFAULT 约束

5.撤销 DEFAULT 约束


一、SQL CREATE DATABASE 语句

1.CREATE DATABASE 语句

CREATE DATABASE 用于创建数据库。

2.SQL CREATE DATABASE 语法

CREATE DATABASE database_name

3.SQL CREATE DATABASE 实例

创建一个名为 "my_db" 的数据库,使用的 CREATE DATABASE 语句:

CREATE DATABASE my_db

二、SQL CREATE TABLE 语句

1.CREATE TABLE 语句

CREATE TABLE 语句用于创建数据库中的表。

2.SQL CREATE TABLE 语法

CREATE TABLE 表名称

(

列名称1 数据类型,

列名称2 数据类型,

列名称3 数据类型,

....

)

3.SQL中最常用的数据类型

数据类型

描述

integer(size)

int(size)

smallint(size)

tinyint(size)

仅容纳整数。在括号内规定数字的最大位数。

decimal(size,d)

numeric(size,d)

容纳带有小数的数字。"size" 规定数字的最大位数。"d" 规定小数点右侧的最大位数。

char(size)

容纳固定长度的字符串(可容纳字母、数字以及特殊字符)。在括号中规定字符串的长度。

varchar(size)

容纳可变长度的字符串(可容纳字母、数字以及特殊的字符)。在括号中规定字符串的最大长度。

date(yyyymmdd)

容纳日期。

4.SQL CREATE TABLE 实例

创建名为 "Person" 的表,该表包含 5 个列。

列名分别是:"Id_P"、"LastName"、"FirstName"、"Address" 以及 "City"。

CREATE TABLE Persons

(

Id_P int,

LastName varchar(255),

FirstName varchar(255),

Address varchar(255),

City varchar(255)

)

解析:Id_P 列的数据类型是 int,包含整数。其余 4 列的数据类型是 varchar,最大长度为 255 个字符。

空的 "Persons" 表类似这样:

Id_P

LastName

FirstName

Address

City

可使用 INSERT INTO 语句向空表写入数据。

三、SQL 约束 (Constraints)

约束用于限制加入表的数据的类型。可以在创建表时规定约束(通过 CREATE TABLE 语句),或者在表创建之后也可以(通过 ALTER TABLE 语句)。

四、SQL NOT NULL 约束

NOT NULL 约束强制列不接受 NULL 值、强制字段始终包含值。这意味着,如果不向字段添加值,就无法插入新记录或者更新记录。

强制 "Id_P" 列和 "LastName" 列不接受 NULL 值:

CREATE TABLE Persons

(

Id_P int NOT NULL,

LastName varchar(255) NOT NULL,

FirstName varchar(255),

Address varchar(255),

City varchar(255)

)

五、SQL UNIQUE 约束

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

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

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

每个表可以有多个 UNIQUE 约束,但是只能有一个 PRIMARY KEY 约束。

 1.在 "Persons" 表创建时,在 "Id_P" 列创建 UNIQUE 约束

①MySQL:

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)

)

2.命名 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)

)

3.当表已被创建时,在 "Id_P" 列创建 UNIQUE 约束

ALTER TABLE Persons

ADD UNIQUE (Id_P)

4.命名 UNIQUE 约束,并定义多个列的 UNIQUE 约束

ALTER TABLE Persons

ADD CONSTRAINT uc_PersonID UNIQUE (Id_P,LastName)

5.撤销 UNIQUE 约束

①MySQL:

ALTER TABLE Persons

DROP INDEX uc_PersonID

②SQL Server / Oracle / MS Access:

ALTER TABLE Persons

DROP CONSTRAINT uc_PersonID

六、SQL PRIMARY KEY 约束

1.SQL PRIMARY KEY 约束

PRIMARY KEY 约束唯一标识数据库表中的每条记录。

主键必须包含唯一的值。

主键列不能包含 NULL 值。

每个表都应该有一个主键,并且每个表只能有一个主键。

2.在 "Persons" 表创建时,在 "Id_P" 列创建 PRIMARY KEY 约束

①MySQL:

CREATE TABLE Persons

(

Id_P int NOT NULL,

LastName varchar(255) NOT NULL,

FirstName varchar(255),

Address varchar(255),

City varchar(255),

PRIMARY KEY (Id_P)

)

②SQL Server / Oracle / MS Access:

CREATE TABLE Persons

(

Id_P int NOT NULL PRIMARY KEY,

LastName varchar(255) NOT NULL,

FirstName varchar(255),

Address varchar(255),

City varchar(255)

)

3.命名 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)

)

4.在表已存在的情况下为 "Id_P" 列创建 PRIMARY KEY 约束

ALTER TABLE Persons

ADD PRIMARY KEY (Id_P)

5.命名 PRIMARY KEY 约束,以及为多个列定义 PRIMARY KEY 约束

ALTER TABLE Persons

ADD CONSTRAINT pk_PersonID PRIMARY KEY (Id_P,LastName)

注:在表首次创建时使用 ALTER TABLE 语句添加主键,必须把主键列声明为不包含 NULL 值。

6.撤销 PRIMARY KEY 约束

①MySQL:

ALTER TABLE Persons

DROP PRIMARY KEY

②SQL Server / Oracle / MS Access:

ALTER TABLE Persons

DROP CONSTRAINT pk_PersonID

七、SQL FOREIGN KEY 约束

1.SQL FOREIGN KEY 约束

一个表中的 FOREIGN KEY 指向另一个表中的 PRIMARY KEY。

"Persons" 表:

Id_P

LastName

FirstName

Address

City

001

Aam

Joh

Oxd Street

London

002

Buh

Grge

Fifth Aue

New York

003

Car

Tmas

Can Street

Beijing

"Orders" 表:

Id_O

OrderNo

Id_P

1

77895

003

2

44678

003

3

22456

001

4

24562

001

"Orders" 中的 "Id_P" 列指向 "Persons" 表中的 "Id_P" 列。

"Persons" 表中的 "Id_P" 列是 "Persons" 表中的 PRIMARY KEY。

"Orders" 表中的 "Id_P" 列是 "Orders" 表中的 FOREIGN KEY。

FOREIGN KEY 约束用于预防破坏表之间连接的动作,也能防止非法数据插入外键列,因为它必须是它指向的那个表中的值之一。

 2.在 "Orders" 表创建时为 "Id_P" 列创建 FOREIGN KEY

①MySQL:

CREATE TABLE Orders

(

Id_O int NOT NULL,

OrderNo int NOT NULL,

Id_P int,

PRIMARY KEY (Id_O),

FOREIGN KEY (Id_P) REFERENCES Persons(Id_P)

)

②SQL Server / Oracle / MS Access:

CREATE TABLE Orders

(

Id_O int NOT NULL PRIMARY KEY,

OrderNo int NOT NULL,

Id_P int FOREIGN KEY REFERENCES Persons(Id_P)

)

3.命名 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)

)

4.在 "Orders" 表已存在的情况下为 "Id_P" 列创建 FOREIGN KEY 约束

ALTER TABLE Orders

ADD FOREIGN KEY (Id_P)

REFERENCES Persons(Id_P)

5.命名 FOREIGN KEY 约束,以及为多个列定义 FOREIGN KEY 约束

ALTER TABLE Orders

ADD CONSTRAINT fk_PerOrders

FOREIGN KEY (Id_P)

REFERENCES Persons(Id_P)

6.撤销 FOREIGN KEY 约束

①MySQL:

ALTER TABLE Orders

DROP FOREIGN KEY fk_PerOrders

②SQL Server / Oracle / MS Access:

ALTER TABLE Orders

DROP CONSTRAINT fk_PerOrders

八、SQL CHECK 约束

1.SQL CHECK 约束

CHECK 约束用于限制列中的值的范围。

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

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

2.在 "Persons" 表创建时为 "Id_P" 列创建 CHECK 约束

CHECK 约束规定 "Id_P" 列必须只包含大于 0 的整数。

①My SQL:

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)

)

3.命名 CHECK 约束,以及为多个列定义 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')

)

4.在表已存在的情况下为 "Id_P" 列创建 CHECK 约束

ALTER TABLE Persons

ADD CHECK (Id_P>0)

5.命名 CHECK 约束,以及为多个列定义 CHECK 约束

ALTER TABLE Persons

ADD CONSTRAINT chk_Person CHECK (Id_P>0 AND City='Sandnes')

6.撤销 CHECK 约束

①MySQL:

ALTER TABLE Persons

DROP CHECK chk_Person

②SQL Server / Oracle / MS Access:

ALTER TABLE Persons

DROP CONSTRAINT chk_Person

九、SQL DEFAULT 约束

1.SQL DEFAULT 约束

DEFAULT 约束用于向列中插入默认值。

如果没有规定其他的值,那么会将默认值添加到所有的新记录。

2.在 "Persons" 表创建时为 "City" 列创建 DEFAULT 约束

CREATE TABLE Persons

(

Id_P int NOT NULL,

LastName varchar(255) NOT NULL,

FirstName varchar(255),

Address varchar(255),

City varchar(255) DEFAULT 'Sandnes'

)

3.通过使用类似 GETDATE() 这样的函数,DEFAULT 约束也可以用于插入系统值

CREATE TABLE Orders

(

Id_O int NOT NULL,

OrderNo int NOT NULL,

Id_P int,

OrderDate date DEFAULT GETDATE()

)

4.在表已存在的情况下为 "City" 列创建 DEFAULT 约束

①MySQL:

ALTER TABLE Persons

ALTER City SET DEFAULT 'SANDNES'

②SQL Server / Oracle / MS Access:

ALTER TABLE Persons

ALTER COLUMN City SET DEFAULT 'SANDNES'

5.撤销 DEFAULT 约束

①MySQL:

ALTER TABLE Persons

ALTER City DROP DEFAULT

②SQL Server / Oracle / MS Access:

ALTER TABLE Persons

ALTER COLUMN City DROP DEFAULT

你可能感兴趣的:(SQL,数据库,sql,笔记,经验分享)