数据库sql建库建表

库/////////////////////////////////////////////

建库:

CREATE DATABASE 数据库名称

 

删除库:

 

DROP DATABASE 数据库名称

 

 

表/////////////////////////////////////////////

建表:

 

CREATE TABLE IF NOT EXISTS 'wen'

 

CREATE TABLE 表名称

(

列名称1 数据类型,

列名称2 数据类型,

列名称3 数据类型,

....

)

 

 

CREATE TABLE Persons

(

Id_P int,

LastName varchar(255),

FirstName varchar(255),

Address varchar(255),

City varchar(255)

)

 

修改表:

把表名A 修改成表名B
ALTER TABLE A RENAME TO B

 

ALTER TABLE table_name

ADD column_name datatype

 

 

ALTER TABLE table_name

ALTER COLUMN column_name datatype

 

 

ALTER TABLE table_name 

DROP COLUMN column_name

 

删除表:

 

DROP TABLE 表名称

 

TRUNCATE TABLE 表名称//仅删除表数据

 

//////////////////////////////////////////////////////////////////////////////////////////

//////////////////////////////////////////////////////////////////////////////////////////

约束:

1.主键PRIMARY KEY

唯一且不为空

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

建表时

 

 

CREATE TABLE Persons

(

Id_P int NOT NULL,

PRIMARY KEY (Id_P)

)

 

 

CREATE TABLE Persons

(

Id_P int AUTOINCREMENT PRIMARY KEY,//自增的

 

 

CREATE TABLE Persons

(

P_Id int NOT NULL,

PRIMARY KEY (P_Id)

)

 

CREATE TABLE Persons

(

Id_P int NOT NULL,

LastName varchar(255) NOT NULL,

CONSTRAINT uc_PersonID PRIMARY KEY (Id_P,LastName)//多字段时。并命名主键

)

 

更改表时

 

ALTER TABLE Persons

ADD PRIMARY KEY (Id_P)

 

ALTER TABLE Persons

ADD CONSTRAINT pk_PersonID PRIMARY KEY (Id_P,LastName)

 

删除

 

ALTER TABLE Persons

DROP PRIMARY KEY

 

ALTER TABLE Persons

DROP CONSTRAINT pk_PersonID

 

2.外键FOREIGN KEY

 

FOREIGN KEY 约束用于预防破坏表之间连接的动作。

FOREIGN KEY 约束也能防止非法数据插入外键列,因为它必须是它指向的那个表中的值之一。

 

建表时

 

CREATE TABLE Orders

(

Id_P int,

FOREIGN KEY (Id_P) REFERENCES Persons(Id_P)

)

CREATE TABLE Orders

(

Id_P int FOREIGN KEY REFERENCES Persons(Id_P)

)

 

CREATE TABLE Orders

(

Id_P int,

CONSTRAINT fk_PerOrders FOREIGN KEY (Id_P)//多键时

REFERENCES Persons(Id_P)

)

 
修改表时

ALTER TABLE Orders

ADD FOREIGN KEY (Id_P)

REFERENCES Persons(Id_P)

 

ALTER TABLE Orders

ADD CONSTRAINT fk_PerOrders

FOREIGN KEY (Id_P)

REFERENCES Persons(Id_P)

 

删除

 

ALTER TABLE Orders

DROP FOREIGN KEY fk_PerOrders

 

ALTER TABLE Orders

DROP CONSTRAINT fk_PerOrders

 

 

3.唯一UNIQUE

 

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

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

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

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

 

建表时

 

CREATE TABLE Persons

(

Id_P int NOT NULL,

UNIQUE (Id_P)

)

 

CREATE TABLE Persons

(

Id_P int NOT NULL UNIQUE,

)

 

CREATE TABLE Persons

(

Id_P int NOT NULL,

LastName varchar(255) NOT NULL,

CONSTRAINT uc_PersonID UNIQUE (Id_P,LastName)//多键时

)

 

修改表时

 

ALTER TABLE Persons

ADD UNIQUE (P_Id)

 

ALTER TABLE Persons

ADD CONSTRAINT uc_PersonID UNIQUE (P_Id,LastName)

 

删除

 

 

ALTER TABLE Persons

DROP INDEX uc_PersonID

 

ALTER TABLE Persons

DROP CONSTRAINT uc_PersonID

 

 

4.非空NOT NULL

NOT NULL 约束强制列不接受 NULL 值。

CREATE TABLE Persons

(

Id_P int NOT NULL,

LastName varchar(255) NOT NULL,

)

 

5.检查CHECK

 

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

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

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

 

建表时

 

CREATE TABLE Persons

(

Id_P int NOT NULL,

CHECK (Id_P>0)

)

 

CREATE TABLE Persons

(

Id_P int NOT NULL CHECK (Id_P>0),

)

 

修改表时

 

ALTER TABLE Persons

ADD CHECK (Id_P>0)

 

ALTER TABLE Persons

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

 

删除

 

 

ALTER TABLE Persons

DROP CONSTRAINT chk_Person

6.默认DEFAULT 

 

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

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

 

 

CREATE TABLE Persons

(

City varchar(255) DEFAULT 'Sandnes'

)

 

CREATE TABLE Orders

(

OrderDate date DEFAULT GETDATE()//可用系统函数

)

修改表时

 

ALTER TABLE Persons

ALTER City SET DEFAULT 'SANDNES'

 

ALTER TABLE Persons

ALTER COLUMN City SET DEFAULT 'SANDNES'

 

删除

 

ALTER TABLE Persons

ALTER City DROP DEFAULT

 

ALTER TABLE Persons

ALTER COLUMN City DROP DEFAULT

 

 

索引:

 

视图:

 

 

 

 

  • integer(size)
  • int(size)
  • smallint(size)
  • tinyint(size)

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

integer与int没有区别

  • decimal(size,d)
  • numeric(size,d)

容纳带有小数的数字。

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

暂看没有区别

char(size)

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

在括号中规定字符串的长度。是char类型当你输入字符小于长度时,后补空格;

varchar(size)

容纳可变长度的字符串(可容纳字母、数字以及特殊的字符)。

在括号中规定字符串的最大长度。而varchar类型时,则表示你输入字符的实际长度

date(yyyymmdd) 容纳日期。

 我的话费充值店-各种面额

电信100元仅售98.60 
联通100仅售99.00
移动100仅售99.30

猜你喜欢

转载自wenzongliang.iteye.com/blog/1569809