一、创建新表

1、手动定义新表

创建一个具有id,user_id,name,nowtime字段的新表

comment:表示对该字段的描述

[1] 创建多个字段以逗号,隔开

[2] 格式为【字段名称 数据类型 字段约束 comment 字段描述】

[3] 字段约束可以有多个,常见字段约束包括:主键(primary key)、外键(foreign key)、唯一(unique)、非空(not null)、检查约束(check)、默认值(default)后面直接接默认值、可以为空(null)

[4] 主键字段可以通过使用auto_increment来实现自增长列,实现从1开始每次递增1,auto_increment只适用于int字段

[5] varchar(32)表示最多可存英文或数字或中文15个

drop table if exists 表名;
create table if not exists 表名(
id int(11) primary key auto_increment comment '自增ID',
user_id int(11)  NOT NULL comment '用户ID',
name varchar(32) unique comment '姓名',
nowtime datetime null comment '此刻时间',
city varchar(32) default beijing comment '城市'
);

2、通过复制已有表结构创建新表

LIKE语法只复制表的结构,不复制表的数据

create table if not exists 新表名 like 旧表名;

3、利用查询语句创建表

如果没有limit 0会复制旧表的所有数据,limit也算控制复制旧表的数据量

create table if not exists 新表名 select 字段 from 旧表名 limit 0;

二、修改表中字段

1、add添加字段
alter table 表名 add 新字段 字段类型 (first)/(after 字段1);

2、change修改字段名(数据类型若无需改动则保持原样)
alter table 表名 change 旧字段 新字段 新数据类型;

3、modify修改字段约束(一定要接字段类型)
alter table 表名 modify 字段 字段类型 新约束;

4、drop删除列
alter table 表名 drop column 字段;

5、rename to修改表名
alter table 旧表名 rename to 新表名;

三、对存在的表进行添加/删除索引

1、添加索引

1、使用create添加普通/唯一/全文索引
create index 索引名 on 表名(字段); 
create unique/fulltext index 索引名 on 表名(字段); 

2、使用alter table添加普通/唯一/全文索引
alter table 表名 add index 索引名(字段);
alter table 表名 add unique/fulltext index 索引名(字段);

2、删除索引

drop index 索引名 on 表名;

或

alter table 表名 drop index 索引名;

四、删除表

drop table if exists 表名;

五、插入数据

1、使用insert into

[1] 可选择插入字段,可插入多条数据,字段要与字段值一一对应

[2] 如果省略表名后面的字段列表,默认插入包含所有字段的数据。如果不是插入全部字段数据,就必须要使用字段列表

[3]字段约束为not null—必须插入数据,若为null—没有数据也要写上null,auto increment无需插入数据(所以遇到包含自增列的表,就要写明插入数据的字段列表)

insert into 表名 (字段1,字段2,...) 
values(字段1值, 字段2值,...),
(字段1值, 字段2值,...);
insert into 表名 (字段1,字段2,...)
select 字段1,字段2,... from 表1 where 筛选条件;

2、使用replace into

[1] 使用replace into插入数据必须表中含有主键或唯一索引,不然该方法会直接插入数据可能出现重复数据的情况

[2] 如果该表含有这些必备要求,该方法会根据主键或者唯一索引进行判断表中是否含有该条数据,如果有先删除再继续插入

replace into 表名 (字段1,字段2,...) 
values(字段1值, 字段2值,...),
(字段1值, 字段2值,...);

六、更新数据

[1] 下面【】内包含的是将符合条件的字段值替换为新值,属于部分更新

update 表名
set 字段1=新值1 【where 字段1=旧值1】,字段2=新值2;

七、删除数据

1、delete from

后接where子句可以实现部分删除,不接即删除所有数据

delete from 表名 where 筛选条件;

2、truncate

truncate是删除表中所有数据,不能与where子句连用

truncate 表名;