日常的应用开发中可能需要优化SQL,提高数据访问和应用响应的效率,不同的SQL,优化的具体方案可能会有所不同,但是路径上,还是存在一些共性的。...碰巧看到杨老师的这篇文章《第45期:一条 SQL 语句优化的基本思路》,为我们优化一些MySQL数据库的SQL语句提供了可借鉴的路径,值得参考和应用。 SQL语句优化是一个既熟悉又陌生的话题。...以MySQL为例,一条SQL语句从客户端发出到数据库端返回结果一般会经历几个阶段:词法解析、语法解析、语义解析、逻辑优化、物理优化、最终执行并返回结果。...经过以上几个步骤,一般的语句基本上都能达到比较优化的结果。 虽然上面说的是MySQL数据库,但是一些理论上,其他的关系型数据库都是可以借鉴的。...当然,过程说得很简单,但是实操层面上,可能每个步骤中,都会碰到一些更具体的问题,而每个问题都可能引申出更多的知识点,这就要积累了,才可以更加丰富我们的知识网。
MySQL中SQL语句的索引分析 了解过 索引 的概念以及 B+树 的概念之后,我们就来看看怎么分析一条查询语句的索引使用情况。...相信不少同学应该都使用过 EXPLAIN 来分析 SQL 语句,但是具体到 EXPLAIN 中每个字段的作用,可能有不少同学还是会有点晕的。...EXPLAIN语句 接下来,我们使用 EXPLAIN 来查看这条语句。...很明显,在上面的这些类型中,const 和 ref 都是非常理想的查询状态,range 则是要看情况,毕竟它不是索引命中,而是范围查找,但是在日常的业务开发中,列表查询很难不使用范围查询。...参考文档: 《MySQL是怎样运行的》
比如说判断空值的函数,在Oracle中是NVL()函数、NVL2()函数,在SQL Server中是ISNULL()函数,这些函数都包含了当值为空值的时候将返回值替换成另一个值的第二参数。...但是在MySQL中,ISNULL()函数仅仅是用于判断空值的,接受一个参数并返回一个布尔值,不提供当值为空值的时候将返回值替换成另一个值的第二参数。...SELECT ISNULL('i like yanggb'); // 0 SELECT ISNULL(NULL); // 1 因此MySQL另外提供了一个IFNULL()函数。...简单介绍 IFNULL()函数是MySQL内置的控制流函数之一,它接受两个参数,第一个参数是要判断空值的字段或值(傻?),第二个字段是当第一个参数是空值的情况下要替换返回的另一个值。...简单示例 SELECT IFNULL(NULL, 'i like yanggb'); // i like yanggb 在上面的例子中,由于第一个参数为NULL,所以返回的是第二个参数的值。
——善于让自己在学习的过程中感受良好,并确实持续进步,自我激励是一个特别实用的软技能。 然后我想着不妨把这几天玩转 grafana 时用到的进阶版的 sql 语句整理出来。...所谓进阶版,是针对我个人的 sql 能力啦,确切地讲,是指在我之前的笔记中未曾出现、且玩转 grafana 中我确实反复用到的。整理自己刚刚反复实践的新知识点,能很好地巩固新知。...这一条 sql 语句看着挺长,其实是两个部分。as 前面的 data 是数据的名字,我们自定义的,后面B部分的from 数据源就是它。...函数data()与as别名 上方举例中,语句块X 和Y大体上是蛮基础的语句。但依然出现了我之前没有用过的方法。...鉴于我暂时没有写出性能最好的sql语句之觉悟,暂不深究啦。
数据库的操作 sql语句要以分号 ; 结尾 显示数据库版本 select version(); 显示时间 select now(); 查看所有数据库 show databases; 创建数据库 -- create...database 数据库名 charset=utf8; create database school; create database school charset=utf8; 查看创建数据库的语句...decimal(5, 2), gender enum("男", "女", "保密") default "保密" ); 查看表结构 -- desc 表名; desc students; 查看表的创建语句...age as 年龄 from students; -- 查询时可以使用distinct消除重复行 select distinct gender from students; 增加 (insert语句...) -- 物理删除 -- delete from 表名 where 条件; delete from students; -- 整个数据表中的所有数据全部删除
分析器: 没有命中缓存的话,SQL 语句就会经过分析器,分析器说白了就是要先看你的 SQL 语句要干嘛,再检查你的 SQL 语句语法是否正确。 ...连接建立后,执行查询语句的时候,会先查询缓存,MySQL 会先校验这个 sql 是否执行过,以 Key-Value 的形式缓存在内存中,Key 是查询预计,Value 是结果集。...MySQL 查询不建议使用缓存,因为查询缓存失效在实际业务场景中可能会非常频繁,假如你对一个表更新的话,这个表上的所有的查询缓存都会被清空。...3) 分析器 MySQL 没有命中缓存,那么就会进入分析器,分析器主要是用来分析 SQL 语句是来干嘛的,分析器也会分为几步: 第一步,词法分析,一条 SQL...第二步,语法分析,主要就是判断你输入的 sql 是否正确,是否符合 MySQL 的语法。
9、说明:创建视图: create view viewname as select statement 删除视图: drop view viewname 10、说明:几个简单的基本的sql语句 选择:...: select * from 日程安排 where datediff('minute',f开始时间,getdate())>5 13、说明:一条sql 语句搞定数据库分页 select top 10 b...@str-1)+’Rid from T where Rid>-1)’ exec sp_executesql @sql 注意:在top后不能直接跟一个变量,所以在实际应用中只有这样的进行特殊的处理。...语句组合时用的较多 “where 1=1” 是表示选择全部 “where 1=2”全部不选, 如: if @strWhere !...语句,找出表的第31到第40个记录。
MySQL常用SQL语句 记录一些常用的MySQL语句,方便查找翻阅。 1....查看MySQL数据库磁盘占用大小 select TABLE_SCHEMA as '数据库', concat(truncate(sum(data_length)/1024/1024,2),'MB')...查看MySQL数据库中表的磁盘占用 select table_schema as '数据库', table_name as '表名', table_rows as '记录数', truncate...MySQL创建、删除用户,授权、撤销授权 create user user@host identified by 'password'; # 授权 grant all privileges on db.table...privileges on test.* from 'user'@'host'; #删除用户 drop user 'test'@'127.0.0.1'; # 刷新权限使授权生效 flush privileges; MySQL
【题目】 我们公司的数据量非常大,需要的不仅仅是提取数据,要了解SQL方案优化的。一般在写SQL时需要注意哪些问题,可以提高查询的效率?...【解题思路】 数据量大的情况下,不同的SQL语句,消耗的时间相差很大。按下面方法可以提高查询的效果。 1. select子句中尽量避免使用* select子句中,*是选择全部数据的意思。...比如语句:“select * from 成绩表”,意思是选择成绩表中所有列的数据。 在我们平时的练习中,往往没有那么多数据,所以很多同学会图方便使用*。...在工作中,如果你只想用or从几十万语句中取几条出来,是非常划不来的,怎么办呢?下面的方法可替代or。...拥有好习惯,未来在工作中,面对不同的数据量,就可以游刃有余地选择不同的方法来降低完成时间,从而提升工作效率。 从零学会SQL:入门www.zhihu.com
基础SQL-DQL语句-SELECT查询的简单使用以及IFNULL函数 分类 描述 关键字 DQL(Data Query Language)数据查询语言 (掌握) DQL语言并不是属于MYSQL官方的分类...,但是对数据库的操作最多就是查询,所以我们的程序员把查询语句的语句称作为DQL语言 SELECT 等 查询不会对数据库中的数据进行修改.只是一种显示数据的方式 1....简单查询 备用数据: ----------------运行下面的sql语句,生成相关的数据库表 # 创建商品表: CREATE TABLE product( pid INT, pname VARCHAR...> 1.5 查询结果参与运算(IFNULL 函数) 在上面查询 price 价格的时候,存在 NULL 的值,而 NULL 在 mysql 是不算为值的。...(查询结果可参与运算) mysql> SELECT *,IFNULL(price,0)+10 FROM product; +------+-----------------+-------+------
您的MySQL安全吗?数据是最有价值的资产,数据安全已经成为重中之重。本篇将介绍如何使用SQL语句确保MySQL的安全性。 为什么是SQL而不是其他?...操作系统管理员无需触碰MySQL。 DevOps友好——面向服务 适合自动化修复 MySQL从8.0开始,将许多配置管理任务应用到SQL语句,接下来我们将逐一梳理。...更改密码使用如下SQL: ALTER USER root@localhost IDENTIFIED BY ''; 注意,MySQL中可能会存在多个root账户,修改的密码仅仅是...在MySQL 8.0中,DBA可以通过SQL设置系统变量。...安全性方面的相关SQL语句,欢迎关注、收藏、转发!
如何查找MySQL中查询慢的SQL语句 强烈推介IDEA2020.2破解激活,IntelliJ...IDEA 注册码,2020.2 IDEA 激活码 查看MySQL是否启用了查看慢SQL的日志文件 (1) 查看慢SQL日志是否启用 mysql> show variables like 'log_slow_queries...| log_slow_queries | ON | +------------------+-------+ 1 row in set (0.00 sec) (2) 查看执行慢于多少秒的SQL...会记录到日志文件中 mysql> show variables like 'long_query_time'; +-----------------+-------+ | Variable_name...="C:/temp/mysql_slow.log" long_query_time=1 log指示日志文件存放目录; log_slow_queries指示记录执行时间长的sql日志目录; long_query_time
mysql中SQL语句的使用注意 1、禁止使用select*,只获取必要的字段。 2、insert必须指定字段,禁止使用insert into T values()。...以上就是mysql中SQL语句的使用注意,希望对大家有所帮助。更多mysql学习指路:Mysql 收藏 | 0点赞 | 0打赏
SELECT id,name FROM tb_name; 3、创建临时表: >CREATE TEMPORARY TABLE tb_name(这里和创建普通表一样); 4、查看数据库中可用的表...% 为匹配任意、 _ 匹配一个字符(可以是汉字) IS NULL 空值检测 八、MySQL的正则表达式: 1、Mysql支持REGEXP的正则表达式: >SELECT...九、MySQL的一些函数: 1、字符串链接——CONCAT() >SELECT CONCAT(name,’=>’,score) FROM tb_name 2、数学函数: ...VIEW name AS SELECT * FROM tb_name WHERE ~~ ORDER BY ~~; 2、视图的特殊作用: a、简化表之间的联结(把联结写在select中)...8、DELETE (从表中删除一行或多行) DELETE FROM table_name [WHERE ……] 9、DROP(永久删除数据库及对象,如视图、索引等) DROP
;#值的顺序与字段在表中的顺序一致 insert into book(title,author) values('Java学习路线','Java学习录');#为指定字段赋值 insert into...学习笔记',date='2019-05-21' 删除表数据 truncate table book;#删除表中所有数据 delete from book where xx=yy;#根据条件删除表中数据...IFNULL IFNULL(v1,v2)#如果 v1 的值不为 NULL,则返回 v1,否则返回 v2 去除结果集中的重复元素 select distinct(title) from book; 模糊查询...right jion book2 where xx=yy #获取右表所有记录,即使左表没有对应匹配的记录select * from book1 jion book2 where xx=yy #获取两个表中字段匹配关系的记录
mysql> select * from T where ID=10; 开门见山,当我们输入一条 SQL 语句的时候,MySQL 内部究竟执行了什么?...建立连接的过程通常是比较复杂的,所以我建议你在使用中要尽量减少建立连接的动作,也就是尽量使用长连接。 查询缓存 连接建立好了以后,就可以执行 select 语句了,执行逻辑进入第二步:查询缓存。...MySQL 拿到一个查询语句,会先查询缓存,先校验这个语句是否执行过,以 key-value 的形式存在内存里, Key 是查询预计,Value 是结果集。...分析器 如果没有命中缓存,那么就进入分析器,主要就是分析 SQL 语句是拿来干嘛,也就是解析该语句生成语法树,会分为两步: 第一步:词法分析, 一条 SQL 语句有多个字符串组成,首先要提取关键字,比如...第二步:语法分析,主要就是判断你输入的 SQL 是否正确,是否符合 MySQL 的语法。,主要就是判断你输入的 SQL 是否正确,是否符合 MySQL 的语法。
SQL语句主要分为四类,分别是数据查询语言(DQL)、数据操作语言(DML)、数据定义语言(DDL)和数据控制语言(DCL)。1....数据查询语言(DQL):用于从数据库中的一个或多个表中查询数据,主要使用SELECT语句。2....数据操作语言(DML):用于修改数据库中的数据,包括插入(INSERT)、更新(UPDATE)和删除(DELETE)等操作。3....SQL通用语法在书写SQL语句时,需要注意以下几点通用语法:1. SQL语句可以单行或多行书写,以分号结尾。2. SQL语句可以使用空格/缩进来增强语句可读性。3....SQL语句不区分大小写,但关键字建议使用大写。4. SQL语句中的注释可以使用单行注释或多行注释,单行注释以“--”或“#”开头,多行注释以“/*”和“*/”包围。
发表于2019-08-212020-03-03 作者 Ryan 首先, 明确一下在MySQL 中,执行 SQL 语句流程如下(图来自网络): image.png 一条 SQL...语句的执行,主要经过两个重要的组件:1....SQL 命令解析器;2. 代价分析器;代价分析器没有在这个图中展示出来;这也是 SQL 未命中索引的关键所在。...下面来讲一下,如何定位 SQL 未走索引的原因 我们大部分情况下,使用的是 Explain 来分析 SQL 语句是否走索引,即便语法分析的时候是走了索引的,执行的时候,还是有可能没有走索引...如果你详细看过 MySQL 官方网站的说明文档,会看到这一章节内容:Chapter 8 Tracing the Optimizer (https://dev.mysql.com/doc/internals
在之前写VR360时有一个统计页面(https://vr.beifengtz.com/p/statistics.html),在此页面的数据统计时用到了很多mysql中日期函数和时间统计sql语句,当时也是参考了一些资料才写出来的...在平时开发中,涉及到统计数据、报表甚至大数据计算时一定会使用这些日期函数,其他关系数据库也是类似的,我是以mysql为例,比较简单还免费嘛。...话不多说,下面直接列出常用的时间统计sql语句,记录下来方便以后学习巩固。...在 MySQL 3.23 中,如果表达式的右边是一个日期值或一个日期时间型字段,你可以使用 + 和 - 代替 DATE_ADD() 和 DATE_SUB()(示例如下)。...常用统计SQL 查询一天内的数据 select * from table where to_days(column_time) = to_days(now()); select * from table
1、多表联级查询并分组 ---- MySql数据库中 –1、查询重复数据– select *, sum(1) as total from t_businessman group by longitude...; –2、根据id查询重复数据详细信息—- select * from t_baiduapi where businessman_id = 1406; –3、 –先去除重复,去除后的数据将重新插入新表中,...distinct * from t_businessman; where longitude = '39.808475' and latitude = '116.49746'; PS:distinct关键字儿在MySql...$$ DELIMITER ; select getDistance(116.3899,39.91578,116.3904,39.91576); #查询数据 hotelinfo 表中的数据
领取专属 10元无门槛券
手把手带您无忧上云