mysql查询子表的语句_MySQL基本SQL语句之单表查询、多表查询和子查询
一、简单查询:
1.基本语法:
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
2.对查询结果排序:
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;//降序
3.字段别名:AS
select col_name AS COL_Aliases … //对字段使用别名
select col_name,… from tb_name AS tb_Aliases … //对表使用别名
4.LIMIT子句:
mysql> select ID,post_title,post_date from wp_posts where ID>1290 and post_status='publish' limit 5;//显示匹配到的5条数据
mysql> select ID,post_title,post_date from wp_posts where ID>1290 and post_status='publish' limit2,3; //(逗号前的数字)表示偏移量
5.聚合: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;//计数
6.分组: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 将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_tbLEFT JOINright_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语句之单表查询、多表查询和子查询相关推荐
- mysql 子表 关联查询语句_MySQL基本SQL语句之单表查询、多表查询和子查询
一.简单查询: 基本语法:SELECT * FROM tb_name;查询全部 SELECT field1,field2 FROM tb_name; 投影 SELECT [DISTINCT] * FR ...
- mysql修改的值子查询语句_MySQL的SQL语句 - 数据操作语句(13)- 子查询(13)
子查询的限制 ● 通常,不能在子查询中修改表并从同一表中进行选择.例如,此限制适用于以下形式的语法: 1. DELETE FROM t WHERE ... (SELECT ... FROM t ... ...
- mysql排序显示行数的语句_MySQL中sql语句count(*),orderby,随机数据展示。
count(*)这么慢,我该怎么办? MyISAM 引擎把一个表的总行数存在了磁盘上,因此执行 count(*) 的时候会直接返回这个数,效率很高: 而 InnoDB 引擎就麻烦了,它执行 count ...
- mysql数据库求和语句_MYSQL数据库SQL语句集锦
*特别说明:FILED代表数据表字段,CONDITIONS代表where之后的条件,TABLENAME代表数据表名 []中括号内的内容代表 可有可无. 创建数据库 create database ...
- mysql删除索引语句_MySQL:使用SQL语句删除所有索引
删除所有索引 可利用ALTER TABLE或DROP INDEX语句来删除索引.这里使用ALTER TABLE,首先查询所有索引,然后拼接成删除语句,复制执行即可 #拼接删除索引的语法 SELECT ...
- mysql通常使用语句_Mysql 常用SQL语句集锦
基础篇 //查询时间,友好提示 $sql = "select date_format(create_time, '%Y-%m-%d') as day from table_name" ...
- mysql事务控制(xa分布式事务)和锁定语句_MySQL的SQL语句 -事务性语句和锁定语句(7)- XA 事务...
XA 事务 InnoDB 存储引擎支持 XA 事务.MySQL XA 的实现基于 X/Open CAE 文档 Distributed Transaction Processing: The XA Sp ...
- mysql curd语句_MySQL常用SQL语句(CURD,建表,加字段,查改参数)
查询: FROM_UNIXTIME():时间戳转日期 sum:合计 SELECT *, FROM_UNIXTIME(a.add_time) AS add_time2, SUM(b.goods_numb ...
- MySQL中定义fk语句_MySQL的SQL语句 - 数据定义语句(6)- ALTER TABLE 语句 (4)
外键和其他约束 InnoDB和NDB存储引擎支持 FOREIGN KEY 和 REFERENCES 子句,这些存储引擎实现了ADD [CONSTRAINT [symbol]] FOREIGN KEY ...
最新文章
- C#实现一个用于开机启动其他程序的Windows服务
- 解题报告:AcWing 352. 闇の連鎖(树上差分、方案统计)
- c# winform实现2048游戏
- linux改变文件夹权限吗,linux改变文件/文件夹权限
- hdu 1879 继续通畅工程(最小生成树)
- C语言课程设计---歌厅歌曲管理系统
- linux网络编程-----非阻塞connect
- tablib把数据导出为Excel、JSON、CSV等格式的Py库(写入数据并导出exl)
- lamp mysql5.5 LAMP平台全新编译安装
- 被定制化开发坑惨了的IT人,不是所有的报表都能满足老板的需求
- java http的get,post请求
- 企业实战|基于Cobbler实现多版本系统批量部署
- python基础——经营第一个项目,如何将python学得更6 ?
- MVC3+EF4.1学习系列(八)-----利用Repository and Unit of Wor
- 汽车租赁管理系统mysql
- java实现百度识图后台
- ARM | 微生物学的历史——Roberto Kolter的解读
- Tom猫爱吃喝_Python面向对象“又“入门
- 基于团队的持续优化之道
- Python 实现三维建模工具(上)
热门文章
- 如何用Java代码在SAP Marketing Cloud里创建contact数据
- ERP failure: Error when opening an RFC connection
- attachment绑相对url
- webpack devServer
- SAP UI5在本地运行和部署到服务器后运行的差异
- 位地址和字节地址换算_面试常考,项目易错,长文详解C/C++中的字节对齐
- 求圆面积的python代码_《求》字意思读音、组词解释及笔画数 - 新华字典 - 911查询...
- 医学图像处理期末复习(一)
- 解析java源代码_一步步解析java执行内幕
- 统考计算机2010年版,2010年计算机专业统考试题数据结构