mysql查询
基础查询:
select * from 表名 ;
基础条件查询:
select * from 表名 where 条件;
模糊查询:
select * from 表名 where name like ' %装置% ' ; 查询所有 name 中包含 “装置”的信息;
select * from 表名 where name like ' 装置 % ' ; 查询所有 name 中 以装置开头的信息;
select * from 表名 where name like ' %装置 ' ; 查询所有 name 中 以装置结尾的信息;
select * from 表名 where name like ' %装%置 % ' ; 查询所有 name 中 包含有 “装” (在前) 和 “置” (在后) 顺序名字的信息;例如:“开关装置 ”,但是不能查出 “置装开关”;
select * from 表名 where name like ' _置_ ' ; 查询所有 name 中 所有name 为三个字且中间为“置”的信息; “_” 代表单个任意字符;
查不出来暂先注释,后续查找原因后再说#select * from 表名 where name like '[装灯] ' ; 查询所有 name 中 包含 “装” 或 包含 “灯” 的信息;例如:“装置” “灯开关”;
排序查询:
select * from 表名 where name = ‘装置’ order by id asc; 查询所有name等于装置 的信息并 根据 id 以 顺序 排列;
select * from 表名 where name = ‘装置’ order by id desc; 查询所有name等于装置 的信息并 根据 id 以 逆序 排列;
分组查询和聚合函数见:
聚合函数查询: https://www.cnblogs.com/ncwoniu/p/11589200.html
分页查询:
select * from t_student where st_name like '%张%' order by st_id limit 0 ,10; 查询name中含“张”的信息,id排序后显示第1条开始的10 条数据;分页查询要先排序
内连接:
select * from 表1 join 表2 on 表1.id = 表2.id ; 查询符合 on 后条件的 表1和表2 中数据的交集 ;
外连接:
左连接:
select * from 表1 left join 表2 on 表1.id = 表2.id ; 查询符合 on 后条件的 表1和表2 中数据的交集 加 左边表1 剩余的数据;
右连接:
select * from 表1 right join 表2 on 表1.id = 表2.id ; 查询符合 on 后条件的 表1和表2 中数据的交集 加 右边表2 剩余的数据;
多表连接:
select 表1.id , 表1.name ,表2.name from 表1 ,表2 where 表1.id = 表2 .id;
联合查询
SELECT * FROM t_student WHERE s_name = '张三' 将两个查询的结果放在一张表里,union第一个查询的列名等于第二个查询的列名,查询结果允许重复;union all 的查询结果不重复。
UNION
SELECT * FROM t_student WHERE s_name = '李四';
子查询
无关子查询
SELECT * from t_student WHERE s_name = (SELECT s_name from t_student WHERE s_id = '1141263770333478912'); 把一个查询的结果当做另一个查询的条件
相关子查询
多状态查询
SELECT * from t_student WHERE s_name in ('张三','李四'); 把in后括号里面的一个值作为条件查询,把张三和李四的查询结果的值放在一起;
SELECT * from t_student WHERE s_name not in ('张三','李四'); 把除了括号里的值外的任意一个值作为查询条件,将所有的查询结果放在一个表里;