Dql:
查询执行顺序
select 字段列表
from 表名1
[inner] join 表名2 on 条件
where 筛选条件
group by 分组条件
having 分组后的筛选条件
distinct 去重
order by 排序字段
limit 起始的条目索引,条目数
DDL:
1.数据库操作
创建数据库:create database 数据库名称;
判断不存在创建数据库:create database if not exits 数据库名称;
创建数据库指定字符集: create database 数据库名称 character set 字符集名;
查询所有数据库名称:show database;
查询当前正在使用的数据库:select database();
查询某个数据库的创建语句: show create database 数据库名称;
修改数据库的字符集:alter create database 数据库名称 character set 字符集名;
删除数据库: drop database 数据库名称;
2. 数据表操作
create table 表名(
列名1 数据类型1 【字段约束】,
列名2 数据类型2 【字段约束】,
....
列名n 数据类型n 【字段约束】
);
查询当前数据库里面的所有表:show tables;
查询指定数据库里面的所有表:show tables from 数据库名称;
查询表结构:desc 表名;
修改表名:alter table 表名 rename to 新表名;
修改表的字符集:alter table 表名 character set 字符集;
添加一列:alter table 表名 add 列名 数据类型;
修改列名称:alter table 表名 change 列名 新列别 新数据类型;
修改列类型:alter table 表名 modify 列名 新数据类型;
删除列: alter table 表名 drop 列名;
删除表:drop table database;
DML:
添加数据: insert into 表名(列名1,列名2,...列名n) values(值1,值2,...值n);
删除数据:delete from 表名 [where 条件]
如果删除全部数据推荐:
1. delete from 表名; -- 不推荐使用。有多少条记录就会执行多少次删除操作
2. TRUNCATE TABLE 表名; -- 推荐使用,效率更高 先删除表,然后再创建一张一样的表。
delete与TRUNCATE区别?
1.truncate不能加where条件,而delete可以加where条件
2.truncate的效率高
3.truncate 删除带自增长的列的表后,如果再插入数据,数据从1开始
4.delete 删除带自增长列的表后,如果再插入数据,数据从上一次的断点处开始
5.truncate删除不能回滚,delete删除可以回滚
修改表:单表:update 表名 set 列名1 = 值1, 列名2 = 值2,... [where 条件];
多表:update 表1 别名1,表2 别名2 set 字段=新值,字段=新值 where 连接条件 and 筛选条件;