1. 新增数据表
基本语法:
create table [if not exists] 表名(
字段名字 数据类型,
字段名字 数据类型 -- 最后一行不需要逗号
)[表选项];
复制代码
解释:
if not exists:如果表名不存在,那么创建,否则不执行创建代码(检查功能)
表选项:控制表的表现
字符集:charset/charset set 具体字符集; -- 保证表中数据存储的字符集
校对集:collate 具体校对集;
存储引擎:engine 具体的存储引擎(innodb 和 myisam)
任何一个表的设计都必须指定数据库。
-
方案1:显示的指定表所属的数据库
create tabe 数据库名.表名(); -- 将当期数据表创建到指定的数据库中 复制代码
例:
-- 创建数据表 create table if not exists mydatabase.student( -- 显示的student表放到mydatabase数据库下 name varchar(10), gender varchar(12), number int age int )charset utf8; 复制代码
-
方案2:隐式的指定表所属数据库:先进入到某个数据库环境,然后这样创建的表自动归属到某个指定的数据库。
进入数据库环境:use 数据库名字;
例:
-- 创建数据表 -- 进入数据库 use mydatabase; -- 创建表 create table class( name varchar(10), room varchar(10) )charset utf8; 复制代码
当创建数据表的SQL指令执行之后,发生了什么?
- 指定数据库下已存在对应的表
- 在数据库对应的文件夹下,会产生对应表的数据结构文件(跟存储引擎有关系)
2. 查看数据表
-
查看所有表
基本语法:
show tables; 复制代码
-
查看部分表:模糊匹配
基本语法:
show tables like 'pattern'; 复制代码
例:
--查看以s结尾的表 show table like '%s'; 复制代码
-
查看表创建语句
基本语法:
show create table 表名; 复制代码
例:
-- 查看表创建语句 show create table student\g -- \g 等同于 ; show create table student\G -- 将查到的结构旋转90度变成纵向。 复制代码
-
查看表结构:查看表中的字段信息
基本语法:
~~~ desc/describe/show columns from 表名; ~~~ 例: ~~~ -- 查看表结构 desc calss; describe calss; show columns from class; // 以上三种语法表达的意思都一样 ~~~ 复制代码
3. 修改数据表
表本身存在,还包含字段:表的修改包含两部分:修改表本身和修改字段。
- 修改表本身
表本身可以修改:表名和表选项
-
修改表名:
rename table 老表名 to 新表名; 复制代码
-
修改表选项:字符集、校对集和存储引擎
alter table 表名 表选项 [=] 值; 复制代码
例:
-- 修改表选项:字符集 alter table my_student clarset = GBK; 复制代码
- 修改字段
字段操作很多:新增,修改,重名,删除
-
新增字段:
alter table 表名 add [column] 字段名 数据类型 [列属性][位置]; 位置:字段名可以存放表中任意位置 first:第一个位置 after:在哪个字段之后:after字段名;默认的是在最后一个字段之后。 复制代码
例:
-- 给学生表增加ID放在第一个位置 alter table my_student add column id int first; 复制代码
-
修改字段:修改通常是修改属性或者数据类型
alter table 表名 modify 字段名 数据类型 [属性][位置]; 复制代码
例:
-- 将学生表中的number学号字段变成固定长度,且放到第二位(id之后) alter table my_student modify number char(10) after id; 复制代码
-
重命名字段
alter table 表名 change 旧字段 新字段 数据类型 [属性][位置]; 复制代码
例:
-- 修改学生表中的 gender字段为sex alter table my_student change gender sex varchar(10); 复制代码
-
删除字段
alter table 表名 drop 字段名; 复制代码
小心: 如果表中已经存在数据,那么删除字段会清空该字段的所有数据(不可逆)
4. 删除数据表
基本语法:
drop table 表名1,表名2; --可以一次性删除多张表
复制