msyql整理(三)数据表操作

创建一个表:

 

CREATE TABLE <表名>

(

字段1,数据类型 列级别约束条件  默认值,

字段2,数据类型 列级别约束条件  默认值,

……

[表级别约束条件]

);

CREATE TABLE tb
(
id INT(11) AUTO_INCREMENT,
name VARCHAR(25) NOT NULL,
PRIMARY KEY(id)
)ENGINE=InnoDB DEFAULT CHARSET=utf8;

如果你不想字段为 NULL 可以设置字段的属性为 NOT NULL 

AUTO_INCREMENT定义列为自增的属性,一般用于主键,数值会自动加1。

PRIMARY KEY关键字用于定义列为主键。 您可以使用多列来定义主键,列间以逗号分隔。例: PRIMARY KEY (id,name)

ENGINE 设置存储引擎,CHARSET 设置编码

 

 PRIMARY KEY 要单独列在下面不然会报错,以前没有这个报错不知道为什么。

 


外键约束

外键用来建立两个表数据之间的联系,可以是一列或者多列,可以有多个外键,每个外键必须等于另一个表主键的某个值。

 

CREATE TABLE tb2
(
id     INT(11)  AUTO_INCREMENT,
name VARCHAR(25),
tbId   INT(11),
PRIMARY KEY(id),
CONSTRAINT fk_tb FOREIGN KEY(tbId) REFERENCES tb(id)
)ENGINE=InnoDB DEFAULT CHARSET=utf8;

 

执行成功后在表tb2上添加名为fk_tb 的外键约束,约束名称为tbId 依赖于tb表的主键id。

 


 

唯一性约束

  要求该值唯一允许为空,但只能出现一个空值

  CONSTRAINT 约束名 UNIQUE(字段名)

CREATE TABLE tb3
(
id    INT(3)  AUTO_INCREMENT,
name VARCHAR(25),
PRIMARY KEY(id),
CONSTRAINT STH UNIQUE(name)
);

 

 

 

 


 

查看表结构

desc  表名;

 

 

NULL:表示该列可以储存NULL值,

KEY:PRI表示该值是主键的一部分,

   MUL表示某个给定值允许出现多次,

     UNI表示该值是UNIQUE索引的一部分。

 

SHOW CREATE TABLE 表名;

查看表的详细信息

 

 


 

修改表

 

修改表名

ALTER TABLE 旧表名 RENAME 新表名;

 

修改表的字段类型

ALTER TABLE 表名  MODIFY  字段名 数据类型;

 

修改字段名

ALTER TABLE 表名 CHANGE 旧字段名  新字段名 新数据类型;

 

添加新字段

ALTER TABLE 表名 ADD 新字段名 数据类型   约束条件(比如NOT NULL);

 

指定位置添加新字段

ALTER TABLE 表名 ADD 新字段 字段类型  约束条件  FIRST;   

FIRST 在第一列添加一个字段。

 

在字段名B后面添加一个新字段

ALTER TABLE 表名 ADD 新字段 字段类型 约束条件 AFTER  字段名B;

 

删除字段

ALTER TABLE 表名 DROP 字段名;

 

修改字段位置

修改为第一个字段

ALTER TABLE 表名 MODIFY  字段  字段类型  FIRST;

 

修改字段A到字段B后。

ALTER TABLE 表名 MODIFY 字段A 字段类型  AFTER 字段B;

 

更改表存储引擎

ALTER TABLE 表名 ENGINE=存储引擎;

 

删除外键约束

ALTER TABLE DROP FOREIGN KEY 约束名;

 

添加外键约束(注意如果表引擎不是InnoDB的报错问题)

 

 

 ALTER TABLE orders ADD CONSTRAINT fk_sid FOREIGN KEY(c_id) REFERENCES customers_info(c_num);

 

添加唯一约束

ALTER TABLE <数据表名> ADD CONSTRAINT <唯一约束名> UNIQUE(<列名>);

删除唯一约束

ALTER TABLE <表名> DROP INDEX <唯一约束名>;

 

删除没有被关联的表

DROP TABLE [IF EXISTS] 表1,表2,……表n;

参数if exists  如果要删除的表不存在就会报错。

 

删除被关联的表

先解除子表外键约束,再删除父表。

 

posted on 2020-03-29 16:24  thotf  阅读(138)  评论(0)    收藏  举报

导航