MySQL查询(未完结)
MySql查询
单表查询:
查询所有字段
SELECT * FROM 表名; '*' 代表所有字段
查询指定字段
SELECT 字段名1, 字段名2 FROM 表名;
按照指定条件查询记录
1. 查询某条特定记录:
SELECT * FROM 表名 WHERE 字段名 = '条件'; 2. 带 IN 关键字的条件查询:
SELECT * FROM 表名 WHERE 字段名 IN ('范围');
SELECT * FROM 表名 WHERE 字段名 NOT IN ('范围'); 3. 带 BETWEEN AND 关键字的调价查询:
SELECT * FROM 表名 WHERE 字段名 BETWEEN '左范围' AND '右范围';
SELECT * FROM 表名 WHERE 字段名 NOT BETWEEN '左范围' AND '右范围'; 4. 带 LIKE 关键字的模糊条件查询:
" % " 表示比配任意长度的字符.
" _ " 表示只能匹配一个长度的字符.
SELECT * FROM 表名 WHERE 字段名 LIKE '条件 + 通配符';
例子: SELECT * FROM student WHERE name LIKE 'B_B';
查询名字以B开头以B结尾的只能是三个字符的记录
SELECT * FROM student WHERE name LIKE 'B__B';
查询名字以B开头以B结尾的只能是四个字符的记录
SELECT * FROM student WHERE name LIKE 'B%B';
查询名字以B开头以B结尾的可以是任意字符的记录 5. 带 AND 的多条件查询
AND 相当于'逻辑与', 也就是说同时满足条件才算匹配
SELECT * FROM 表名 WHERE 字段1 = '条件1' AND 字段2 > '条件2';
同时满足条件一,条件二两个条件才能匹配 6. 带 OR 的多条件查询
OR 相当于'逻辑或', 也就是说只要满足条件之一就可以匹配
SELECT * FROM 表名 WHERE 字段1 = '条件1' or 字段2 = '条件2';
满足条件1或者满足条件2即可匹配 7. 关键字 DISTINCT (查询结果不重复)
SELECT DISTINCT 字段1 FROM 表名;
有时多条记录的某一个字段可能值时重复的,但我们并不想要重复的数据.在字段名前加上 DISTINCT 即可 8. 分组查询:
SELECT 字段1 FROM 表名 GROUP BY 字段1;
解释:
注意分组动作是查询后到记录后在进行的,所以不能字段1要么是 *, 要么分组字段名在前面已经被查询
SELECT 字段1, COUNT(字段2), GROUP_CONCAT(字段2) FROM 表名 GROUP BY 字段1;
解释:
COUNT() 函数: 计算有多少条记录,
GROUP_CONCAT() 函数: 将分组中的某个字段名显示出来
SELECT 字段1,COUNT(字段2) FROM 表名 GROUP BY 字段1 HAVING COUNT(字段2) > 条件1;
解释:
分组之后还可以进行条件过滤, 将不想要的分组丢弃, 使用 HAVING 关键字.
HAVING 和 WHERE 的区别: 前者是在分组后过滤, 后者是在分组前过滤
9. 使用LIMIT限制查询结果的数量
SELECT * FROM 表名 LIMIT 4;
LIMIT [位置偏移量] [行数] SELECT * FROM 表名 LIMIT 4,5
表示从第五条数据开始读, 往后读三条数据, 也就是读第五条到第八条.
LIMIT 第一个参数不写默认就是0 需要两个参数才能确定一个取记录的范围. 10. 查询空值:
SELECT * FROM 表名 WHERE 字段名 IS NULL;
查询字段名是NULL的记录
SELECT * FROM 表名 WHERE 字段名 IS NOT NULL;
查询字段名不是NULL的记录
多表查询:
普通双表连接查询
SELECT s.字段名1, s.字段名2, f.字段名1, f.字段名2 FROM 表1 AS f, 表2 AS s WHERE 条件1
解释:给表1建一个别名为f, 给表2建一个别名为s, 查询s表中的字段1,2 和 f表中的字段1,2 在满足条件1下 的所有记录
内连接查询
使用 表1 INNER JOIN 表2 ON 连接条件
SELECT s.字段1 FROM 表1 AS s INNER JOIN 表2 as f ON f.字段1 = s.字段1
解释:查询表1中的所有字段1和表2中的字段1相等的记录中的字段1 PS:自连接? : 涉及到的两张表都是同一张表.
SELECT f2.字段1,f2.字段2 FROM 表1 AS f1 INNER JOIN 表1 as f2 ON f1.字段1 = f2.字段1 AND f1.字段1 = '条件1';
查询表的字段1 = '条件1' 的其他记录
外链接查询
左连接
使用 表1 LEFT JOIN 表2 ON 连接条件 格式
SELECT s.字段1, f.字段1,f.字段2 FROM 表1 as s LEFT JOIN 表2 as f ON s.字段1 = f.字段1;
解释:
根据语序我们知道 表1 是在左面 JOIN 进表2的 所以在表1中 s.字段1 不等于 f.字段1 的记录也会被查询出来.只不过查询出来的f.字段1, f.字段2 值为 NULL
右连接
使用 表1 RIGHT JOIN 表2 ON 连接条件 格式
SELECT s.字段1, f.字段1,f.字段2 FROM 表1 as s RIGHT JOIN 表2 as f ON s.字段1 = f.字段1;
解释:
和左连接差不多,只不过是右表的数据全部显示出来
常用函数:
SUM()
SUM(字段名):求总和,返回指定列值的总和
COUNT()
COUNT(*):计算表中的总行数
COUNT(字段名):计算该字段名下的总行数,空值也就是 NULL 值不会记录
AVG()
AVG(字段名):求平均值
MAX()
MAX(字段名):求字段中最大的值
MIN()
MIN(字段名):求字段中最小的值
MySQL查询(未完结)的更多相关文章
- 一篇文章让Oracle程序猿学会MySql【未完待续】
一篇文章让Oracle DB学会MySql[未完待续] 随笔前言: 本篇文章是针对已经能够熟练使用Oracle数据库的DB所写的快速学会MySql,为什么敢这么说,是因为本人认为Oracle在功能性方 ...
- MySQL查询缓存详解
一:缓存条件,原理 MySQL Query Cache是用来缓存我们所执行的SELECT语句以及该语句的结果集,MySql在实现Query Cache的具体技术细节上类似典型的KV存储,就是将SELE ...
- mysql 查询每个分组前N条记录
mysql 查询每个分组前N条记录 假设存在表movie, 有字段 id, part(地区), mcount(观看次数) 现查询每个地区观看次数最多的3部movie, 则表 ###id虽未存在gro ...
- MYSQL查询操作 详细
学习目标 1 掌握select查询所有字段.指定字段的数据 2 掌握消除重复行命令distinct 3 掌握as给字段.表起别名 4 掌握条件查询where后跟比较运算符.逻辑运算符的用法 5 掌握条 ...
- MYSQL查询语句大全集锦
MYSQL查询语句大全集锦 1:使用SHOW语句找出在服务器上当前存在什么数据库: mysql> SHOW DATABASES; 2:2.创建一个数据库MYSQLDATA mysql> C ...
- MySQL安装未响应解决方法
安装MySQL出示未响应,一般显示在安装MySQL程序最后2步的3,4项就不动了. 这种情况一般是你以前安装过MySQL数据库服务项被占用了. 1.卸载MySQL 2.删除安装目录及数据存放目录 3. ...
- Mysql查询缓存研究
转载声明:本文为DBA+社群原创文章,转载必须连同本订阅号二维码全文转载,并注明作者名字及来源:DBA+社群(dbaplus). http://mp.weixin.qq.com/s?__biz=MzI ...
- 数据库之MySQL查询
查询 创建数据库.数据表 -- 创建数据库 create database python_test1 charset=utf8; -- 使用数据库 use python_test1; -- stude ...
- mysql查询、子查询、连接查询
mysql查询.子查询.连接查询 一.mysql查询的五种子句 where子句(条件查询):按照“条件表达式”指定的条件进行查询. group by子句(分组):按照“属性名”指定的字段进行分组.gr ...
随机推荐
- [Alpha]团队成员贡献分配规则
设计参考 参考了往届团队sigma_rg.NewTeam.hotcode5.软剑攻城的四个评分规则后,希望该规则能队内减轻竞争的紧张气氛的同时,有具体的评分规则. 分配总则 基础分值固定为30分,将剩 ...
- 使用范围for语句处理多维数组
在C++11新标准中新增了范围for语句,所以遍历多维数组可以用如下形式: int num[rowCnt][colCnt]; for(auto &row : num){ for(auto &a ...
- 2019年华南理工大学程序设计竞赛(春季赛) B 修仙时在做什么?有没有空?可以来炼丹吗?(思维建图搜索)
https://ac.nowcoder.com/acm/contest/625/B 分析: 全部的状态只有1<<18 个 , 所以我们可以预处理 f[u][j] , 然后建立出全部的u可以 ...
- HDU 5442 后缀自动机(从环字符串选定一个位置 , 时针或顺时针走一遍,希望得到字典序最大)
http://acm.hdu.edu.cn/showproblem.php?pid=5442 题目大意: 给定一个字符串,可理解成环,然后选定一位置,逆时针或顺时针走一遍,希望得到字典序最大,如果同样 ...
- PIE SDK组件式开发综合运用示例
1. 功能概述 关于PIE SDK的功能开发,在我们的博客上已经分门别类的进行了展示,点击PIESat博客就可以访问,为了初学者入门,本章节将对从PIE SDK组件式二次开发如何搭建界面.如何综合开发 ...
- saltstack源码详解一
目录 初识源码流程 入口 1.grains.items 2.pillar.items 2/3: 是否可以用python脚本实现 总结pillar源码分析: @(python之路)[saltstack源 ...
- $bzoj1019-SHOI2008$ 汉诺塔 $dp$
题面描述 汉诺塔由三根柱子(分别用\(A\ B\ C\)表示)和\(n\)个大小互不相同的空心盘子组成.一开始\(n\)个盘子都摞在柱子\(A\)上,大的在下面,小的在上面,形成了一个塔状的锥形体. ...
- stm32cubemx 固件安装
STM32CubeMX 可以在线安装固件库,也可以离线安装 1 在线安装 安装好之后,选项框显示为绿色 2 离线安装 先下载固件包 F1 : https://www.st.com/en/embed ...
- Loadrunner—关联知识点
一.关联定义 把脚本中某些写死的数据,转变成是撷取自服务器所发送的.动态的.每次都不一样的数据 二.什么时候需要做关联 要想弄清这个问题,我们首先要知道客户端与服务器端的请求与响应的过程 过程说明: ...
- MySql的运算符
数据库中的表结构确立后,表中的数据代表的意义就已经确定.而通过MySQL运算符进行运算,就可以获取到表结构以外的另一种数据.例如,学生表中存在一个birth字段,这个字段表示学生的出生年份.而运用My ...