一、简单查询:

基本语法:

SELECT * FROM tb_name;查询全部

SELECT field1,field2 FROM tb_name; 投影

SELECT [DISTINCT] * FROM tb_name WHERE qualification; 选择

说明:

FROM子句: 要查询的关系         表、多个表、其它SELECT语句

WHERE子句:布尔关系表达式,主要包含如下这几类表达式:

比较:=、>、>=、<=、<

逻辑关系:

AND

OR

NOT

BETWEEN ... AND ...   :在两个值之间

LIKE ‘’

%: 任意长度任意字符

_:任意单个字符

REGEXP, RLIKE :正则表达式,此时索引无效

IN

IS NULL

IS NOT NULL

如下查询本博客的wp-links和wp_posts表:

mysql> select * from wp_links; 查询全部 mysql> select link_name,link_url from wp_links; 投影

+-------------------+--------------------------------------+

| link_name               | link_url                                              |

+-------------------+--------------------------------------+

| 旺旺腾讯微博          | http://t.qq.com/toxingwang              |

| 旺旺新浪微博          | http://weibo.com/gz100ww               |

| 51CTO技术博客      | http://towangwang.blog.51cto.com/ |

+-------------------+--------------------------------------+

10 rows in set (0.00 sec)

mysql> select ID,post_title,post_date from wp_posts where ID>1290 and post_status='publish';选择

+------+----------------------------------------------------------------+----------------------+

| ID   | post_title                                                                                      | post_date                   |

+------+----------------------------------------------------------------+----------------------+

| 1291 | 【转】HP 3PAR存储概念之三                                                      | 2013-08-29 17:21:27 |

| 1298 | 【转】HP 3PAR存储概念之四                                                      | 2013-08-29 17:22:33 |

| 1351 | 【转】XenDesktop 5.5+vSphere 5创建虚拟机报错                      | 2013-09-04 17:41:26 |

| 1357 | linux下强大的网络工具Netcat                                                     | 2013-09-09 22:26:45 |

| 1360 | MySQL常用命令、技巧和注意事项                                              | 2013-09-20 11:04:15 |

| 1369 | 【转】数据库设计原理知识--B树、B-树、B+树、B*树都是什么     | 2013-09-21 12:30:18 |

| 1379 | MySQL基本SQL语句之常用管理SQL                                           | 2013-09-21 12:39:23 |

+------+----------------------------------------------------------------+---------------------+

7 rows in set (0.01 sec)

对查询结果排序:

ORDER BY field_name {ASC|DESC}

如下:

mysql> select ID,post_title,post_date from wp_posts where ID>1290 and post_status='publish' ORDER by ID;   ##升序,ID是排序的字段

mysql> select ID,post_title,post_date from wp_posts where ID>1290 and post_status='publish' ORDER by ID DESC;  ##降序

字段别名:AS

select col_name AS COL_Aliases … :对字段使用别名

select col_name,… from tb_name AS tb_Aliases …  :对表使用别名

如下:

mysql> select post_title AS 文章标题 from wp_posts where ID>1290 and post_status='publish';

+----------------------------------------------------------------+

| 文章标题                                                                                    |

+----------------------------------------------------------------+

| 【转】HP 3PAR存储概念之三                                                      |

| 【转】HP 3PAR存储概念之四                                                      |

| 【转】XenDesktop 5.5+vSphere 5创建虚拟机报错                      |

| linux下强大的网络工具Netcat                                                     |

| MySQL常用命令、技巧和注意事项                                              |

| 【转】数据库设计原理知识--B树、B-树、B+树、B*树都是什么     |

| MySQL基本SQL语句之常用管理SQL                                           |

+----------------------------------------------------------------+

7 rows in set (0.02 sec)

##还可以这样:

mysql> select 3+2 AS SUM;

+-----+

| SUM |

+-----+

|   5    |

+-----+

1 row in set (0.00 sec)

LIMIT子句:LIMIT [offset,]Count

如下:

mysql> select ID,post_title,post_date from wp_posts where ID>1290 and post_status='publish' limit 5;

+------+--------------------------------------------------+---------------------+

| ID      | post_title                                                                | post_date               |

+------+--------------------------------------------------+---------------------+

| 1291 | 【转】HP 3PAR存储概念之三                                 | 2013-08-29 17:21:27 |

| 1298 | 【转】HP 3PAR存储概念之四                                 | 2013-08-29 17:22:33 |

| 1351 | 【转】XenDesktop 5.5+vSphere 5创建虚拟机报错  | 2013-09-04 17:41:26 |

| 1357 | linux下强大的网络工具Netcat                                 | 2013-09-09 22:26:45 |

| 1360 | MySQL常用命令、技巧和注意事项                          | 2013-09-20 11:04:15 |

+------+--------------------------------------------------+---------------------+

5 rows in set (0.01 sec)

mysql> select ID,post_title,post_date from wp_posts where ID>1290 and post_status='publish' limit 2,3;  ##红色部分(逗号前的数字)表示偏移量

+------+--------------------------------------------------+---------------------+

| ID      | post_title                                                              | post_date                 |

+------+--------------------------------------------------+---------------------+

| 1351 | 【转】XenDesktop 5.5+vSphere 5创建虚拟机报错  | 2013-09-04 17:41:26 |

| 1357 | linux下强大的网络工具Netcat                                 | 2013-09-09 22:26:45 |

| 1360 | MySQL常用命令、技巧和注意事项                          | 2013-09-20 11:04:15 |

+------+--------------------------------------------------+---------------------+

3 rows in set (0.00 sec)

聚合:SUM(), MIN(), MAX(), AVG(), COUNT(),括号中为字段名

mysql> select sum(ID) from wp_posts;计算和

mysql> select min(ID) from wp_posts;查早最小的

mysql> select max(ID) from wp_posts; 查找最大的

mysql> select avg(ID) from wp_posts; 平均值

mysql> select count(ID) from wp_posts;计数

分组:GROUP BY,一般配合聚合运算使用

如下:

mysql> select count(post_status) AS 各状态数量,post_status AS 状态名称 from wp_posts group by post_status;

+-----------------+--------------+

| 各状态数量           | 状态名称        |

+-----------------+--------------+

|               1           | auto-draft     |

|               9           | draft             |

|             251         | inherit           |

|             238         | publish          |

|               2           | trash             |

+-----------------+--------------+

5 rows in set (0.01 sec)

注意:可以使用HAVING qualification将GROUP BY的结果再次过滤,用法同where

二、多表查询

连接:

交叉连接:笛卡尔乘积

自然连接:将两张表某字段中相等连接起来,如下

mysql> SELECT students.Name,students.Age,courses.Cname,students.Gender FROM students,courses WHERE students.CID1 = courses.CID;

+--------------+------+------------------+--------+

| Name             | Age   | Cname                 | Gender |

+--------------+------+------------------+--------+

| GuoJing          |   19   | TaiJiquan              | M        |

| YangGuo        |   17   | TaiJiquan              | M        |

| DingDian        |   25   | Qishangquan       | M         |

| HuFei             |   31   | Wanliduxing         | M         |

| HuangRong    |   16   | Qianzhuwandushou | F       |

| YueLingshang |   18   | Wanliduxing         | F          |

| ZhangWuji      |   20   | Hamagong           | M         |

| Xuzhu             |   26   | TaiJiquan              | M         |

+--------------+------+------------------+--------+

8 rows in set (0.00 sec)

外连接:

左外连接:left_tb LEFT JOIN right_tb ON ...  :以左表为标准

mysql> SELECT s.Name,c.Cname FROM students AS s LEFT JOIN courses AS c ON s.CID1=c.CID;

+--------------+--------------------+

| Name             | Cname                    |

+--------------+--------------------+

| GuoJing          | TaiJiquan                 |

| YangGuo        | TaiJiquan                 |

| DingDian        | Qishangquan           |

| HuFei              | Wanliduxing            |

| HuangRong    | Qianzhuwandushou |

| YueLingshang | Wanliduxing            |

| ZhangWuji      | Hamagong              |

| Xuzhu             | TaiJiquan                 |

| LingHuchong  | NULL                      |

| YiLin               | NULL                      |

+--------------+--------------------+

10 rows in set (0.00 sec)

右外连接 : left_tb RIGHT JOIN right_tb ON ... :以右表为标准

mysql> SELECT s.Name,c.Cname FROM students AS s RIGHT JOIN courses AS c ON s.CID1=c.CID;

+--------------+--------------------+

| Name             | Cname                    |

+--------------+--------------------+

| GuoJing         | TaiJiquan                  |

| YangGuo       | TaiJiquan                  |

| DingDian       | Qishangquan            |

| HuFei             | Wanliduxing             |

| HuangRong    | Qianzhuwandushou |

| YueLingshang | Wanliduxing            |

| ZhangWuji     | Hamagong               |

| Xuzhu            | TaiJiquan                  |

| NULL             | Yiyangzhi                 |

| NULL             | Jinshejianfa              |

| NULL             | Qiankundanuoyi      |

| NULL             | Pixiejianfa                |

| NULL             | Jiuyinbaiguzhua       |

+--------------+--------------------+

13 rows in set (0.01 sec)

自连接:本表中不同字段间进行连接

mysql> SELECT c.Name AS student,s.Name AS teacher FROM students AS c,students AS s WHERE c.TID=s.SID;

+-----------+-------------+

| student   | teacher     |

+-----------+-------------+

| GuoJing   | DingDian    |

| YangGuo   | GuoJing     |

| DingDian  | ZhangWuji   |

| HuFei     | HuangRong   |

| HuangRong | LingHuchong |

+-----------+-------------+

5 rows in set (0.02 sec)

注意:使用了别名

三、子查询:一个查询中嵌套另外一个查询

如下:在students表中查询年龄大于平均年龄的学生

mysql> SELECT Name,Age FROM students WHERE Age > (SELECT AVG(Age) FROM students);

+-------------+------+

| Name           | Age    |

+-------------+------+

| DingDian      |   25 |

| HuFei           |   31 |

| Xuzhu           |   26 |

| LingHuchong |   22 |

+-------------+------+

4 rows in set (0.08 sec)

子查询注意事项:

比较操作中使用子查询:子查询只能返回单个值;

IN(): 使用子查询;

在FROM中使用子查询;

联合查询: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   |

| HuYidao          |   42  |

| NingZhongze  |   49   |

+--------------+------+

19 rows in set (0.00 sec)

mysql 单表 子查询_MySQL基本SQL语句之单表查询、多表查询和子查询 | 旺旺知识库...相关推荐

  1. mysql多表查询sql语句怎么写_MySQL基本SQL语句之单表查询、多表查询和子查询

    一.简单查询: 基本语法: SELECT * FROM tb_name;查询全部 SELECT field1,field2 FROM tb_name; 投影 SELECT [DISTINCT] * F ...

  2. mysql 子表 关联查询语句_MySQL基本SQL语句之单表查询、多表查询和子查询

    一.简单查询: 基本语法:SELECT * FROM tb_name;查询全部 SELECT field1,field2 FROM tb_name; 投影 SELECT [DISTINCT] * FR ...

  3. mysql 压力测试知乎_MySQL查看SQL语句执行效率和mysql几种性能测试的工具

    网络中整理,记录下,朋友们应该用得到! Explain命令在解决数据库性能上是第一推荐使用命令,大部分的性能问题可以通过此命令来简单的解决,Explain可以用来查看 SQL 语句的执行效 果,可以帮 ...

  4. mysql查询子表的语句_MySQL基本SQL语句之单表查询、多表查询和子查询

    一.简单查询: 1.基本语法: SELECT * FROM tb_name;//查询全部 SELECT field1,field2 FROM tb_name; //投影 SELECT [DISTINC ...

  5. mysql 怎么查询慢sql语句_Mysql中 查询慢的 Sql语句的记录查找

    Mysql中 查询慢的 Sql语句的记录查找 慢查询日志 slow_query_log,是用来记录查询比较慢的sql语句,通过查询日志来查找哪条sql语句比较慢,这样可以对比较慢的sql可以进行优化. ...

  6. mysql 删除语句多表关联_MySQL多表关联数据同时删除sql语句

    MySQL多表关联数据同时删除sql语句 有需要的朋友可参考. DELETE删除多表数据,怎样才能同时删除多个关联表的数据呢?这里做了深入的解释: 代码如下 1 delete from t1 wher ...

  7. mysql 把一个字段的值_mysql把一个表某个字段的内容复制到另一张表的某个字段的SQL语句写法...

    需求:把一个表某个字段内容复制到另一张表的某个字段. 实现sql语句1: UPDATE file_manager_folder f1 LEFT OUTER JOIN file_manager_fold ...

  8. mysql执行sql语句按钮_mysql执行sql语句过程

    开发人员基本都知道,我们的数据存在数据库中(目前最多的是mysql和oracle,由于作者更擅长mysql,所以这里默认数据库为mysql),服务器通过sql语句将查询数据的请求传入到mysql数据库 ...

  9. 查询一个表中所有id字段在另一个表中对应值的SQL语句怎么写?

    编辑器加载中... 查询一个表中所有id字段在另一个表中对应值的SQL语句怎么写?多表联结查询:select rbd.RBDID, rbd.ProductCode,p.ProductCnName,p. ...

最新文章

  1. Proovread安装与试用
  2. sublime如何实现函数折叠
  3. PIX515防火墙配置策略实例
  4. 用YII实现多重查询(基于tag)
  5. OpenCV EM clustering集群的实例(附完整代码)
  6. 如何取消IE窗口的全屏显示
  7. IdentityServer4专题之二:OpenID介绍
  8. 【英语】Flying By Dream---English
  9. CopyTranslator(复译)-外文辅助阅读翻译解决方案
  10. 开发信模板之失联跟进样品篇
  11. 微信小程序商品跳转到第三方
  12. Qt图像中心旋转的两种方法
  13. STM32L0外接32768HZ晶振应该接多大的负载电容才合适
  14. std::future、std::promise、std::packaged_task、std::async
  15. 微信小程序被投诉怎么办?小妙招教给你
  16. 最新MTK芯片型号汇总,MTK开发资料大全下载
  17. labview 控件变透明
  18. 推荐几个免费看漫画的资源网站,请低调收藏
  19. 【Python应用】自制截图取词小工具-- 解锁文字识别新姿势
  20. Oracle图书管理系统

热门文章

  1. vue项目接入海康威视H5player.js 2.0版(回放示例)
  2. 设计模式(二):工厂模式
  3. 如何处理Zabbix监控值中文字符乱码情况?3点思路分享
  4. Dell XPS 9570 Atheros WiFi 在Ubuntu 20.04 不工作
  5. jQuery实战3:菜单效果
  6. 课外知识----ini
  7. Android5g手机排名,3月Android手机好评榜:5G手机霸榜
  8. (SQL)查询选修张老师讲授所有课程的学生题解
  9. 清远凤霞中学2021年高考成绩查询,中学知识:2020清远中考各高中录取分数线公布...
  10. 旭凤锦覓虐心 恋只愿共赴鸿蒙,《香蜜》原著锦觅和旭凤的“虐恋情深”:细想,他们的爱情,不美...