CREATE TABLE <表名>
(
字段名1,数据类型[列级别约束条件] [默认值],
字段名2,数据类型[列级别约束条件] [默认值],
......
[表级别约束条件]
);
单字段主键:
在定义列的同时指定主键;
CREATE TABLE tp_emp1
(
idINT(11) PRIMARY KEY,
nameVARCHAR(25),
deptIdINT(11),
salaryFLOAT
);
在定义完所有列之后指定主键
CREATE TABLE tp_emp2
(
idINT(11),
nameVARCHAR(25),
deptIdINT(11),
salaryFLOAT,
PRIMARYKEY(id)
);
多字段联合主键:
CREATE TABLE tp_emp3
(
idINT(11),
nameVARCHAR(25),
deptIdINT(11),
salaryFLOAT,
PRIMARYKEY(name,deptId)
);
外键用来在两个表的数据之间建立链接,它可以是一列或者多列。一个表可以有一个或多个外键。外键对应的是参照完整性,一个表的外键可以为空值,若不为空值,则每一个外键值必须等于另一个表中主键的某个值。
外键:首先它是表中的一个字段,它可以不是本表的主键,但对应另外一个表中的主键。
主表(父表):对于两个具有关联关系发的表而言,相关联字段中主键所在的那个表即是主表。
从表(子表):对于两个具有相关联关系的表而言,相关联字段中外键所在的那个表即是从表。
创建外键的语法规则:
[CONSTRAINT <外键名>]FOREIGN KEY 字段名1[,字段名2,...]REFERENCES <主表名> 主键列1 [,主键列2,...]
CRE
CREATE TABLE dept
(
idint(11) PRIMARY KEY,
namevarchar(22) NOT NULL,
location varchar(50),
);
create table tp_emp4
(
idint(11) PRIMARY KEY,
name varchar(25),
dept_idint(11),
salary float,
CONSTRAINT fk_emp_dept FOREIGN KEY(dept_id) REFERENCES dept(id)
);
唯一性约束,要求该列唯一,允许为空,但只能出现一个空值。唯一约束可以确保一列或者几列不出现重复值。
语法规则:
在定义完列之后直接指定唯一约束
字段名 数据类型 UNIQUE
CREATE TABLE tb_dept2
(
idint(11) PRIMARY KEY,
namevarchar(22) UNIQUE,
location varchar(50),
);
在定义完所有列之后指定唯一约束
[CONSTRAINT <约束名>]UNIQUE (<字段名>)
CREATE TABLE tb_dept3
(
idint(11) PRIMARY KEY,
namevarchar(22),
locationvarchar(50),
CONSTRAINT STHUNIQUE(name)
);
一个表中可以有多分字段声明为UNIQUE,但只能有一个PRIMARY KEY声明;声明为PRIMARY KEY的列不允许为空值,但是声明为UNIQUE的字段允许为空值的存在。
默认约束指定某列的默认值。
语法规则:
字段名 数据类型 DEFAULT 默认值
create table tp_emp4
(
idint(11) PRIMARY KEY,
name varchar(25),
dept_id int(11) DEFAULT 1111,
salary float,
CONSTRAINT fk_emp_dept FOREIGN KEY(dept_id) REFERENCES dept(id)
);
语法规则:
字段名 数据类型 AUTO_INCREMENT
create table tp_emp4
(
idint(11) PRIMARY KEY ANTO_INCREAMENT,
name varchar(25),
dept_id int(11),
salary float,
CONSTRAINT fk_emp_dept FOREIGN KEY(dept_id) REFERENCES dept(id)
);
DESCRIBE/DESC语句可以查看表的字段信息,其中包括:字段名、字段类型、是否为主键、是否有默认值等。
语法规则:
DESCRIBE 表名; 或者 DESC 表名;
SHOW CREATE TABLE语句可以用来显示创建表时的CREATE TABLE语句,语法格式:
SHOW CREATE TABLE<表名\G>;
修改表名
ALTER TABLE<旧表名>RENAME[TO] <新表名>;
修改字段的数据类型
ALTER TABLE <表名>MODIFY<字段名> <数据类型>;
修改字段名
ALTER TABLE <表名>CHANGE<旧字段名> <新字段名><新数据类型>;
添加字段
ALTER TABLE <表名>ADD <新字段名> <数据类型> [约束条件] [FIRST | AFTER 已存在字段名]
“FIRST”为可选参数,其作用是将新添加的字段设置为表的第一个字段;“AFTER”为可选参数,其作用是将新添加的字段添加到指定的“以存在字段名”的后面。
删除字段:
语法格式:
ALTER TABLE <表名>DROP <字段名>;
修改字段的排列位置
ALTER TABLE <表名>MODIFY<字段1> <数据类型>[FIRST | AFTER 字段2]
修改表的存储引擎
ALTER TABLE <表名>ENGINE=<更改后的存储引擎名>
删除表的外键约束
ALTER TABLE <表名>DROPFOREIGN KEY<外键约束名>
删除没有被关联的表
DROP TABLE [IF EXISTS]表1,表2,...,表n;
删除被其他表关联的主表
现解除关联子表额外键约束,再删除数据表。