创建数据表
Usage:CREATE [TEMPORARY] TABLE [IF NOT EXISTS] 数据表名 [(create_definition,…)][table_options] [select_statement]
[TEMPORARY]:创建一个临时表
[table_options]:表的特性参数,如ENGINE[=]存储引擎类型、default charset[=]字符集类型
[select_statement]:SELECT语句描述部分,用于快速创建表
[(create_definition,…)]:表的属性部分
Usage:col_name type [NOT NULL | NULL] [DEFAULT default_value] [AUTO_INCREMENT] [PRIMARY KEY ] [reference_definition]
[AUTO_INCREMENT]:设置自增类型字段,自增类型字段的数据类型必须为整数。向自增类型字段插入一个NULL值时,该字段的值会被自动设置为比上一次插入值更大的值;每一个表只能有一个AUTO_INCREMENT列,并且必须被索引
[PRIMARY KEY ]:设置主键字段
[reference_definition]:为字段添加注释
最基本格式创建表用法:
Usage:CREATE TABLE table_name (列名1 属性,列名2 属性…);
示例:create table tb_admin3(id int(10) auto_increment primary key,user char(10) not null,password char(30) not null,createtime datetime) engine MyISAM default charset utf8;
查看已创建表:show tables;
查看表结构:
desc 表名
show columns from 表名
示例:如果在要查询的库内可以不加库名
desc db_admin.tb_admin;
查看表状态
SHOW TABLE STATUS LIKE '表名'
示例:
show table status like 'tb_admin';
修改表结构
修改字段:
Usage:Alter [IGNORE] TABLE 数据表名 alter_spec[,alter_spec]… [table_options]
[IGNORE]:如果出现重复关键的行则只执行一行,其他重复的行被删除。
[table_options]用于指定一些特性参数如引擎、字符集
alter_spec:子句:用于定义要修改的内容
ADD [COLUMN] create_definition [FIRST | AFTER column_name ] #添加字段
ADD INDEX [index_name] (index_col_name,...) #添加索引名称
ADD PRIMARY KEY (index_col_name,...) #添加主键名称
ADD UNIQUE [index_name] (index_col_name,...) #添加唯一索引
ALTER [COLUMN] col_name {SET DEFAULT literal | DROP DEFAULT} #仅用于更改列的默认值。
CHANGE [COLUMN] old_col_name create_definition #修改字段名/类型
MODIFY [COLUMN] create_definition #定义字段
DROP [COLUMN] col_name #删除字段
DROP PRIMARY KEY #删除主键
DROP INDEX index_name #删除索引
RENAME [AS] new_tbl_name #更改表名
create_definition:用于定义列的数据类型和属性,可查看创建数据表注释
[FIRST | AFTER column_name ]:指定位于哪个字段前面或后面
示例:
添加email字段并修改user数据类型:
alter table tb_admin add email varchar(50) not null,modify user varchar(40);
修改字段名:
alter table tb_admin change user username varchar(30) not null;
删除字段:
alter table tb_admin drop email;
修改约束条件与上便修改字段类似
Usage:Alter TABLE 数据表名 ADD CONSTRAINT 约束名 约束类型 (字段名)
约束类型:
PRIMARY KEY
DEFAULT #默认值
UNIQUE KEY #唯一键
NOT NULL
FOREIGN KEY #外键
删除约束:
删除主键约束的语法格式如下:
Usage:ALTER TABLE 表名 DROP PRIMARY KEY
删除外键约束的语法格式如下:
ALTER TABLE 表名 DROP FOREIGN KEY 约束名
删除唯一性约束的语法格式如下:
ALTER TABLE 表名 DROP INDEX 唯一索引名
修改表的其他选项:
修改表的存储引擎的语法格式如下:
ALTER TABLE 表名 ENGINE[=]新的存储引擎类型
修改表的字符集的语法格式如下:
ALTER TABLE 表名 DEFAULT CHARSET[=]新的字符集
修改表的自增类型字段的初始值的语法格式如下:
ALTER TABLE 表名 AUTO_INCREMENT[=]新的初始值
修改表名
Usage1:ALTER TABLE table_name RENAME AS new_table_name
Usage2:RENAME TABLE 数据表名1 TO 数据表名2
复制表结构(不会复制数据):
Usage1:CREATE TABLE [IF NOT EXISTS] 数据表名 LIKE 源数据表名
补充:如果想要复制数据:
CREATE TABLE [IF NOT EXISTS] 数据表名 as select * from tb_admin;
删除表(删除表是不可逆的):
DROP TABLE [IF EXISTS] 数据表名;
版权声明:本文为weixin_43812198原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。