一、简单查询:基本语法:

代码如下

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://www.111com.net              |

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

| 51CTO技术博客      | http://www.111com.net/ |

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

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;

##降序

字段别名:ASselect 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修改的值子查询语句_MySQL的SQL语句 - 数据操作语句(13)- 子查询(13)

    子查询的限制 ● 通常,不能在子查询中修改表并从同一表中进行选择.例如,此限制适用于以下形式的语法: 1. DELETE FROM t WHERE ... (SELECT ... FROM t ... ...

  2. mysql的select复合查询语法_MySQL(九)之数据表的查询详解(SELECT语法)二

    上一篇讲了比较简单的单表查询以及MySQL的组函数,这一篇给大家分享一点比较难得知识了,关于多表查询,子查询,左连接,外连接等等.希望大家能都得到帮助! 在开始之前因为要多表查询,所以搭建好环境: 1 ...

  3. mysql删除表命令语句_MySQL增删改查语句命令(一)

    增删改查语句 增删改查的语句命令为 增:insert 删:delete 改:update 查:SELECT或者show 库操作 创建数据库:create database shujukuba; 创建带 ...

  4. mysql中删除标识列的语句_MySQL中一些常用的数据表操作语句笔记

    0.创建表 CREATE TABLE 表名 (属性名 数据类型 [完整性约束条件], 属性名 数据类型 [完整性约束条件], 属性名 数据类型 [完整性约束条件]) "完整性约束条件&quo ...

  5. mysql数值比中文检索快_MySQL 千万 级数据量根据(索引)优化 查询 速度

    一.索引的作用 索引通俗来讲就相当于书的目录,当我们根据条件查询的时候,没有索引,便需要全表扫描,数据量少还可以,一旦数据量超过百万甚至千万,一条查询sql执行往往需要几十秒甚至更多,5秒以上就已经让 ...

  6. mysql模糊查询实例_Mysql实例sql模糊查询实例详解

    <Mysql实例sql模糊查询实例详解>要点: 本文介绍了Mysql实例sql模糊查询实例详解,希望对您有用.如果有疑问,可以联系我们. 导读:常用的模糊查询语句:select 字段 fr ...

  7. mysql数据库初识实训总结_MySQL数据库初识(基础语句)

    初识Mysql 认知 数据库:DB 所有的数据存放的仓库 每一个文件夹也是数据库 数据库管理员:DBA 管理数据库软件 数据库服务器:一台跑着一个数据库管理软件的机器 表:文件,一张存储了数据的表 数 ...

  8. mysql的dml语句_Mysql基础入门-SQL_DML语句

    DML语句: DML操作是指对数据库中的表进行操作,主要包括记录的插入(insert),更新(update),删除(delete),查询(select). 记录插入 创建表完成后就需要给器插入记录和数 ...

  9. mysql自动提交 dcl语句_MySQL基础:DCL语句总结

    SQL语言大致分为DCL.DDL.DML三种,本文主要介绍MySQL 5.7版本DCL语句. 概述 DCL(Data Control Language)语句:数据控制语句,用于控制不同数据段直接的许可 ...

  10. mysql排序显示行数的语句_MySQL中sql语句count(*),orderby,随机数据展示。

    count(*)这么慢,我该怎么办? MyISAM 引擎把一个表的总行数存在了磁盘上,因此执行 count(*) 的时候会直接返回这个数,效率很高: 而 InnoDB 引擎就麻烦了,它执行 count ...

最新文章

  1. extjs window显示在顶层
  2. OpenCV HDF创建,写入和读取数据集
  3. Bootstrap常用类
  4. asp.net core 3.x Endpoint终结点路由1-基本介绍和使用
  5. 参会邀请 - ISWC2020 | 第十九届国际语义网会议
  6. lrange是取出所有值并移除么_图解双指针 | LeetCode 27. 移除元素
  7. 嵌入式操作系统内核原理和开发(线程切换)
  8. 新一代 Windows 即将发布、GPT-3 成功商业化,这届微软 Build 大会究竟带来了什么?
  9. 2台电脑一根网线传文件_安卓端和Mac快速连接传文件
  10. java中中文乱码_java中中文乱码怎么解决?
  11. android日历的使用技巧,android日历控件的使用
  12. 排列组合的一些公式及推导
  13. XPT2046电阻触摸屏芯片的使用
  14. 害怕字体侵权?可以免费商用的字体库来了!
  15. 中央民族大学计算机考研2020,2020年中央民族大学856计算机学科专业综合考研复习资料...
  16. 属性基加密仿真及代码实现(CP-ABE)论文:Ciphertext-Policy Attribute-Based Encryption
  17. android 通知权限设置在哪,Android 打开消息通知权限
  18. 关于制作FlappyBird无限地面的一些问题
  19. Python编程实现数字图像的网络爬虫
  20. 【JavaScript实现十进制转换成二进制】

热门文章

  1. 请不要错过身边爱你的人
  2. Disneyland of Shanghai
  3. NLP3:原始文本资料的读取与处理
  4. 一些引起我共鸣的素材
  5. 雷达效果shader
  6. 【MATLAB教程案例31】基于matlab的人脸检测相关算法的仿真与分析——肤色模型与形态学图像处理方法
  7. scroll-view的下拉刷新和上拉加载(触底)
  8. 新零售品牌“三只松鼠”遇挫,摆脱困境的两大方法
  9. 自媒体平台这么多,应该如何选择呢?
  10. 华为p6电信版 android 4.5,华为P6-C00电信版安卓4.4回退至Android4.2版本中转包及降级教程...