## 数据表操作
注意 : 对表的操作必须要选定数据库.
#### 创建数据表
~~~
create table 表名 (
字段名 字段类型 [字段属性],
字段名 字段类型 [字段属性],
...
) [表选项];
~~~
~~~
create table class(
id int zerofill auto_increment primary key,
name char(20) not null,
age tinyint unsigned not null
) charset utf8;
~~~
#### 复制已有表结构(只复制结构,不复制数据)
~~~
create table 新表名 like 需要复制结构的表名;
~~~
#### 显示所有表
~~~
show tables;
~~~
#### 显示表结构
~~~
desc 表名;
+-------+---------------------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+-------+---------------------------+------+-----+---------+----------------+
| id | int(10) unsigned zerofill | NO | PRI | NULL | auto_increment |
| name | char(20) | NO | | NULL | |
| age | tinyint(4) | NO | | NULL | |
+-------+---------------------------+------+-----+---------+----------------+
~~~
* Field : 字段名称.
* Type : 字段类型.
* Null : 是否允许未空,yes表示允许.
* Key : 索引.
* Default : 默认值, NULL表示默认为NULL.
* Extra : 额外属性.
#### 显示表创建语句
~~~
show create table 表名;
~~~
#### 修改表属性(表属性就是engine,charset,collate)
~~~
alter table class
如:
alter table class engine innodb,charset utf8;
~~~
#### 修改表名
~~~
rename table 旧表名 to 新表名;
~~~
#### 新增字段
~~~
alter table 表名 add 字段名 字段类型 [字段属性] [位置];
如:
alter table 表名 add age tinyint not null unsigned comment '年龄' after height;
在表中height字段后面添加age字段无符号,微整型.
~~~
#### 修改字段名(修改字段名一定要就会清空字段属性,所以连字段属性也要设置,不要以为仅仅修改表名就行了)
~~~
alter table 表名 change 旧字段名 新字段名 字段属性 新位置;
~~~
#### 修改字段类型/属性
~~~
alter table 表名 modify 字段名 字段属性 [位置];
~~~
#### 删除字段
~~~
alter table 表名 字段名;
~~~
#### 删除表
~~~
drop table 表1,表2;
~~~
- 数据库介绍
- 数据库基本概念
- SQL介绍
- MySQL服务端架构
- 库操作
- 表操作
- 字段类型
- 整数类型
- 小数类型
- 字符串类型
- 日期/时间类型
- json类型
- 字段属性
- Null
- 默认值
- 列描述
- 主键
- 自动增长
- 唯一键
- 数据库基础操作
- 增
- 删
- 改
- 查
- 运算符
- 算术运算符
- 比较运算符
- 逻辑运算符
- in运算符
- is运算符
- like运算符
- 高级查询
- 联合查询
- 连接查询
- 交叉连接
- 内连接
- 外连接
- Using关键字
- 子查询
- 标量子查询
- 列子查询
- 行子查询
- 表子查询
- exists子查询
- 子查询特定关键字
- 用户权限管理
- 用户管理
- 权限管理
- 外键
- 外键操作
- 外键基本要求
- 约束
- 视图
- 事务安全
- 自动事务
- 手动事务
- 事务特点
- 变量
- 系统变量
- 会话变量
- 局部变量
- 流程结构
- if分支
- while循环
- 函数
- 内置函数
- 字符串函数
- 时间函数
- 数学函数
- 其他函数
- 存储过程
- 与函数的区别
- 存储过程操作
- 存储过程的形参类型
- 触发器
- 触发器概念
- 触发器操作