1. 新增数据表
create table [if not exists] 表名(
字段名字 数据类型,
字段名字 数据类型 -- 最后一行不需要逗号
)[表选项];
if not exists: 如果表名不存在,就创建,否则不执行创建代码。 表选项:控制表的表现 字符集:charset/character set 具体字符集; -- 保证表中数据存储的字符集 校对集合:collate 具体校对集; 存储引擎:engine 具体的存储引擎(innodb和myisam)
-- 创建表
create table if not exists t_student(
name varchar(10),
age int
)charset utf8;
任何一个表的设计都必须指定数据库。
方案1:显式的指定表所属的数据库 create table 数据库名.表名(); -- 将当前数据表创建到指定的数据库下
方案2:隐式的指定表所属数据库。先进入到某个数据库环境,然后这样创建的表自动归属到 某个指定的数据库。 进入数据库环境:use 数据库名字;
2. 查看数据表
数据库能查看的方式,表都可以查看。
2.1 查看所有表:show tables;
2.2 查看部分表,模糊匹配 show tables like 'pattern';
-- 查看表的创建语句
show create table t_student;
show create table t_student\g -- \g 等价于 ;
show create table t_student\G -- \G 将查到的结构旋转90度,变成纵向
desc t_student;
describe t_student;
show columns from t_student;
3. 修改数据表
3.1.1 修改表名 rename table 旧表名 to 新表名;
-- 重命名表:t_student ==> t_stu
rename table t_student to t_stu;
3.1.2 修改表选项修改字符集,校对集和存储引擎alter table 表名 表选项 [=] 值;
-- 修改表选项:字符集
alter table t_stu charset = GBK;
3.2 修改字段
字段操作很多:新增、修改、重名、删除
3.2.1 新增字段alter table 表名 add [column] 字段名 数据类型 [列属性][位置];位置:字段名可以存放到表中的任意位置First: 第一个位置After: 在哪个字段之后:after 字段名;默认是在最后一个字段之后
-- 给学生表增加ID放到第一个位置
alter table t_stu add column id int first;
3.2.2 修改字段修改通常是修改属性或者数据类型alter table 表名 modify 字段名 数据类型 [属性][位置];
-- 将学生表中的number学号字段变成固定长度,且放到第二位(id之后)
alter table t_stu modify number char(10) after id;
3.2.3 重命名字段
alter table change 旧字段 新字段名 数据类型 [属性][位置];
-- 修改学生表中的gender字段为sex
alter table t_stu change gender sex varchar(10);
3.2.4 删除字段alter table 表名 drop 字段名;
-- 删除学生表中的年龄字段(age)
alter table t_stu drop age;
如果表中已经存在数据,那么删除字段会清空该字段的所有数据(不可逆)
4. 删除数据表
drop table 表名1, 表名2...; -- 可以一次性删除多张表
当删除数据表的指令执行之后发生了什么?1. 在表空间中,没有了指定的表(数据也没有了)2. 在数据库对应的文件夹下,表对应的文件(与存储引擎有关)也会被删除
注意:删除有危险,操作需谨慎!(不可逆)