SHOW DATABASES //列出 MySQL Server 数据库。
SHOW TABLES [FROM db_name] //列出数据库数据表。
SHOW CREATE TABLES tbl_name //导出数据表结构。
SHOW TABLE STATUS [FROM db_name] //列出数据表及表状态信息。
SHOW COLUMNS FROM tbl_name [FROM db_name] //列出资料表字段
SHOW FIELDS FROM tbl_name [FROM db_name],DESCRIBE tbl_n...
原文:http://bbs.landingbj.com/t-0-244231-1.html 在任何一个数据库中,查询优化都是不可避免的一个话题。对于数据库工程师来说,优化工作是最有挑战性的工作。MySQL开源数据库也不例外。其 实笔者认为,数据库优化并没有大家所想象的那么苦难。通常情况下,大家可以从以下四个细节出发来做好MySQL数据库的查询优化工作。 一、利用EXPLAIN关键字来评估查询语句中的缺陷 如
下图所示,现在笔者在数据库中执行了一条简单的Sel...
1.开启MySQL的慢查询日志功能默认情况下,MySQL是不会记录超过一定执行时间的SQL语句的。要开启这个功能,我们需要修改MySQL的配置文件,windows下修改my.ini,Linux下修改my.cnf文件,在[mysqld]最后增加如下命令:复制代码 代码如下:slow_query_loglong_query_time = 1原文:http://vincent1992.blog.51cto.com/4621739/1591914
oracle中查询默认是区分大小写的,但是在mysql中默认不区分大小写。 解决办法:mysql可以在SQL语句中加入 binary来区分大小写。BINARY不是函数,是类型转换运算符,它用来强制它后面的字符串为一个二进制字符串,可以理解为在字符串比较的时候区分大小写。一、查询语句上加binaryselect*from usersWHERE binary user_name = ‘张三‘AND status != 0二、建表时加binary create table t{code varchar(10) binary} 原文:https://ww...
1、什么是MySQL执行计划 要对执行计划有个比较好的理解,需要先对MySQL的基础结构及查询基本原理有简单的了解。 MySQL本身的功能架构分为三个部分,分别是 应用层、逻辑层、物理层,不只是MySQL ,其他大多数数据库产品都是按这种架构来进行划分的。应用层,主要负责与客户端进行交互,建立链接,记住链接状态,返回数据,响应请求,这一层是和客户端打交道的。逻辑层,主要负责查询处理、事务管理等其他数据库功能处...
操作步骤
首先使用用户登录linux客户端,执行命令 mysql -u mjb -p, mjb是数据库用户名,系统会提示输入密码,输入密码回车,登录成功输入命令show variables like ‘slow_query_log‘,
页面会显示是否开启了慢查询日志,slow_query_log =ON,代表已经开启如果未开启,则需要执行该命令set global slow_query_log=on;通过设置log_queries_not_using_indexes开启为使用索引的监控
输入命令show variables like ‘log_queries_not_...
目录group by的用法集合函数的使用order by的用法having对组的管理limit的用法查重distinct的用法1.1、group by的用法create table student
(sno int primary key,name char(10) not null,age int,sex char(5) not null,city char(5) not null,score int not null
);insert into student(sno,name,age,sex,city,score)
value(1001,"刘军",18,"男","武汉",91),
(1002,"刘军",18,"男","杭州",90),
(1003,"李俊杰",20,"男","北京",21)...
一查询数值型数据: SELECT * FROM tb_name WHERE sum > 100; 查询谓词:>,=,<,<>,!=,!>,!<,=>,=< 二查询字符串 SELECT * FROM tb_stu WHERE sname = ‘小刘‘ SELECT * FROM tb_stu WHERE sname like ‘刘%‘ SELECT * FROM tb_stu WHERE sname like ‘%程序员‘ SELECT * FROM tb_stu WHERE sname like ‘%PHP%‘ 三查询日期型数据 SELECT * FROM tb_stu WHERE date = ‘2011-04-08‘ 注:不同数据库对日期型数据存在差异: :...
1.对查询进行优化,应尽量避免全表扫描,首先应考虑在 where 及 order by 涉及的列上建立索引。2.应尽量避免在 where 子句中对字段进行 null 值判断,否则将导致引擎放弃使用索引而进行全表扫描,如:select id from t where num is null可以在num上设置默认值0,确保表中num列没有null值,然后这样查询:select id from t where num=03.应尽量避免在 where 子句中使用!=或<>操作符,否则引擎将放弃使用索引而进行全表扫描。4.应尽...
前言最近在做项目涉及到Mysql的复杂日期查询,日期查询其实在数据库中查询其实还是用的挺多的,比如查询开始日期到结束日期的区间信息,查询日期小于有效日期的信息,查询当天的日期,明天的日期,做比较等。查询使用场景案例时间区间查询查询,2021年06月01号到2021年08月25号的数据SELECT*
FROM`dateTest`
where DATE_FORMAT(date,‘%Y%m%d‘) BETWEEN ‘20210601‘ and ‘20210825‘
包括开始时间,不包括结束时间但是DATE_FOR...
MySQL多表查询&实务 ##多表查询 创建部门表 CREATE TABLE dept( id INT PRIMARY KEY AUTO_INCREMENT, NAME VARCHAR(20) ); INSERT INTO dept (NAME) VALUES (‘开发部‘),(‘市场部‘),(‘财务部‘); # 创建员工表 CREATE TABLE emp ( id INT PRIMARY KEY AUTO_INCREMENT, ...
利用函数:group_concat(),实现一个ID对应多个名称时,原本为多行数据,把名称合并成一行。 其完整语法: GROUP_CONCAT(expr) 该函数返回带有来自一个组的连接的非NULL值的字符串结果。其完整的语法如下所示: GROUP_CONCAT([DISTINCT] expr [,expr ...] [ORDER BY {unsigned_integer | col_name | expr} [ASC | DESC] [,col_name ...]] [SEPARATOR str_val]) mysql> SELECT student_name, -> GROUP_CONCAT(test_score) -> FROM st...
select column,column from table where clause[limit n] [offset];查询语句中你可以使用一个或者多个表,表之间使用逗号(,)分割,并使用WHERE语句来设定查询条件,你可以使用 LIMIT 属性来设定返回的记录数。你可以通过OFFSET指定SELECT语句开始查询的数据偏移量。默认情况下偏移量为0。 原文:https://www.cnblogs.com/tiantianmamababa/p/10610568.html
00 前言在进行mysql性能优化的时候,第一个想到的便是查看慢sql。但是对于慢sql有没有什么好的工具进行分析呢?推荐两个工具mysqldumpslow及pt-query-digest。mysqlslowdump较为简单,常用命令:#得到返回记录最多的20个sql
mysqldumpslow -s r -t 20 slowSQl.log# 得到平均访问次数最多的20条sql
mysqldumpslow -s ar -t 20 slowSQl.log
如果linux上没有安装mysqldumpslow,yum install安装下就行了。本文主要说下pt-query-digest...
一、错误说明 这个错误发生在mysql 5.7 版本及以上版本会出现的问题: mysql 5.7版本默认的sql配置是:sql_mode="ONLY_FULL_GROUP_BY",这个配置严格执行了"SQL92标准"。 很多从5.6升级到5.7时,为了语法兼容,大部分都会选择调整sql_mode,使其保持跟5.6一致,为了尽量兼容程序。 二、sql层面 在sql执行时,出现该原因: 简单来说就是:输出的结果是叫target list,就是select后面跟着的字...