查询执行路径中的组件:查询缓存、解析器、预处理器、优化器、查询执行引擎、存储引擎
SELECT语句的执行流程:
FROM Clause --> WHERE Clause --> GROUP BY --> HAVING Clause --> ORDER BY --> SELECT --> LIMIT
单表查询:
SELECT
[ALL | DISTINCT | DISTINCTROW ]
[HIGH_PRIORITY]
[MAX_STATEMENT_TIME = N]
[STRAIGHT_JOIN]
[SQL_SMALL_RESULT] [SQL_BIG_RESULT] [SQL_BUFFER_RESULT]
[SQL_CACHE | SQL_NO_CACHE] [SQL_CALC_FOUND_ROWS]
select_expr [, select_expr ...]
[FROM table_references
[PARTITION partition_list]
[WHERE where_condition]
[GROUP BY {col_name | expr | position}
[ASC | DESC], ... [WITH ROLLUP]]
[HAVING where_condition]
[ORDER BY {col_name | expr | position}
[ASC | DESC], ...]
[LIMIT {[offset,] row_count | row_count OFFSET offset}]
[FOR UPDATE | LOCK IN SHARE MODE]]
select DISTINCT Host,User from user;
DISTINCT:数据去重
SQL_CACHE:显示指定存储查询结果于缓存之中
SQL_NO_CACHE:显示查询结果不予缓存
query_cache_type的值为'ON'时,查询缓存功能打开;
SELECT的结果符合缓存条件及会缓存。否则,不予缓存
如果显示指定SQL_NO_CACHE,不予缓存
query_cache_type的值为'DEMAND'时,查询缓存功能按需进行;
显示指定SQL_CACHE的SELECT语句才会缓存;其他均不予缓存
缓存命中次数查看:
SHOW GLOBAL STATUS LIKE 'Qcache%';
Qcache_hits命中次数
查询总数:
SHOW GLOBAL STATUS LIKE 'Com_se%';
Com_select查询总数
字段别名显示:
col1 AS alias1,col2 AS alias2, ...
WHERE子句:指明过滤条件以实现"选择"的功能
过滤条件:布尔型表达式
算数操作符:+ - * / %
比较操作符:= != <> <=> > >= < <=
BETWEEN min_num AND max_num
IN(element1, element2, ...)
IS NULL
IN NOT NULL
LIKE:
%:任意长度的任意字符;
_:任意单个字符;
RLIKE或REGEXP:匹配字符串可用正则表达式书写模式
逻辑操作符:
NOT
AND
OR
XOR
GROUP:根据指定的条件把查询结果进行"分组"以用于做"聚合"运算;
avg() max() min() count() sum()
SELECT avg(rank),sex FROM base_member_info GROUP BY sex;
HAVING:对分组聚合运算后的结果指定过滤条件
SELECT avg(rank) as fansik,sex FROM base_member_info GROUP BY sex HAVING fansik > 60;
ORDER BY:根据指定的字段对查询的结果进行排序
升序:ASC
降序:DESC
SELECT avg(rank) as fansik,sex FROM base_member_info GROUP BY sex HAVING fansik > 60 ORDER BY fansik DESC;
LIMIT [[offset,]row_count]:offset为偏移量,如果只有一个值,那默认表示行数
SELECT weixin_nickname,rank,sex FROM base_member_info ORDER BY rank DESC LIMIT 180,20;
对查询结果中的数据请求施加"锁":
读锁(共享锁):LOCK IN SHARE MODE
写锁(独占锁、排它锁):FOR UPDATE 多表查询:
交叉连接:笛卡尔乘积:
表1有8行数据,表2有8行数据
select * from 表1,表2;
结果会有64行数据,这就是笛卡尔乘积
内连接:
等值连接:让表之间的字段以"等值"建立连接关系
select 表1.name,表2.name from 表1,表2 where 表1.id=表2.id
不等值连接
自然连接
自连接
外连接:
左外连接:
FROM 表1 LEFT JOIN 表2 on 表1.col=表2.col
右外连接
FROM 表1 RIGHT JOIN 表2 on 表1.col=表2.col 子查询:在查询语句嵌套这查询语句(MySQL对于子查询的优化比较查,建议尽量少的使用)
基于某语句的查询结果再次进行查询
用在WHERE子句中的子查询
(1)用于比较表达式中的子查询;子查询仅能返回单个值
SELECT rank,sex FROM base_member_info WHERE rank < (SELECT avg(rank) FROM base_member_info);
(2)用于IN中的子查询:子查询应该单键(一个字段)查询并返回一个或多个值
SELECT nickname,rank,sex FROM base_member_info WHERE rank IN (SELECT rank FROM base_member);
(3)用于EXISTS
用于FROM子句中的子查询
使用格式:SELECT tb_alias.col1,... FROM (SELECT clause) AS tb_alias WHERE Clause;
联合查询:UNION(使用EXPLAIN会看到有三个查询语句)
SELECT Name,Age FROM students UNION SELECT Name,Age FROM teacher

MySQL查询操作的更多相关文章

  1. MySQL 查询操作

    目录 基本语法 查询常量 查看表达式 查询函数 查询指定字段 查询所有列 列别名 表别名 条件查询 条件查询运算符 逻辑查询运算符 排序与分页 排序查询(order by) 排序方式 limit 分组 ...

  2. MySQL查询操作——2

    -----------查询操作--------------------------- 查询表中的所有字段SELECT * FROM employees; 查询常量值SELECT 100;SELECT ...

  3. MYSQL查询操作 详细

    学习目标 1 掌握select查询所有字段.指定字段的数据 2 掌握消除重复行命令distinct 3 掌握as给字段.表起别名 4 掌握条件查询where后跟比较运算符.逻辑运算符的用法 5 掌握条 ...

  4. mysql查询操作之单表查询、多表查询、子查询

    一.单表查询 单表查询的完整语法: .完整语法(语法级别关键字的排列顺序如下) select distinct 字段1,字段2,字段3,... from 库名.表名 where 约束条件 group ...

  5. mysql查询操作1

    ##1.在已有的表中插入一行记录 insert into tb_name values("",""...); ##2.查询语句的框架和用法 select 字段名 ...

  6. MySQL查询操作select

    查找记录 SELECT select_expr [,select_expr ...] [ FROM table_references(表的参照) [WHERE where_condition](条件) ...

  7. C#参数化执行SQL语句,防止漏洞攻击本文以MySql为例【20151108非查询操作】

    为什么要参数化执行SQL语句呢? 一个作用就是可以防止用户注入漏洞. 简单举个列子吧. 比如账号密码登入,如果不用参数, 写的简单点吧,就写从数据库查找到id和pw与用户输入一样的数据吧 sql:se ...

  8. MySQL(三) 数据库表的查询操作【重要】

    序言 1.MySQL表操作(创建表,查询表结构,更改表字段等), 2.MySQL的数据类型(CHAR.VARCHAR.BLOB,等), 本节比较重要,对数据表数据进行查询操作,其中可能大家不熟悉的就对 ...

  9. MySQL数据库学习笔记(九)----JDBC的ResultSet接口(查询操作)、PreparedStatement接口重构增删改查(含SQL注入的解释)

    [声明] 欢迎转载,但请保留文章原始出处→_→ 生命壹号:http://www.cnblogs.com/smyhvae/ 文章来源:http://www.cnblogs.com/smyhvae/p/4 ...

随机推荐

  1. 跟着百度学PHP[16]-验证码的学习

    一个验证码需要有以下步骤: 验证底图 验证码内容 生成验证码 对比校验 验证码需要依靠PHP的GD扩展库.一些集成环境是默认安装了GD拓展库. <?php //创建一个100*30px图片,默认 ...

  2. AdapterView 和 RecyclerView 的连续滚动

    AdapterView 和 RecyclerView 的连续滚动 android RecyclerView tutorial 概述 ListView 和 GridView 的实现方式 Recycler ...

  3. iOS崩溃解决记录

    Terminating app due to uncaught exception 'CALayerInvalidGeometry', reason: 'CALayer position contai ...

  4. 使用AccessibilityService实现微信自己主动抢红包

    近期要实现微信自己主动抢红包的功能.使用AccessibilityService来开发,这里主要写一下逻辑以及注意点. 注意点 1.搜索keyword 我们实现某个功能比方点击等须要找到相应的对象然后 ...

  5. pycharm重置设置,恢复默认设置

    备忘,备忘,备忘 window 系统 找到下方目录-->删除. 再重新打开pycharm # Windows Vista, 7, 8, 10: <SYSTEM DRIVE>\User ...

  6. 你不知道的C#ToString方法

    我们都知道,String类型的ToString方法在我们平时的编程中应用非常的广泛,那么,对于那些很有用但又很少用的方法,你又熟悉几个呢?下面直接上代码: .ToString("C" ...

  7. IntelliJ Idea Hide excluded folders 隐藏或显示你需要的文件夹

    IntelliJ Idea,以前用idea时,经常maven编译就出现了exclude下的文件夹通常是target,如何隐藏自己不想看见的文件夹,或显示偶尔会用到的文件夹 点击齿轮右下小标 选中文件夹 ...

  8. python3----练习题(斐波那契)

    def f1(a1,a2): if a1 > 100: return print(a1) a3 = a1 + a2 f1(a2, a3) f1(0,1) 练习:写函数,利用递归获取斐波那契数列中 ...

  9. nginx https配置+nginx跳转到万网虚拟主机

    server { listen 443 ssl; server_name www.104dh.com 104dh.com; ssl on; ssl_certificate cert104/152678 ...

  10. iOS开发:iPhone6、6 plus适配

    本文转载至 http://jingyan.baidu.com/article/8cdccae97a5c2b315413cda9.html 1 2 3 4 5 6 7 分步阅读 随着苹果公司持续推出新产 ...