基础
数据库的命令:
查看所有数据库: show databases;
查看当前使用的数据库:select database();
切换数据库:use 数据库名;
创建数据库:create database 数据库名 charset=utf8;
删除数据库:drop database 数据库名;
数据表的命令:
查看所有的表:show tables;
创建表:create table 表名(id int auto_increment primary key not null,...)
删除表:drop table 表名;
修改表:alter table 表名 add | change | drop 列;
数据的命令:
查询:select * from 表名;
增加:insert into 表名 values(...);
修改:update 表名 set 字段=值 ...
删除:delete from 表名;
逻辑删除:在表中增加一个列,比如增加一个列名为isDelete的列,类型为bool类型,将需要删除的记录的该字段值修改为1,而不是正真删除该记录。查询时,只要查询isDelete=0的记录就可以了。
基本查询:
select * from 表名;
select 列名1,列名2,... from 表名;
distinct 关键字 消除重复的行
select distinct 列名1,列名2,... from 表名;
条件查询:
select * from 表名 where 条件;
模糊查询:
like:
%:表示任意多个字符
_:表示任意一个字符
select * from 表名 where 列名 like ‘xx%x‘;
范围查询:
in:表示在一个非连续的范围内
查询id为1或3或4的记录
select * from 表名 where id in(1,3,4);
between ... and ... :表示在一个连续的范围内
查询id在1到4之间的记录
select * from 表名 where id between 1 and 4;
空判断:
注意:null与‘‘(两个单引号之间什么都没有,表示一个空字符串)是不同的
判断:is null
聚合:mysql中常用的5个聚合函数
count(*):计算总行数,括号中写*或列名
select count(*) from 表名;
max(列):表示求此列的最大值
select max(id) from 表名;
min(列):表示求此列的最小值
select min(id) from 表名;
sum(列):表示求此列的和
select sum(id) from 表名;
avg(列):表示求此列的平均值
select avg(id) from 表名;
分组:
按照字段分组:表示此字段相同的数据会被放到一个组中,分组后,只能查询出相同的数据列,对于有差异的数据列无法出现在结果集中。可以对分组后的数据进行统计,做聚合运算
select 列1,列2,聚合 ... from 表名 group by 列1,列2...
分组后的数据筛选:
select 列1,列2,聚合 ... from 表名
group by 列1,列2,列3...
having 列1,...聚合...
注意:having和where的区别:
where:是对from后面指定的表进行数据筛选,属于对原始数据进行筛选
having:表示对group by(分组后)的结果集进行筛选
原始集---where--->结果集---group--->结果集---having--->
排序:
select * from 表名 order by 列1 asc | desc,列2 asc | desc,...
分页:
select * from 表名 limit start,count
表示从start开始,获取count条数据,start索引从0开始
示例:
已知:每页显示m条数据,当前显示第n页(n从1开始)
求总页数:
查询总条数p1
使用p1除以m得到p2
如果整除则p2为总页数
如果不整除则p2+1为总页数
求第n页的数据
首先计算第n页数据的开始索引,计算方法如下:
n start
1 0 第一页,从0开始
2 m 第二页,从m开始
3 (n-1)*m 第n页,从(n-1)*m开始
select * from 表名 limit (n-1)*m,m
基础总结:
完整的select语句的写法:
select distinct * from 表名
where ...
group by ... having ...
order by ...
limit start,count
执行顺序:
from 表名
where ...
group by ...
select distinct *
having ...
order by ...
limit start,count
高级:关系,视图,事务,索引
关系:
连接: