create table [if not exists] 表名字(
字段名 数据类型,
字段名 数据类型 -- 最后一行不需要逗号
)[表选项];
if not exists:如果表名不存在,那么就创建;否则不执行创建代码,检查功能;
表选项:控制表的表现,
字符集:charset/character set 具体字符集 -- 保证表中数据存储的字符集
校对集:collate 具体校对集
存储引擎:engine 具体的存储引擎(innodb和myisam)
a.任何一个表的设计都需要指定数据库,指定数据库方法:
①.create table 数据库名字.表名() -- 将当前数据表创建到指定数据库下
②.隐式指定表所属数据库:先进入到某个数据库环境,这样创建的表自动归属到某个指定的数据库;
进入数据库环境 :use 数据库环境;
b.创建数据表的SQL指令执行之后,到底发生了什么?
指定数据库下已经存在对应表;在数据库对应文件夹下,会产生对应表的结构文件(与存储引擎有关);
c.查看所有表 show tables;
查看部分表 show tables like 'pattern' -- pattern匹配模式,模糊查询
查看表的创建语句 show create table 表名;
show create table my_student\g -- \g等价于;
show create table my_student\G -- \G等价于将查询到的结果旋转90°纵向
查看表结构(表的字段信息) desc / describe / show columns from 表名;
Field:字段名字; Type:列类型数据类型; Null:列属性是否允许为空; Key:索引,索引类型(PRI主键 UNI唯一键);
Default:默认值 大部分字段默认为Null ;Extra:列属性,扩充额外的,描述不下的
d.修改数据表:修改表本身和修改字段
表本身可以修改的有表名和表选项;
修改表名 rename table 老表名 to 新表名;
修改表选项 alter table 表名 [表选项] [=] 值;
f.修改字段:新增 修改 删除 重名
新增字段:alter table 表名 add [column] 字段名 数据类型 [列属性] [位置]
位置:字段名可以放在表中任意位置 First:第一个位置; After:在哪个字段之后,after 字段名 ;默认是最后一个字段
之后
修改字段:通常是修改属性或数据类型 alter table 表名 modify 字段名 数据类型 [列属性] [位置]
alter table my_class modify name char(10);
重命名字段:alter table 表名 change 旧字段名 新字段名 数据类型 [列属性] [位置]
alter table my_class change name number varchar(10) ;
删除字段:alter table 表名 drop 字段;
如果表中已经存在数据那么删除字段会清空该字段所有数据;
删除数据表:drop table 表名1,表名2,表名3...... -- 可以一次删除多张表
删除数据表后执行发生了什么?表空间中没有了指定表,数据库对应文件夹下表对应文件也会被删除