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

一、简单查询:

基本语法:

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' 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)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/501841.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

sql 删除最低分数_软件测试从业者:必备SQL语句21天打卡,前10天

一、价值&#xff1a;1. 根据这些年的经验&#xff0c;帮软件测试从业者精选出&#xff1a;1)日常工作中&#xff0c;需要用到的SQL语句&#xff1b;2)软测面试中&#xff0c;笔试 / 面试 &#xff0c;需要用到的 SQL问题 & 答案 &#xff1b;2. SQL这种硬技能 &#xff0c…

php两个手机号正则表达式_php 手机号码验证正则表达式

php 手机号码验证正则表达式比较简洁的代码一&#xff1a;$str ;$isMatched preg_match(/^0?(13|14|15|17|18)[0-9]{9}$/, $str, $matches);var_dump($isMatched, $matches);代码二//正则表达式$tel "15558530459"; //作者的手机号码,如果有疑问可以电话联系我,或…

python defaultdict函数_Python中defaultdict与lambda表达式用法

这篇文章主要介绍了Python中defaultdict与lambda表达式用法&#xff0c;在这里分享给大家&#xff0c;需要的朋友可以参考下本文实例讲述了Python中defaultdict与lambda表达式用法。分享给大家供大家参考&#xff0c;具体如下&#xff1a;从教程中看到defaultdict是一个类&…

python中下拉菜单大小_自动化测试——Selenium+Python之下拉菜单的定位

1.通过selenium.webdriver.support.ui的Select进行定位下拉菜单如下图&#xff1a;定位代码(选择Male)&#xff1a;from selenium.webdriver.support.ui import Select# 通过index进行选择Select(driver.find_element_by_id("gender")).select_by_index(1)# 通过valu…

JAVA可不可以编写应用程序_编写一个java应用程序

该楼层疑似违规已被系统折叠 隐藏此楼查看此楼另附Arith类&#xff1a;public class Arith {//默认除法运算精度小数点后面的位数private static final int DEF_DIV_SCALE 2;//这个类不能实例化private Arith() {}/*** 提供精确的加法运算。** param v1 被加数* param v2 加数…

ssms没有弹出服务器验证_使用SSMS扫描和查找SQL Server数据库的潜在安全漏洞

SQL Server Management Studio 17.4或更高版本的SSMS中提供了SQL Server漏洞侦测(VA)功能&#xff0c;此功能允许SQL Server扫描您的数据库以查找潜在的安全漏洞&#xff0c;并且可以针对SQL Server 2012或更高版本运行。如果您还没有使用SSMS上的较新版本&#xff0c;请不要担…

驱动api_消费者驱动契约已死?

吐槽文一篇。契约的一些问题在实践前后端分离的这些年来&#xff0c;已经诞生了一些技术与工具让前后端进行沟通&#xff1a;契约的 Mock 服务&#xff08;Mock Server&#xff09;。用于模拟一个服务器&#xff0c;为特定的接口返回特定的值。契约测试。对前后端协定的 API 进…

php表单提交邮箱_最全实现dede订单表单提交发送到指定邮箱(附前台设置)

打造销售型网站的订单系统。不是所有销售都有权限登陆网站后台查看订单&#xff0c;特别是外地出差时&#xff0c;用户下了订单后不能及时服务用户&#xff0c;可能会造成订单丢失。但dedecms默认的订单提交后只能在后台看到的&#xff0c;每次都要登陆到后台去查看很麻烦。以下…

鸢尾花python贝叶斯分类_机器学习-利用三种分类器实现鸢尾花分类

利用决策树&#xff0c;KNN和朴素贝叶斯三种分类器&#xff0c;对鸢尾花数据集进行分类。下面是具体的流程和代码&#xff1a;1、 数据读取&#xff1a;实验数据是直接加载的sklearn内置的鸢尾花数据集&#xff0c;共150条数据&#xff0c;包含4个特征&#xff0c;而且是一个三…

用php创建一相册文件_php文件创建

PHP-创建文件在您可以做任何一份档案&#xff0c;它已存在&#xff01;在这一课您将学习如何建立一个档案使用PHP 。广告Tizag.comPHP的-制造混乱在PHP中&#xff0c;某个文件创建使用的命令也被用来打开文件。这似乎有点混乱&#xff0c;但我们会努力澄清这一难题。在PHP的打开…

python编辑邮件格式_python发送邮件模板

python发送邮件(不带附件)模板import smtplibfrom email.mime.text import MIMETextfrom email.header import Headersender xxxxxxxxx163.comreceiver xxxxxx126.comsubject 报警username xxxxxxxx163.compassword xxxxmsg MIMEText(strs, plain, utf-8)msg[Subject] H…

php ckeditor 配置,Laravel5.6框架使用CKEditor5相关配置详解

本文实例讲述了Laravel5.6框架使用CKEditor5相关配置。分享给大家供大家参考&#xff0c;具体如下&#xff1a;Laravel 相关配置文件的上传与存储参考文档&#xff1a;创建符号链接php artisan storage:linkproject/public/storage -> project/storage/app/public修改配置文…

python通讯录运用的知识点_案例驱动式Python学习--通讯录存取

驱动案例通讯录&#xff1a;要求打印出企业全部十名员工通讯录。(要求有文件相关操作)内置函数自定义函数函数指被封装起来的、实现某种功能的一段代码。Python安装包、标准库中自带的函数统称为内置函数&#xff0c;用户自己编写的函数称为自定义函数&#xff0c;不管是哪种函…

udp怎么保证不丢包_在 Flink 算子中使用多线程如何保证不丢数据?

分析痛点笔者线上有一个 Flink 任务消费 Kafka 数据&#xff0c;将数据转换后&#xff0c;在 Flink 的 Sink 算子内部调用第三方 api 将数据上报到第三方的数据分析平台。这里使用批量同步 api&#xff0c;即&#xff1a;每 50 条数据请求一次第三方接口&#xff0c;可以通过批…

php 没有libmysql.dll,PHP5.3以上版本没有libmysql.dll,以及由此带来的困扰

有朋友下载了PHP5.3&#xff0c;PHP5.4版本想加载mysql支持的时候发现没有libmysql.dll文件&#xff0c;无法完成mysql配置&#xff0c;其实PHP5.3版本开始&#xff0c;使用mysqlnd库&#xff0c;不再使用libmysql.dll用来访问MySQL数据库&#xff0c;大大提升了PHP的数据库访问…

堆排序时间复杂度_图解堆结构、堆排序及堆的应用

前言这次我们介绍另一种时间复杂度为 O(nlogn) 的选择类排序方法叫做堆排序。我将从以下几个方面介绍&#xff1a;堆的结构堆排序优化的堆排序原地堆排序堆的应用堆的结构什么是堆&#xff1f;我给出了百度的定义&#xff0c;如下&#xff1a;堆(Heap)是计算机科学中一类特殊的…

农历php,PHP农历公历转换

/*云南省曲靖师范学院计算机科学与工程学院-杨海熙编写2009-9-3*/class Lunar{private $_SMDay array(1 > 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31);//定义公历月分天数private $_LStart 1950 ;//农历从1950年开始private $_LMDay array(//差&#xff1a;该年的…

python迷宫起点终点所有路径_通向终点的路不止一条!python迷宫。

马上注册&#xff0c;结交更多好友&#xff0c;享用更多功能^_^您需要 登录 才可以下载或查看&#xff0c;没有帐号&#xff1f;立即注册x本帖最后由 wei_Y 于 2014-11-24 19:53 编辑2008121223547917.jpg (56.62 KB, 下载次数: 3)2014-11-17 19:22 上传其实木有上面那么高端啦…

恶意软件分析沙箱在网络安全策略中处于什么位置?

恶意软件分析沙箱提供了一种全面的恶意软件分析方法&#xff0c;包括静态和动态技术。这种全面的评估可以更全面地了解恶意软件的功能和潜在影响。然而&#xff0c;许多组织在确定在其安全基础设施中实施沙箱的最有效方法方面面临挑战。让我们看一下可以有效利用沙盒解决方案的…

php websocket 帧封装,swoole websocket封装类和调用

上代码 ws.php/*** ws 优化 基础类库* User: singwa* Date: 18/3/2* Time: 上午12:34*/class Ws {CONST HOST "0.0.0.0";CONST PORT 9512;public $ws null;public function __construct() {$this->ws new swoole_websocket_server("0.0.0.0", 9512)…