一、简单查询:

基本语法: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;##降序

字段别名: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' limit2,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 bypost_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语句集锦

    *特别说明:FILED代表数据表字段,CONDITIONS代表where之后的条件,TABLENAME代表数据表名   []中括号内的内容代表 可有可无. 创建数据库 create  database ...

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

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

  3. mysql通常使用语句_Mysql 常用SQL语句集锦

    基础篇 //查询时间,友好提示 $sql = "select date_format(create_time, '%Y-%m-%d') as day from table_name" ...

  4. mysql事务控制(xa分布式事务)和锁定语句_MySQL的SQL语句 -事务性语句和锁定语句(7)- XA 事务...

    XA 事务 InnoDB 存储引擎支持 XA 事务.MySQL XA 的实现基于 X/Open CAE 文档 Distributed Transaction Processing: The XA Sp ...

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

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

  6. mysql修改的值子查询语句_MySQL的SQL语句 - 数据操作语句(13)- 子查询(13)

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

  7. mysql curd语句_MySQL常用SQL语句(CURD,建表,加字段,查改参数)

    查询: FROM_UNIXTIME():时间戳转日期 sum:合计 SELECT *, FROM_UNIXTIME(a.add_time) AS add_time2, SUM(b.goods_numb ...

  8. MySQL中定义fk语句_MySQL的SQL语句 - 数据定义语句(6)- ALTER TABLE 语句 (4)

    外键和其他约束 InnoDB和NDB存储引擎支持 FOREIGN KEY 和 REFERENCES 子句,这些存储引擎实现了ADD [CONSTRAINT [symbol]] FOREIGN KEY ...

  9. mysql删除索引语句_MySQL:使用SQL语句删除所有索引

    删除所有索引 可利用ALTER TABLE或DROP INDEX语句来删除索引.这里使用ALTER TABLE,首先查询所有索引,然后拼接成删除语句,复制执行即可 #拼接删除索引的语法 SELECT ...

最新文章

  1. 做科研发论文一直找不到研究热点?硕博导师都在关注的平台你还不快来?
  2. pek (北大oj)3070
  3. android简化log输出方法
  4. 虚拟机服务器实验三十一 Windows Server 2012 RDS桌面虚拟化之二VDI标准部署之托管共享桌面虚拟化...
  5. limit mongodb 聚合_mongodb-$type、limit、skip、sort方法、索引、聚合
  6. 数据结构和算法 D3
  7. 天气暖和了,我却感冒了
  8. laravel中修改默认时区
  9. 材料力学考研可以用计算机吗,2020海南大学材料力学专业超详细考研经验分享...
  10. 人大金仓数据库(kingbase7d)操作入门指南
  11. 微信小程序云函数使用讲解
  12. python做估值模型_理解债券估值中的摊销/摊余成本,利用EXCEL+Python估值建模
  13. 四年级计算机考试反思,四年级期中考试总结反思三篇
  14. 云计算——交换机基本原理与配置
  15. DiscuzQ_V3二次开发版本部署文档
  16. 关于react组件报错“A component is changing an uncontrolled input of type text to be controlled”
  17. 重装系统不识别固态硬盘进入PE系统时候卡死
  18. Android异种机型系统适配:application定义的app名字和安装到手机后桌面显示app名字不一致
  19. SEM营销推广策略和优化,做好其实并不难!
  20. Mybatis一对多和多对一联系处理

热门文章

  1. python练习——万年历
  2. 【C++ 泛型编程 入门篇】C++元模版中std::remove_reference_t和std::remove_cv_t的运用
  3. 计算机软考阅卷在哪里,揭秘!信息系统项目管理师考试是如何阅卷的?
  4. 碧蓝航线8.20服务器维护,碧蓝航线8月20日更新公告 9点港区改造建设
  5. TypeError: module() takes at most 2 arguments (3 given)
  6. Dell Inspiron 5488加内存32G
  7. 教资成绩什么时候出来?2022上半年教资笔试成绩公布日期
  8. 九宫格布局方式有哪些,有什么优缺点?
  9. BUUCTF_xor
  10. MyBatis代码生成器Easy Code