设为首页 收藏本站
查看: 840|回复: 0

[经验分享] MySQL查询select常见用法

[复制链接]

尚未签到

发表于 2018-10-6 08:02:24 | 显示全部楼层 |阅读模式
  MySQL数据库使用 SQL select语句来查询数据。我们可以通过mysql>命令提示窗口在数据库查询数据。
  语法
  SELECT column_name,column_name FROM table_name [WHERE Clause][LIMIT N][OFFSET M]
  SELECT * FROM table_name; 投影
  SELECT column_name,column_name FROM table_name WHERE qualification; 选择
  FROM自己:要查询的关系,表、多个表、其它SELECT语句。
  WHERE子句:布尔关系表达式 =、> 、< 、>=、 use jiaowu;
  mysql> show tables;
  +------------------+
  | Tables_in_jiaowu |
  +------------------+
  | courses       |
  | scores        |
  | sct          |
  | student        |
  | tutors         |
  +------------------+
  5 rows in set (0.00 sec)
  查看students表所有内容
  mysql> SELECT * FROM students;
  +-----+--------------+------+--------+------+------+------+---------------------+
  | SID | Name            | Age  | Gender | CID1 | CID2 | TID  | CreateTime          |
  +-----+--------------+------+--------+------+------+------+---------------------+
  |   1 | GuoJing      |    19  | M      |    2 |    7 |    3 | 2012-04-06 10:00:00 |
  |   2 | YangGuo      |    17  | M      |    2 |    3 |    1 | 0000-00-00 00:00:00 |
  |   3 | DingDian      |    25  | M      |    6 |    1 |    7 | 2012-04-06 10:00:00 |
  |   4 | HuFei        |    31  | M      |    8 |   10 |    5 | 2012-04-06 10:00:00 |
  |   5 | HuangRong      |   16  | F      |    5 |    9 |    9 | 2012-04-06 10:00:00 |
  |   6 | YueLingshang    |   18  | F      |    8 |    4 | NULL  | 2012-04-06 10:00:00 |
  |   7 | ZhangWuji      |   20  | M      |    1 |    7 | NULL  | 2012-04-06 10:00:00 |
  |   8 | Xuzhu        |    26  | M      |    2 |    4 | NULL  | 2012-04-06 10:00:00 |
  |   9 | LingHuchong    |    22  | M      |   11 | NULL | NULL   | 0000-00-00 00:00:00 |
  |  10 | YiLin        |    19  | F      |   18 | NULL | NULL   | 2012-04-06 10:00:00 |
  +-----+--------------+------+--------+------+------+------+---------------------+
  查看tutor表所有内容:
  mysql> SELECT * FROM tutors;
  +-----+--------------+--------+------+
  | TID | Tname        | Gender   | Age  |
  +-----+--------------+--------+------+
  |   1 | HongQigong    | M      |   93 |
  |   2 | HuangYaoshi   | M      |   63 |
  |   3 | Miejueshitai  | F      |   72 |
  |   4 | OuYangfeng    |        |   76 |
  |   5 | YiDeng       | M      |   90 |
  |   6 | YuCanghai    | M      |   56 |
  |   7 | Jinlunfawang  | M      |   67 |
  |   8 | HuYidao      | M      |   42 |
  |   9 | NingZhongze   | F       |   49 |
  +-----+--------------+--------+------+
  
  查看学生表中Name和Age
  mysql> SELECT Name,Age FROM students;
  +--------------+------+
  | Name          | Age  |
  +--------------+------+
  | GuoJing        |   19 |
  | YangGuo        |   17 |
  | DingDian       |   25 |
  | HuFei         |   31 |
  | HuangRong      |   16 |
  | YueLingshang    |   18 |
  | ZhangWuji      |   20 |
  | Xuzhu        |   26 |
  | LingHuchong    |   22 |
  | YiLin        |   19 |
  +--------------+------+
  10 rows in set (0.00 sec)
  用where条件语句查询
  使用WHERE条件查询Age>20的学生
  mysql> SELECT Name,Age FROM students WHERE Age>20;
  +-------------+------+
  | Name        | Age  |
  +-------------+------+
  | DingDian     |   25 |
  | HuFei       |   31 |
  | Xuzhu       |   26 |
  | LingHuchong   |   22 |
  +-------------+------+
  4 rows in set (0.00 sec)
  多个条件查询
  mysql> SELECT Name,Age FROM students WHERE Age>20 AND Gender='m';
  +-------------+------+
  | Name        | Age  |
  +-------------+------+
  | DingDian     |   25 |
  | HuFei       |   31 |
  | Xuzhu       |   26 |
  | LingHuchong   |   22 |
  +-------------+------+
  4 rows in set (0.00 sec)
  使用NOT语句查询
  mysql> SELECT Name,Age,Gender FROM students WHERE NOT (Age>20 OR Gender='M');
  +--------------+------+--------+
  | Name         | Age  | Gender |
  +--------------+------+--------+
  | HuangRong      |   16   | F      |
  | YueLingshang    |   18   | F      |
  | YiLin         |   19   | F      |
  +--------------+------+--------+
  3 rows in set (0.00 sec)
  使用between...and 条件语句
  mysql> SELECT Name,Age,Gender FROM students WHERE Age BETWEEN 20 AND 25;
  +-------------+------+--------+
  | Name        | Age  | Gender |
  +-------------+------+--------+
  | DingDian     |   25 | M      |
  | ZhangWuji    |   20 | M      |
  | LingHuchong   |   22 | M      |
  +-------------+------+--------+
  使用IN条件语句
  mysql> SELECT Name,Age,Gender FROM students WHERE Age IN (18,20,25);
  +--------------+------+--------+
  | Name         | Age  | Gender |
  +--------------+------+--------+
  | DingDian       |   25 | M      |
  | YueLingshang    |   18 | F      |
  | ZhangWuji      |   20 | M      |
  +--------------+------+--------+
  查询字符为空
  mysql> SELECT Name,Age,CID2 from students WHERE CID2 IS NULL;
  +-------------+------+------+
  | Name        | Age  | CID2 |
  +-------------+------+------+
  | LingHuchong   |   22  | NULL |
  | YiLin       |   19  | NULL |
  +-------------+------+------+
  使用ORDER BY 排序;
  mysql> SELECT Name,Age,CID2 from students WHERE CID2 IS NOT NULL ORDER BY Name;
  +--------------+------+------+
  | Name         | Age  | CID2 |
  +--------------+------+------+
  | DingDian      |   25 |    1 |
  | GuoJing       |   19 |    7 |
  | HuangRong      |   16 |    9 |
  | HuFei         |   31 |   10 |
  | Xuzhu         |   26 |    4 |
  | YangGuo        |   17 |    3 |
  | YueLingshang    |   18 |    4 |
  | ZhangWuji      |   20 |    7 |
  +--------------+------+------+
  使用like语句
  mysql> SELECT Name,Age FROM students WHERE Name LIKE 'Y%';
  +--------------+------+
  | Name         | Age  |
  +--------------+------+
  | YangGuo      |   17 |
  | YueLingshang   |   18 |
  | YiLin        |   19 |
  +--------------+------+
  
  用AS取别名,用LIMIT取前2行
  mysql> SELECT Name AS Student_name,Age FROM students LIMIT 2;
  +--------------+------+
  | Student_name | Age  |
  +--------------+------+
  | GuoJing      |   19 |
  | YangGuo      |   17 |
  +--------------+------+
  LIMIT 2,3略过前2行,
  mysql> SELECT Name AS Student_name,Age FROM students LIMIT 2,3;
  +--------------+------+
  | Student_name | Age  |
  +--------------+------+
  | DingDian      |   25 |
  | HuFei        |   31 |
  | HuangRong      |   16 |
  使用聚合运算 SUN()、AVG()、 MAX()、 MIN() 、COUNT()
  mysql> SELECT AVG(Age) FROM students;
  +----------+
  | AVG(Age) |
  +----------+
  |  21.3000 |
  +----------+
  mysql> SELECT MAX(Age) FROM students;
  +----------+
  | MAX(Age) |
  +----------+
  |       31 |
  +----------+
  mysql> SELECT MIN(Age) FROM students;
  +----------+
  | MIN(Age) |
  +----------+
  |       16 |
  +----------+
  mysql> SELECT COUNT(Age) FROM students;
  +------------+
  | COUNT(Age) |
  +------------+
  |         10 |
  +------------+
  mysql> SELECT SUM(Age) FROM students;
  +----------+
  | SUM(Age) |
  +----------+
  |      213 |
  +----------+
  GROUP BY 分组;
  mysql> SELECT COUNT(CID1),CID1 FROM students GROUP BY CID1;
  +-------------+------+
  | COUNT(CID1) | CID1 |
  +-------------+------+
  |           1 |    1 |
  |           3 |    2 |
  |           1 |    5 |
  |           1 |    6 |
  |           2 |    8 |
  |           1 |    11 |
  |           1 |    18 |
  +-------------+------+
  
  GROUP BY 和HAVING 条件语句
  mysql> SELECT COUNT(CID1) AS Person,CID1 FROM students GROUP BY CID1 HAVING Person>=2;
  +--------+------+
  | Person   | CID1 |
  +--------+------+
  |      3 |    2 |
  |      2 |    8 |
  +--------+------+
  多表查询
  mysql> SELECT * FROM students,courses WHERE students.CID1=courses.CID;
  +-----+--------------+------+--------+------+------+------+---------------------+-----+-------------------+-----+
  | SID | Name         | Age  | Gender | CID1 | CID2 | TID  | CreateTime          | CID | Cname             | TID |
  +-----+--------------+------+--------+------+------+------+---------------------+-----+-------------------+-----+
  |   1 | GuoJing       |   19  | M      |     2 |    7 |    3 | 2012-04-06 10:00:00 |   2 | TaiJiquan         |   3 |
  |   2 | YangGuo       |   17  | M      |     2 |    3 |    1 | 0000-00-00 00:00:00 |   2 | TaiJiquan         |   3 |
  |   3 | DingDian      |   25  | M      |     6 |    1 |    7 | 2012-04-06 10:00:00 |   6 | Qishangquan       |   5 |
  |   4 | HuFei        |   31  | M      |     8 |   10 |    5 | 2012-04-06 10:00:00 |   8 | Wanliduxing       |   8 |
  |   5 | HuangRong      |   16  | F      |    5 |    9 |    9 | 2012-04-06 10:00:00 |   5 | Qianzhuwandushou   |   4 |
  |   6 | YueLingshang     |   18  | F      |    8 |    4 | NULL | 2012-04-06 10:00:00 |   8 | Wanliduxing       |   8 |
  |   7 | ZhangWuji      |   20  | M      |    1 |    7 | NULL | 2012-04-06 10:00:00 |   1 | Hamagong          |   2 |
  |   8 | Xuzhu         |   26  | M      |    2 |    4 | NULL | 2012-04-06 10:00:00 |   2 | TaiJiquan          |   3 |
  +-----+--------------+------+--------+------+------+------+---------------------+-----+-------------------+-----+
  mysql> SELECT students.Name,courses.Cname FROM students,courses WHERE students.CID1=courses.CID;
  +--------------+-------------------+
  | Name         | Cname             |
  +--------------+-------------------+
  | GuoJing       | TaiJiquan         |
  | YangGuo       | TaiJiquan         |
  | DingDian       | Qishangquan       |
  | HuFei         | Wanliduxing       |
  | HuangRong      | Qianzhuwandushou     |
  | YueLingshang    | Wanliduxing       |
  | ZhangWuji      | Hamagong          |
  | Xuzhu         | TaiJiquan         |
  +--------------+-------------------+
  JOIN LEFT 左连接
  mysql> SELECT s.SID,s.Name,c.CID,c.Cname FROM students AS s LEFT JOIN courses AS c ON s.CID1=c.CID;
  +-----+--------------+------+-------------------+
  | SID | Name         | CID  | Cname             |
  +-----+--------------+------+-------------------+
  |   1 | GuoJing      |    2 | TaiJiquan         |
  |   2 | YangGuo      |    2 | TaiJiquan         |
  |   3 | DingDian      |    6 | Qishangquan       |
  |   4 | HuFei        |    8 | Wanliduxing       |
  |   5 | HuangRong      |    5 | Qianzhuwandushou   |
  |   6 | YueLingshang    |    8 | Wanliduxing       |
  |   7 | ZhangWuji      |    1 | Hamagong          |
  |   8 | Xuzhu         |    2 | TaiJiquan         |
  |   9 | LingHuchong     |   NULL | NULL              |
  |  10 | YiLin         |   NULL | NULL              |
  +-----+--------------+------+-------------------+
  子查询
  mysql> SELECT Name,Age FROM students WHERE Age >(SELECT AVG(Age) FROM students);
  +-------------+------+
  | Name        | Age  |
  +-------------+------+
  | DingDian    |   25 |
  | HuFei       |   31 |
  | Xuzhu       |   26 |
  | LingHuchong |   22 |
  显示老师和学生年龄一样,用IN查询
  mysql> SELECT Name,Age FROM students WHERE Age IN (SELECT Age FROM tutors);
  Empty set (0.00 sec)
  UNION 联合
  mysql> (SELECT Name,Age FROM students) UNION (SELECT Tname,Age FROM tutors);
  +--------------+------+
  | Name         | Age  |
  +--------------+------+
  | GuoJing      |   19 |
  | YangGuo      |   17 |
  | DingDian     |   25 |
  | HuFei        |   31 |
  | HuangRong    |   16 |
  | YueLingshang |   18 |
  | ZhangWuji    |   20 |
  | Xuzhu        |   26 |
  | LingHuchong  |   22 |
  | YiLin        |   19 |
  | HongQigong   |   93 |
  | HuangYaoshi  |   63 |
  | Miejueshitai |   72 |
  | OuYangfeng   |   76 |
  | YiDeng       |   90 |
  | YuCanghai    |   56 |
  | Jinlunfawang |   67 |
  | HuYidao      |   42 |
  | NingZhongze  |   49 |
  +--------------+------+


运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-613139-1-1.html 上篇帖子: mysql解压版运行 下篇帖子: mysql 数据库定义常用操作
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表