-
MySQL系统变量(查看和修改)
所属栏目:[MySql教程] 日期:2020-12-12 热度:55
在 MySQL 数据库,变量分为系统变量和用户自定义变量。系统变量以 @@ 开头,用户自定义变量以 @ 开头。 服务器维护着两种系统变量,即 全局变量( GLOBAL VARIABLES ) 和 会话变量( SESSION VARIABLES ) 。全局变量影响 MySQL 服务的整体运行方式,会话变[详细]
-
MySQL变量的定义和赋值
所属栏目:[MySql教程] 日期:2020-12-12 热度:167
在 MySQL 中,除了支持标准的存储过程和函数外,还引入了表达式。表达式与其它高级语言的表达式一样,由变量、运算符和流程控制来构成。 变量是表达式语句中最基本的元素,可以用来临时存储数据。在存储过程和函数中都可以定义和使用变量。用户可以使用 DECLA[详细]
-
索引在什么情况下不会被使用?
所属栏目:[MySql教程] 日期:2020-12-12 热度:159
索引可以提高查询的速度,但并不是使用带有索引的字段查询时,索引都会起作用。使用索引有几种特殊情况,在这些情况下,有可能使用带有索引的字段查询时,索引并没有起作用,下面重点介绍这几种特殊情况。 1. 查询语句中使用LIKE关键字 在查询语句中 使用 LIK[详细]
-
SQL语句中的删除操作——delete turncate drop 之间的区别
所属栏目:[MySql教程] 日期:2020-12-12 热度:138
[转载]原文https://www.cnblogs.com/1312mn/p/4422396.html ? 一、SQL中的语法 ???1、 drop table? 表名称? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?eg: drop table? hvr_app.video_retrieval ???2、 truncate table? 表名称? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?[详细]
-
MySQL建表时不设置主键
所属栏目:[MySql教程] 日期:2020-12-12 热度:198
在mysql的技术文档里面有如下文字: ? ? ? ? ? If you do not define a?PRIMARY KEY?for your table,MySQL picks the first?UNIQUE?index that has only?NOT NULL?columns as the primary key and?InnoDB?uses it as the clustered index.?If there is no su[详细]
-
MySQL优化:如何避免回表查询?什么是索引覆盖?
所属栏目:[MySql教程] 日期:2020-12-12 热度:100
转自:https://mp.weixin.qq.com/s?__biz=MjM5ODYxMDA5OQ==mid=2651962609idx=1sn=46e59691257188d33a91648640bcffa5chksm=bd2d092d8a5a803baea59510259b28f0669dbb72b6a5e90a465205e9497e5173d13e3bb51b19mpshare=1scene=1srcid=sharer_sharetime=156439683[详细]
-
MySQL连接查询INNER JOIN、LEFT JOIN、RIGHT JOIN
所属栏目:[MySql教程] 日期:2020-12-12 热度:156
? 一、内连接(INNER JOIN) 获取两个表中字段匹配关系的记录,需要两个表都满足条件的数据才会返回。 如下图阴影部分所示区域。 ? 实例: 有一张表table_a,数据如下: 表table_b,数据如下: 内连接SQL(也可以省略INNER,直接用JOIN): SELECT a.aid,a.a[详细]
-
MySQL中判断一个字符串中是否存在另一字符串
所属栏目:[MySql教程] 日期:2020-12-12 热度:73
? MySQL中有很多方法判断一个字符串中是否存在另一字符串,像比较常用的 like、in 这里就不多介绍了,今天主要介绍一下 find_in_set() 和 locate() 的使用。 一、find_in_set(str,strlist) find_in_set() 返回 strlist 中 str 所在位置的索引,其中 strlist[详细]
-
MySQL中使用group_concat遇到的坑
所属栏目:[MySql教程] 日期:2020-12-12 热度:180
? 在使用group_concat的过程中遇到个问题,这里记录一下: 在MySQL中有个配置参数group_concat_max_len,它会限制使用group_concat返回的最大字符串长度,默认是1024。 ? 查询group_concat_max_len大小: show variables like ' group_concat_max_len ' ; ?[详细]
-
如何开启MySQL慢查询日志
所属栏目:[MySql教程] 日期:2020-12-12 热度:113
? 一、开启慢查询日志首先需要了解四个参数: slow_query_log # 是否开启慢查询日志,默认OFF,开启则设置为 ON。 slow_query_log_file # 慢查询日志文件存储位置。 log_queries_not_using_indexes # 是否把没有使用到索引的SQL记录到日志中,默认OFF,开启[详细]
-
MySQL查询重复数据
所属栏目:[MySql教程] 日期:2020-12-12 热度:117
? 假设有一个用户表 user,数据如下: 1、查询表中 uid 重复的数据 SELECT id,uid,name FROM USER WHERE uid IN ( uid USER GROUP BY uid HAVING COUNT (uid) 1 ); 2、查询表中重复数据,排除最小id user user 1 ) AND id NOT SELECT MIN (id) 1 ); 3、删除[详细]
-
MySQL语句的优化
所属栏目:[MySql教程] 日期:2020-12-12 热度:184
1、使用limit 当不需要取出全部数据时,在查询后面加上limit限制。 2、select * 每次看到select * 的时候都需要用怀疑的眼光审视,是不是真的需要返回全部的列。 3、重复查询相同的数据 有时可能会重复执行相同的查询,比如在用户评论的地方需要查询用户头像[详细]
-
SQL分页过多时, 如何优化
所属栏目:[MySql教程] 日期:2020-12-12 热度:167
问题: 我们经常会使用到分页操作,这里有个问题,在偏移量非常大的时候,它会导致MySQL扫描大量不需要的行然后再抛弃掉。如: SELECT id,name FROM A ORDER BY id DESC LIMIT 10000 , 20 ; 上述这条SQL语句需要查询10020条记录然后只返回最后20条。前面的10[详细]
-
MySQL事务
所属栏目:[MySql教程] 日期:2020-12-12 热度:129
? 一、事务的概念 事务就是一组原子性的SQL查询,或者说一个独立的工作单元。如果数据库引擎能够成功地对数据库应用该组查询的全部语句,那么就执行该组查询。如果其中有任何一条语句因为崩溃或其他原因无法执行,那么所有的语句都不会执行。 也就是说,事务[详细]
-
mysql简单备份与恢复
所属栏目:[MySql教程] 日期:2020-12-12 热度:86
1.备份 mysqldump -u root -h 127.0.0.1 -p --set-gtid-purged=OFF? abc /data/mysqlBak/abc_20200206.sql 2.恢复 将备份的数据库恢复到新的数据库abc-2 1)需要创建数据库abc-2 mysql -u root -h 127.0.0.1 -p create database `abc-2`; quit; 2)恢复数据 LI[详细]
-
MYSQL实现将B表中的字段值到更新A表中
所属栏目:[MySql教程] 日期:2020-12-12 热度:184
根据A表中的id字段和B表中的id字段,将B表中name字段和price字段值更新到A表中name字段和price字段 UPDATE A,B SET A.name = B.name,A.price = B.price WHERE A.id = B.id ?[详细]
-
MySQL索引的数据结构-B+树介绍
所属栏目:[MySql教程] 日期:2020-12-12 热度:186
1.聚集索引和辅助索引 在数据库中,B+树的高度一般都在24层,这也就是说查找某一个键值的行记录时最多只需要2到4次IO,这倒不错。因为当前一般的机械硬盘每秒至少可以做100次IO,24次的IO意味着查询时间只需要0.02~0.04秒。 数据库中的B+树索引可以分为聚集[详细]
-
MYSQL批量修改
所属栏目:[MySql教程] 日期:2020-12-12 热度:166
UPDATE `test` SET `code` = ( CASE WHEN `id` = 1 THEN 11 WHEN `id` = 2 THEN 22 WHEN `id` = 3 THEN 33 END ) WHERE `id` IN (1,2,3); ?[详细]
-
mysql批量插入,存在则修改,不存在则插入
所属栏目:[MySql教程] 日期:2020-12-12 热度:181
批量插入,存在则修改,不存在则插入 INSERT INTO 表名 (字段1,字段2,字段3,字段4) VALUES (字段1值,字段2值,字段3值,字段4值) ON DUPLICATE KEY UPDATE 存在时需要修改的字段 = 字段值; 如果在INSERT语句末尾指定了ON DUPLICATE KEY UPDATE,并且插入行后会[详细]
-
mysql字段中字符串替换实现
所属栏目:[MySql教程] 日期:2020-12-12 热度:82
mysql字段中字符串替换实现: UPDATE `表` SET `字段A` = replace(`字段A`,'需要替换的字符串','替换后的字符串') WHERE `字段A` LIKE '%需要替换的字符串%';[详细]
-
mysqldump备份指定的数据
所属栏目:[MySql教程] 日期:2020-12-12 热度:102
mysqldump -h主机IP -u用户名 -p密码 -w "字段名=字段值" 数据库名 表名 文件路径/文件名 注意: "字段名=字段值" ,一定要用双引号 ? 参数 参数说明 --all-databases??,?-A 导出全部数据库。 mysqldump??-uroot?-p?--all-databases --all-tablespaces??,?-Y[详细]
-
php保存mysql数字时单双引号转义
所属栏目:[MySql教程] 日期:2020-12-12 热度:186
//需要单双引号转移的字符串 $content = '需要单双引号转移的"字符串"'; if (!get_magic_quotes_gpc()) { $content = addslashes($content); }[详细]
-
Mysql存储过程
所属栏目:[MySql教程] 日期:2020-12-12 热度:92
此文仅作简单的说明 ? 一、简介 我们常用的操作数据库语言 SQL 语句在执行的时候需要要先编译,然后执行,而存储过程( Stored Procedure )是一组为了完成特定功能的 SQL 语句集,经编译后存储在数据库中,用户通过指定存储过程的名字并给定参数(如果该存[详细]
-
Mysql事务处理
所属栏目:[MySql教程] 日期:2020-12-12 热度:59
Mysql中MyISAM存储引擎不支持事务,InnoDB和BDB支持事务 ? 事务是一组连续的数据库操作,而这组操作是不可分割的,也就是说这组操作要么全执行成功,要不就全部执行失败(实际不执行)。 事务有以下四个标准属性的缩写ACID,通常被称为: 原子性: 确保工作单[详细]
-
Mysql存储过程语法
所属栏目:[MySql教程] 日期:2020-12-12 热度:132
一口气弄完了! ? 一、条件语句if-then-else: create procedure demo_1( in param int ) begin declare var ; set var = param - 1 if = 0 then insert into userinfo(name) values ( ' demo ' ); else end if ; if param update userinfo set age = param w[详细]