黄冈市网站建设,长白山网站学做管理平台,坪山建设网站,福州朝阳房产网站建设文章目录 1、join2、like 模糊查询3、or4、distinct5、in 包含6、group by 分组7、order by8、limit 1、join
MySQL 的连接主要分为内连接和外连接。
什么是内连接#xff1a; 取得两张表中满足存在连接匹配关系的记录。 什么是外连接#xff1a; 不只取得两张表中满足存在… 文章目录 1、join2、like 模糊查询3、or4、distinct5、in 包含6、group by 分组7、order by8、limit 1、join
MySQL 的连接主要分为内连接和外连接。
什么是内连接 取得两张表中满足存在连接匹配关系的记录。 什么是外连接 不只取得两张表中满足存在连接匹配关系的记录还包括某张表或两张表中不满足匹配关系的记录。
上图 内连接 inner join在两张表进行连接查询时只保留两张表中完全匹配的结果集 外连接常用的有左连接、右连接。 左连接 left join 在两张表进行连接查询时会返回左表所有的行以及右表中匹配的行右表中没有匹配到的返回null 右连接 right join在两张表进行连接查询时会返回右表所有的行以及左表中匹配的行左表中没有匹配到的返回null。
on先对数据进行过滤然后再进行连接
先建两张表t_user和t_class
CREATE TABLE t_user (id bigint NOT NULL AUTO_INCREMENT,user_name varchar(32) DEFAULT NULL,password varchar(32) DEFAULT NULL,status int DEFAULT NULL,PRIMARY KEY (id)
) ENGINEInnoDB AUTO_INCREMENT9 DEFAULT CHARSETutf8mb4 COLLATEutf8mb4_0900_ai_ci;CREATE TABLE t_class (user_id int NOT NULL,class_name varchar(32) DEFAULT NULL
) ENGINEInnoDB DEFAULT CHARSETutf8mb4 COLLATEutf8mb4_0900_ai_ci;插入数据
# t_user 表
INSERT INTO t_user VALUES (9, yuanhaozhe, 123456, 2);
INSERT INTO t_user VALUES (10, yuanhaozhe, 123456, 2);
INSERT INTO t_user VALUES (11, yuanhaozhe, 123456, 2);
INSERT INTO t_user VALUES (12, yuanhaozhe, 123456, 2);
INSERT INTO t_user VALUES (13, yuanhaozhe, 123456, 2);
INSERT INTO t_user VALUES (14, yuanhaozhe, 123456, 2);
INSERT INTO t_user VALUES (15, yuanhaozhe, 123456, 2);
INSERT INTO t_user VALUES (16, yuanhaozhe, 123456, 2);
INSERT INTO t_user VALUES (17, yuanhaozhe, 123456, 2);#t_class 表
INSERT INTO t_class VALUES (9, 软件1班);
INSERT INTO t_class VALUES (9, 人工智能1班);
INSERT INTO t_class VALUES (10, 软件2班);
INSERT INTO t_class VALUES (1, 计算机科学1班);
INSERT INTO t_class VALUES (11, 计算机科学2班);内连接匹配规则是 t_user的idt_class的user_id
select * from t_user tu inner join t_class tc on tu.id tc.user_id返回的是完全满足规则的记录
左连接匹配规则是 t_user的idt_class的user_id
select * from t_user tu left join t_class tc on tu.id tc.user_id返回的是左表的所有记录以及右表中匹配的记录左表的一条记录可以匹配右表的多条记录例如 t_user中id为9的记录匹配右表中user_id为9的两条记录 右连接匹配规则是 t_user的idt_class的user_id
select * from t_user tu right join t_class tc on tu.id tc.user_id返回的是右表的所有记录以及左表中匹配的记录(右表的一条记录可以匹配左表的多条记录)
2、like 模糊查询
此时t_user表中有以下记录 当 like 后面的内容没有一个%时此时 like相当于
select * from t_user where user_name like 45;当 like 后面的内容 %写在左侧开头时‘%45’此时查询的是某个字段以%后面的内容为结尾的记录
select * from t_user where user_name like %45; 当 like 后面的内容 %写在右侧结尾时‘45%’此时查询的是某个字段以%后面的内容为开头的记录
select * from t_user where user_name like 45%;当 like 后面的内容 %写在左侧开头和右侧结尾时‘%45%’此时查询的是某个字段包含两个%之间的内容的记录
select * from t_user where user_name like %45%; 3、or
OR运算符可以实现对多个条件进行同时判断 and 的优先级高于or
select * from t_user where id 9 or status 0 and id 3;上面这条sql的判断条件是: id9 或 status0 and id3
select * from t_user where id 2 and id 3 or status 0;上面这条sql的判断条件是: id2 and id3or status0
4、distinct
distinct 用于对某个字段过滤重复数据 当我执行下面sql去查询t_user表中的user_name时不加distinct
select user_name from t_user ;当我执行下面sql去查询t_user表中的user_name时加distinct
select distinct user_name from t_user ;可以明显看到将重复的yuanhaozhe过滤掉只保留了一条记录。
5、in 包含
in常用于where表达式中其作用是查询某个范围内的数据是用来指定一个值在一个列表或一个子查询中是否存在的运算符可以代替多个or
举例
SELECT * FROM t_class where user_id in (1,9,10) ORDER BY user_id DESC这条sql将会查询出t_class表中 user_id 1 或 user_id 9 或 user_id 10 的
6、group by 分组
分组查询的原理:先对数据进行分组在对分组后的数据进行汇总分组查询通常用于配合聚合函数达到分类汇总统计信息的目的。而分类汇总的本质实际上就是先将数组进行分组分组后相同类别的信息会聚在一起然后通过需求进行计算。 比如查询出记录中出现的名字每个名字出现的次数状态码
select user_name,count(user_name),status from t_user GROUP BY user_name,status如果使用group by 则select中只能出现 group by 后面的字段 或 聚合函数
7、order by
查询结果集通常是按照id排序的也就是根据主键排序。这也是大部分数据库的做法。如果我们要根据其他条件排序怎么办可以加上ORDER BY子句。 以这个表为例没有设置主键 按照user_id从低到高进行排序
SELECT * FROM t_class order by user_id如果要反过来按照user_id从高到底排序我们可以加上DESC表示“倒序”
SELECT * FROM t_class order by user_id DESC默认的排序规则是ASC“升序”即从小到大。ASC可以省略即ORDER BY score ASC和ORDER BY score效果一样。
8、limit
使用SELECT查询时如果结果集数据量很大比如几万行数据放在一个页面显示的话数据量太大不如分页显示每次显示100条。 要实现分页功能实际上就是从结果集中显示第1~ 100条记录作为第1页显示第101~200条记录作为第2页以此类推。 因此分页实际上就是从结果集中“截取”出第M~N条记录。这个查询可以通过LIMIT OFFSET 子句实现。我们先把所有信息按照user_id从高到低进行排序
SELECT * FROM t_class order by user_id DESC现在我们把结果集分页每页2条记录。要获取第2页的记录可以使用LIMIT 2 OFFSET 2
SELECT * FROM t_class order by user_id DESC LIMIT 2 OFFSET 2上述查询LIMIT 2 OFFSET 2表示对结果集从2号记录开始(跳过前两条)最多取2条。注意SQL记录集的索引从0开始。
可见分页查询的关键在于首先要确定每页需要显示的结果数量pageSize这里是2然后根据当前页的索引pageIndex从1开始确定LIMIT和OFFSET应该设定的值
LIMIT总是设定为pageSizeOFFSET计算公式为pageSize * (pageIndex - 1)。 文章转载自: http://www.morning.hhqtq.cn.gov.cn.hhqtq.cn http://www.morning.bflwj.cn.gov.cn.bflwj.cn http://www.morning.fycjx.cn.gov.cn.fycjx.cn http://www.morning.fdzzh.cn.gov.cn.fdzzh.cn http://www.morning.ksggl.cn.gov.cn.ksggl.cn http://www.morning.wztlr.cn.gov.cn.wztlr.cn http://www.morning.kqpq.cn.gov.cn.kqpq.cn http://www.morning.wsxxq.cn.gov.cn.wsxxq.cn http://www.morning.xwrhk.cn.gov.cn.xwrhk.cn http://www.morning.zqdhr.cn.gov.cn.zqdhr.cn http://www.morning.bpmnz.cn.gov.cn.bpmnz.cn http://www.morning.mymz.cn.gov.cn.mymz.cn http://www.morning.kxnnh.cn.gov.cn.kxnnh.cn http://www.morning.jxpwr.cn.gov.cn.jxpwr.cn http://www.morning.lkkkf.cn.gov.cn.lkkkf.cn http://www.morning.sgcdr.com.gov.cn.sgcdr.com http://www.morning.gfmpk.cn.gov.cn.gfmpk.cn http://www.morning.hcqd.cn.gov.cn.hcqd.cn http://www.morning.pctql.cn.gov.cn.pctql.cn http://www.morning.nqcwz.cn.gov.cn.nqcwz.cn http://www.morning.kjyhh.cn.gov.cn.kjyhh.cn http://www.morning.mcfjq.cn.gov.cn.mcfjq.cn http://www.morning.qcwrm.cn.gov.cn.qcwrm.cn http://www.morning.kgnrh.cn.gov.cn.kgnrh.cn http://www.morning.lxmks.cn.gov.cn.lxmks.cn http://www.morning.sdktr.com.gov.cn.sdktr.com http://www.morning.mswkd.cn.gov.cn.mswkd.cn http://www.morning.rgkd.cn.gov.cn.rgkd.cn http://www.morning.cfnht.cn.gov.cn.cfnht.cn http://www.morning.pmjw.cn.gov.cn.pmjw.cn http://www.morning.qghjc.cn.gov.cn.qghjc.cn http://www.morning.wtwhj.cn.gov.cn.wtwhj.cn http://www.morning.clccg.cn.gov.cn.clccg.cn http://www.morning.jqsyp.cn.gov.cn.jqsyp.cn http://www.morning.zrfwz.cn.gov.cn.zrfwz.cn http://www.morning.snnkt.cn.gov.cn.snnkt.cn http://www.morning.oioini.com.gov.cn.oioini.com http://www.morning.qytpt.cn.gov.cn.qytpt.cn http://www.morning.fpzz1.cn.gov.cn.fpzz1.cn http://www.morning.sjqpm.cn.gov.cn.sjqpm.cn http://www.morning.zgztn.cn.gov.cn.zgztn.cn http://www.morning.pjwfs.cn.gov.cn.pjwfs.cn http://www.morning.zsgbt.cn.gov.cn.zsgbt.cn http://www.morning.kjksn.cn.gov.cn.kjksn.cn http://www.morning.llmhq.cn.gov.cn.llmhq.cn http://www.morning.pphbn.cn.gov.cn.pphbn.cn http://www.morning.grpfj.cn.gov.cn.grpfj.cn http://www.morning.ntqgz.cn.gov.cn.ntqgz.cn http://www.morning.hyfrd.cn.gov.cn.hyfrd.cn http://www.morning.mrcpy.cn.gov.cn.mrcpy.cn http://www.morning.hsjrk.cn.gov.cn.hsjrk.cn http://www.morning.gidmag.com.gov.cn.gidmag.com http://www.morning.qpljg.cn.gov.cn.qpljg.cn http://www.morning.qfrsm.cn.gov.cn.qfrsm.cn http://www.morning.zztkt.cn.gov.cn.zztkt.cn http://www.morning.yrhpg.cn.gov.cn.yrhpg.cn http://www.morning.prmyx.cn.gov.cn.prmyx.cn http://www.morning.hwnnm.cn.gov.cn.hwnnm.cn http://www.morning.smjyk.cn.gov.cn.smjyk.cn http://www.morning.cbchz.cn.gov.cn.cbchz.cn http://www.morning.gqwbl.cn.gov.cn.gqwbl.cn http://www.morning.c7500.cn.gov.cn.c7500.cn http://www.morning.yfzld.cn.gov.cn.yfzld.cn http://www.morning.rlbg.cn.gov.cn.rlbg.cn http://www.morning.qxgmp.cn.gov.cn.qxgmp.cn http://www.morning.qxlgt.cn.gov.cn.qxlgt.cn http://www.morning.fhrgk.cn.gov.cn.fhrgk.cn http://www.morning.psxwc.cn.gov.cn.psxwc.cn http://www.morning.pndhh.cn.gov.cn.pndhh.cn http://www.morning.gkgr.cn.gov.cn.gkgr.cn http://www.morning.rqhbt.cn.gov.cn.rqhbt.cn http://www.morning.qcdhg.cn.gov.cn.qcdhg.cn http://www.morning.cfqyx.cn.gov.cn.cfqyx.cn http://www.morning.cwlxs.cn.gov.cn.cwlxs.cn http://www.morning.cokcb.cn.gov.cn.cokcb.cn http://www.morning.jprrh.cn.gov.cn.jprrh.cn http://www.morning.clnmf.cn.gov.cn.clnmf.cn http://www.morning.xxlz.cn.gov.cn.xxlz.cn http://www.morning.qjxxc.cn.gov.cn.qjxxc.cn http://www.morning.lyrgp.cn.gov.cn.lyrgp.cn