日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > 数据库 >内容正文

数据库

MySQL基础篇(01):经典实用查询案例,总结整理

發布時間:2025/3/16 数据库 16 豆豆
生活随笔 收集整理的這篇文章主要介紹了 MySQL基础篇(01):经典实用查询案例,总结整理 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

本文源碼:GitHub·點這里 || GitEE·點這里

一、連接查詢

圖解示意圖

1、建表語句

部門和員工關系表:

CREATE TABLE `tb_dept` (`id` int(11) NOT NULL AUTO_INCREMENT COMMENT '主鍵ID',`deptName` varchar(30) DEFAULT NULL COMMENT '部門名稱',PRIMARY KEY (`id`) ) ENGINE=InnoDB AUTO_INCREMENT=6 DEFAULT CHARSET=utf8; CREATE TABLE `tb_emp` (`id` int(11) NOT NULL AUTO_INCREMENT COMMENT '主鍵ID',`empName` varchar(20) DEFAULT NULL COMMENT '員工名稱',`deptId` int(11) DEFAULT '0' COMMENT '部門ID',PRIMARY KEY (`id`) ) ENGINE=InnoDB AUTO_INCREMENT=8 DEFAULT CHARSET=utf8;

2、七種連接查詢

  • 圖1:左外連接
select t1.*,t2.empName,t2.deptId from tb_dept t1 LEFT JOIN tb_emp t2 on t1.id=t2.deptId;
  • 圖2:右外連接
select t1.*,t2.empName,t2.deptId from tb_dept t1 RIGHT JOIN tb_emp t2 on t1.id=t2.deptId;
  • 圖3:內連接
select t1.*,t2.empName,t2.deptId from tb_dept t1 inner join tb_emp t2 on t1.id=t2.deptId;
  • 圖4:左連接

查詢tb_dept表特有的地方。

select t1.*,t2.empName,t2.deptId from tb_dept t1 LEFT JOIN tb_emp t2 on t1.id=t2.deptId WHERE t2.deptId IS NULL;
  • 圖5:右連接

查詢tb_emp表特有的地方。

select t1.*,t2.empName,t2.deptId from tb_dept t1 RIGHT JOIN tb_emp t2 on t1.id=t2.deptId WHERE t1.id IS NULL;
  • 圖6:全連接
select t1.*,t2.empName,t2.deptId from tb_dept t1 LEFT JOIN tb_emp t2 on t1.id=t2.deptId UNION select t1.*,t2.empName,t2.deptId from tb_dept t1 RIGHT JOIN tb_emp t2 on t1.id=t2.deptId
  • 圖7:全不連接

查詢兩張表互不關聯到的數據。

select t1.*,t2.empName,t2.deptId from tb_dept t1 RIGHT JOIN tb_emp t2 on t1.id=t2.deptId WHERE t1.id IS NULL UNION select t1.*,t2.empName,t2.deptId from tb_dept t1 LEFT JOIN tb_emp t2 on t1.id=t2.deptId WHERE t2.deptId IS NULL

二、時間日期查詢

1、建表語句

CREATE TABLE `ms_consume` (`id` int(11) NOT NULL AUTO_INCREMENT COMMENT '主鍵ID',`user_id` int(11) NOT NULL COMMENT '用戶ID',`user_name` varchar(20) NOT NULL COMMENT '用戶名',`consume_money` decimal(20,2) DEFAULT '0.00' COMMENT '消費金額',`create_time` datetime DEFAULT CURRENT_TIMESTAMP COMMENT '創建時間',PRIMARY KEY (`id`) ) ENGINE=InnoDB AUTO_INCREMENT=9 DEFAULT CHARSET=utf8 COMMENT='消費表';

2、日期統計案例

  • 日期范圍內首條數據

場景:產品日常運營活動中,經常見到這樣規則:活動時間內,首筆消費滿多少,優惠多少。

SELECT * FROM(SELECT * FROM ms_consumeWHEREcreate_time BETWEEN '2019-12-10 00:00:00' AND '2019-12-18 23:59:59'ORDER BY create_time) t1 GROUP BY t1.user_id ;
  • 日期之間時差

場景:常用的倒計時場景

SELECT t1.*,timestampdiff(SECOND,NOW(),t1.create_time) second_diff FROM ms_consume t1 WHERE t1.id='9' ;
  • 查詢今日數據
-- 方式一 SELECT * FROM ms_consume WHERE DATE_FORMAT(NOW(),'%Y-%m-%d')=DATE_FORMAT(create_time,'%Y-%m-%d'); -- 方式二 SELECT * FROM ms_consume WHERE TO_DAYS(now())=TO_DAYS(create_time) ;
  • 時間范圍統計

場景:統計近七日內,消費次數大于兩次的用戶。

SELECT user_id,user_name,COUNT(user_id) userIdSum FROM ms_consume WHERE create_time>date_sub(NOW(), interval '7' DAY) GROUP BY user_id HAVING userIdSum>1;
  • 日期范圍內平均值

場景:指定日期范圍內的平均消費,并排序。

SELECT * FROM(SELECT user_id,user_name,AVG(consume_money) avg_moneyFROM ms_consume tWHERE t.create_time BETWEEN '2019-12-10 00:00:00' AND '2019-12-18 23:59:59'GROUP BY user_id) t1 ORDER BY t1.avg_money DESC;

三、樹形表查詢

1、建表語句

CREATE TABLE ms_city_sort (`id` INT (11) NOT NULL AUTO_INCREMENT COMMENT '主鍵ID',`city_name` VARCHAR (50) NOT NULL DEFAULT '' COMMENT '城市名稱',`city_code` VARCHAR (50) NOT NULL DEFAULT '' COMMENT '城市編碼',`parent_id` INT (11) NOT NULL DEFAULT '0' COMMENT '父級ID',`state` INT (11) NOT NULL DEFAULT '1' COMMENT '狀態:1啟用,2停用',`create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '創建時間',`update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '修改時間',PRIMARY KEY (id) ) ENGINE = INNODB DEFAULT CHARSET = utf8 COMMENT = '城市分類管理';

2、直接SQL查詢

SELECT t1.*, t2.parentName FROM ms_city_sort t1 LEFT JOIN (SELECTm1.id,m2.city_name parentNameFROMms_city_sort m1,ms_city_sort m2WHERE m1.parent_id = m2.idAND m1.parent_id > 0 ) t2 ON t1.id = t2.id;

3、函數查詢

  • 查詢父級名稱
DROP FUNCTION IF EXISTS get_city_parent_name; CREATE FUNCTION `get_city_parent_name`(pid INT) RETURNS varchar(50) CHARSET utf8 begin declare parentName VARCHAR(50) DEFAULT NULL;SELECT city_name FROM ms_city_sort WHERE id=pid into parentName;return parentName; endSELECT t1.*,get_city_parent_name(t1.parent_id) parentName FROM ms_city_sort t1 ;
  • 查詢根節點子級
DROP FUNCTION IF EXISTS get_root_child; CREATE FUNCTION `get_root_child`(rootId INT) RETURNS VARCHAR(1000) CHARSET utf8BEGIN DECLARE resultIds VARCHAR(500); DECLARE nodeId VARCHAR(500);SET resultIds = '%'; SET nodeId = cast(rootId as CHAR);WHILE nodeId IS NOT NULL DO SET resultIds = concat(resultIds,',',nodeId);SELECT group_concat(id) INTO nodeId FROM ms_city_sort WHERE FIND_IN_SET(parent_id,nodeId)>0;END WHILE; RETURN resultIds; END ;SELECT * FROM ms_city_sort WHERE FIND_IN_SET(id,get_root_child(5)) ORDER BY id ;

四、源代碼地址

GitHub·地址 https://github.com/cicadasmile/mysql-data-base GitEE·地址 https://gitee.com/cicadasmile/mysql-data-base

總結

以上是生活随笔為你收集整理的MySQL基础篇(01):经典实用查询案例,总结整理的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 国产在线视频二区 | 欧美少妇xxx | 日本黄色高清视频 | 视频福利一区 | 成人污网站 | 男女做网站 | 天天操天天舔天天干 | 懂色av一区二区 | 国产精品制服诱惑 | 一级片久久久久 | 久久久久婷| 偷拍一区二区 | 日本精品免费在线观看 | 亚洲综合久久网 | 96精品国产| 97精品国产97久久久久久免费 | 69性影院| av在线播放网址 | 丰满av | 成人国产精品免费观看视频 | 麻豆一区二区99久久久久 | 男人用嘴添女人下身免费视频 | 亚洲永久精品视频 | 国产粉嫩在线观看 | 日韩av无码一区二区三区 | 亚洲一区二区三区加勒比 | av男人的天堂在线 | 伊人网大香 | 免费观看已满十八岁 | 久久天 | 欧美日韩一区二区三区不卡 | 日韩熟女精品一区二区三区 | a国产免费| 69精品久久久久久 | 鬼眼 电影 | 免费在线观看你懂的 | 久久久男人天堂 | 第一福利在线视频 | 阿拉伯性视频xxxx | 成人国产一区二区三区精品麻豆 | 久久亚洲精品石原莉奈 | 91精品影视 | 日本一级片在线观看 | 中文字幕乱码亚洲无线三区 | www.久久国产 | 亚洲图片欧美在线看 | fc2ppv色の美マンに中出し | 国产三区av | 婷婷精品在线 | 人人澡超碰碰 | 亚洲精品免费看 | 动漫av网站免费观看 | 久久网免费视频 | 91香蕉国产在线观看 | 久久亚洲国产 | 少妇无内裤下蹲露大唇视频 | 性高跟鞋xxxxhd人妖 | 婷婷激情电影 | 精品国产专区 | 欧美日韩一级黄色片 | 韩国午夜av | 麻豆视频在线观看免费网站黄 | 亚洲永久精品视频 | 成人影视网址 | 三上悠亚ssⅰn939无码播放 | 一级a性色生活片久久毛片 爱爱高潮视频 | 欧美日韩二三区 | 日韩高清影院 | 国产无遮挡a片又黄又爽 | 色综合天天综合综合国产 | 亚洲中文字幕久久无码 | 日本免费爱爱视频 | 超碰97在线看| 亚洲免费专区 | 久久一二| 亚洲成人精品一区二区 | 一级黄色大片在线观看 | a国产精品 | 国产主播中文字幕 | 99ri国产精品 | 中出在线视频 | 天堂影院一区二区 | 肉大捧一进一出免费视频 | 蜜桃视频久久一区免费观看入口 | 男女超爽视频免费播放 | 日本综合在线 | www.youjizz.com在线| 总裁憋尿呻吟双腿大开憋尿 | 玉女心经是什么意思 | 午夜插插插 | 屁屁影院国产第一页 | 国产精品自拍亚洲 | 色亚洲成人 | 中文字幕av一区 | 草莓视频18免费观看 | 欧美xxx性 | 日韩福利一区二区 | 久久午夜无码鲁丝片午夜精品 | www.视频一区 |