目录
创建数据表
创建数据表使用create table语句,语法如下:
create [temporary] table [if not exists] 数据表名
[(create_definition,...)] [table_options] [select_statement];
关键字 | 说明 |
temporary | 如果使用该关键字,表示创建一个临时表 |
if not exists | 该关键字用于避免表存在时报告的错误 |
create_definition | 这是表的列属性,在创建表时,表至少要包含一列 |
table_options | 表的一些特性参数 |
select_statement | select语句描述部分,用它可以快速创建表 |
列属性create_definition,每一列定义的具体格式如下:
col_name type [not null|null] [default default_value] [auto_increment] [primary key] [reference_definition]
参数 | 说明 |
col_name | 字段名 |
type | 字段类型 |
not null|null | 指出该列是否允许是空值 |
default default_value | 设置一个默认值 |
auto_increment | 表示是否自动编号,每个表只能有一个auto_increment列 |
primary key | 主键,只能有一个主键或者没有主键 |
reference_definition | 为字段添加注释 |
最基本的创建表格格式如下:
create table 数据表名(列名1 属性,列名2 属性 ...);
CREATE TABLE tb_admin(
id INT AUTO_INCREMENT PRIMARY KEY,
USER VARCHAR(30) NOT NULL,
PASSWORD VARCHAR(30) NOT NULL,
createtime DATETIME);
查看表结构
对于一个已经成功创建的数据表,可以使用 show 或者describe(或者desc)来查看指定数据表的结构。语法如下:
使用show cloumns来查看
show [full] columns from 数据表名 [from 数据库名];
或
show [full] columns from 数据库名.数据表名;
SHOW COLUMNS FROM db_admin.`tb_admin`;
SHOW COLUMNS FROM tb_admin FROM db_admin;
使用describe语句来查看
describe 数据表名
或
desc 数据表名
查看表结构时,也可以只列出某一列信息。语法如下:
describle 数据表名 列名
DESCRIBE tb_admin ;
DESC tb_admin id;
DESCRIBE tb_admin createtime;
修改表结构
修改表结构 alter table 语句,指增加或删除字段、修改字段名称、修改字段类型、设置取消主外键、设置取消索引及修改表的注释等,语法如下:
alter [ignore] table 数据表名 alter_spec[,alter_spec]...
参数说明如下:
[ignore]:可选项,表示如果出现重复关键的行,则只执行一行,其他重复的行被删除
数据表名:用于指定要修改的数据表的名称
alter_spec子句:用于定义要修改的内容,其语法格式如下:
add [column] create_definition [first| after column_name] //添加新字段
ALTER TABLE tb_admin ADD notice VARCHAR(30) NULL DEFAULT 'null' AFTER createtime; #在createtime后面增加一个字段 notice
ALTER TABLE tb_admin ADD email VARCHAR(50) NOT NULL #尾部增加一个字段email
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 //修改字段名/类型
ALTER TABLE db_admin.`tb_admin` CHANGE COLUMN USER username VARCHAR(30) NULL DEFAULT NULL;
modify [column] create_definition //修改子句定义字段属性
ALTER TABLE tb_admin ADD fox VARCHAR(50) NOT NULL,MODIFY USER VARCHAR(40);
drop [column] col_name //删除字段名称
ALTER TABLE db_admin.`tb_admin` DROP fox;
drop primary key //删除主键名称
drop index index_name //删除索引名称
rename [as] new_tbl_name //更改表名
ALTER TABLE tb_admin RENAME AS admin;
※说明:
alter table语句运行指定多个动作,动作之间用逗号分隔,每个动作代表对表的一个修改。
重命名表
重命名数据表可以使用rename table 语句来实现,基本语法格式如下:
rename table 数据表名1 to 数据表名2
RENAME TABLE admin TO tb_admin;
复制表
创建表的create table命令还有另外一种语法结构, 在一张已经存在的数据表的基础上创建一份该表的备份,也就是复制表。该表的内容为空只会复制元数据表的列名、数据类型和索引,新创建的表是一张空表,语法格式如下:
create table [if not exists] 数据表名 { like 源数据表名|(like 源数据表名)};
数据表名:表示新创建的数据表名,该数据表名必须是在当前数据库中不存在的表名
{ like 源数据表名|(like 源数据表名)}:必选项,用于指定依照哪个数据表来创建新表,也就是为哪个数据表创建副本
CREATE TABLE tb_admin1 LIKE tb_admin;
删除表
删除表与删除数据库的操作类似,使用drop语句,语法如下:
drop table [if exists] 数据表名;
DROP TABLE if exists tb_admin1;