目录
1、创建表
语法格式:
create table 表名 (
字段名1 字段类型 【not null】【comment 'xxx'】,
字段名2 字段类型 【not null】【comment 'xxx'】,
... ...
) engine 存储引擎 【character set 字符集】 【collate 校验规则】;
- 【】:代表可选项
- not null:表示字段不可为空
- comment:表示注释
- character set:如果没有指定字符集,以所在数据库使用的字符集为准
- collate:如果没有指定校验规则,以所在数据库使用的校验规则为准
案例:创建一个表 users,存储引擎为 MyISAM,字符集为 utf8
create table users (
id int,
name varchar(20) comment '用户名',
password char(32) comment '密码是32位的md5值',
birthday date comment '生日'
) character set utf8 engine MyISAM;
2、查看表结构
语法格式:
desc 表名;
3、删除表
语法格式:
drop table 【if exists】 表1 【, 表2, ...】
- 【】:代表可选项
- if exists:判断表是否存在,如果存在就删除表;如果不在就不做任何操作
案例:删除表 users
drop table if exists users
2、修改表结构(字段名、字段大小、主键等)
修改表结构使用的是 alter 命令,基本语法格式:
-- 后面接具体的操作(修改字段: change、修改表名: rename)
alter table 表名 ...
表结构可被修改的部分包含:
- 字段相关:字段名称、字段大小、字段类型、添加字段、删除字段
- 字符集类型
- 存储引擎
- 表的名称
- 追加 / 删除主键
- ... ...
(1) 修改字段名称 / 类型 / 大小 (change)
修改字段名称需要提供一个完整的字段定义:字段名称 字段类型(字段大小)
-- 修改字段名
alter table users change name new_name varchar(20); -- name -> new_name
-- 修改字段类型(也可以使用modify)
alter table users change name name int(20); -- varchar -> int
-- 修改字段大小(也可以使用modify)
alter table users change name name varchar(40); -- 20 -> 40
(2) 修改字段类型 / 大小 (modify)
modify 无法修改字段名称
-- 修改字段大小
alter table users modify name int(20); -- varchar -> int
-- 修改字段大小
alter table users modify name varchar(60); -- 20 -> 60
(3) 添加字段 (add)
添加字段需要提供完整的字段定义:字段名称 字段类型(字段大小)
除此之外,还可以控制新添加的字段放在哪个字段的后面
-- 新增age字段:
-- 字段类型为varchar
-- 字段大小为10
-- 注释为'年龄'
-- 放在字段name的后面
alter table users add age varchar(10) comment '年龄' after name;
(4) 删除字段 (drop)
删除字段也会删除该字段对应的数据。
-- 删除字段 password
alter table users drop password;
(5) 修改表名 (rename)
-- 修改users表的表名为 employee
alter table users rename to employee;
(6) 删除 / 追加主键
追加主键:
-- 追加主键: alter table 表名 add primary key(字段名);
alter table users add primary key(id);
删除主键(前提是表中无其他主键):
-- 删除主键: alter table 表名 add primary key;
alter table users drop primary key;