Mysql Basic


原文链接: Mysql Basic

go实现的mysql管理工具

kill -s TERM /bin/pidof mysqld
nohup mysqld &

Mysql 导出数据csv解决乱码.

导出时直接设置字符集格式:
mysql> select * from mobile_order_region where school_id=6921 into outfile '/tmp/6921.csv' 
CHARACTER SET gbk FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '"' LINES TERMINATED BY '\n';

Mysql 编码转换

select HEX(convert('磊' using gbk));  -- C0DA
select convert(0xC0DA using gbk);     -- 磊
select HEX(convert('磊' using utf8));
select convert(0xE7A38A using utf8);

基本语法

case

Case具有两种格式。简单Case函数和Case搜索函数。

--简单Case函数 
CASE sex 
    WHEN '1' THEN '男' 
    WHEN '2' THEN '女' 
    ELSE '其他' END 
--Case搜索函数 
CASE WHEN sex = '1' THEN '男' 
         WHEN sex = '2' THEN '女' 
ELSE '其他' END 

with 语句

with语句一般用来解决一个sql子查询多次使用的问题,如果不支持的话写两遍就可以了
## 表复制语句
SELECT INTO 和 INSERT INTO SELECT 两种表复制语句
insert into user select * from test.user;

SELECT INTO FROM语句创建表newtable并复制数据 【注意:newtable 不能存在】
select a,c into newtable from Table1

数据混淆

update work_log_list set content=CONCAT(LEFT(content,4),REPEAT('x',CHAR_LENGTH(content)-6),RIGHT(content,2));

二、数据脱敏实现

数据脱敏实现可以从数据库查数据的时候进行处理,可以在查出数据后进行处理。在这里记录了MySQL数据库查询时处理,通过使用mysql字符串函数实现。
首先执行SQL语句:

SELECT IdentityCardNo FROM c_inhabitantinfo;

结果得到了原样的两条身份证号码信息。
正常数据

MySQL数据脱敏实现

  1. CONCAT()、LEFT()和RIGHT()字符串函数组合使用

    CONCAT(str1,str2,…):返回结果为连接参数产生的字符串
    LEFT(str,len):返回从字符串str 开始的len 最左字符

    RIGHT(str,len):从字符串str 开始,返回最右len 字符

    执行SQL语句:

SELECT

CONCAT(LEFT(IdentityCardNo,3), '****' ,RIGHT(IdentityCardNo,4)) AS 身份证号

FROM c_inhabitantinfo;

数据脱敏

2.INSERT()

INSERT(str,pos,len,newstr):返回字符串 str, 其子字符串起始于 pos 位置和长期被字符串 newstr取代的len 字符
执行SQL语句:

SELECT INSERT(IdentityCardNo, 4, 11, '****') AS 身份证号 FROM c_inhabitantinfo;
数据脱敏

在本节中,我们为您提供高级的MySQL技术和技巧,以帮助您有效地解决MySQL中一些棘手的难题。

MySQL CTE简介

本教程将向您展示如何使用MySQL CTE或公用表表达式功能以更可读的方式构建复杂查询。
参阅:http://www.yiibai.com/mysql/cte.html

MySQL递归CTE的最终指南

在本教程中,您将了解MySQL递归CTE以及如何使用它来遍历MySQL数据库中的分层数据。
参阅:http://www.yiibai.com/mysql/recursive-cte.html

使用邻接列表模型管理MySQL中的分层数据

在本教程中,您将学习如何使用邻接列表模型来管理MySQL中的层次结构数据。
参阅:http://www.yiibai.com/mysql/adjacency-list-tree.html

MySQL行计数:如何在MySQL中获取表中的行数?

本教程将向您展示在MySQL数据库中获取MySQL行计数的各种方法。
参阅:http://www.yiibai.com/mysql/row-count.html

MySQL比较两个表

本教程将向您展示如何比较两个表,以查找MySQL中不匹配的记录。
参阅:http://www.yiibai.com/mysql/compare-two-tables-to-find-unmatched-records-mysql.html

如何在MySQL中找到重复的值

本教程将逐步介绍如何使用纯SQL语句在MySQL中的一列或多列中找到重复值。
参阅:http://www.yiibai.com/mysql/find-duplicate-values.html

如何删除MySQL中的重复行

在本教程中,您将学习如何使用DELETE JOIN语句或即时表删除MySQL中的重复行。
参阅:http://www.yiibai.com/mysql/delete-duplicate-rows.html

MySQL UUID:UUID 与 INT 作为主键的比较

本教程将向您介绍MySQL UUID,演示如何将其用作表的主键(PK),并讨论将其用作PK的优缺点。
参阅:http://www.yiibai.com/mysql/uuid.html

MySQL复制表示例

本教程将向您展示如何使用MySQL中的CREATE TABLE LIKE和SELECT语句将表在同一数据库中,或者将表从一个数据库复制到另一个数据库中。
参阅:http://www.yiibai.com/mysql/copy-table-data.html

如何复制MySQL数据库

本教程将向您展示如何在同一服务器,或在另外一个服务器上复制MySQL数据库。
参阅:http://www.yiibai.com/mysql/copy-database.html

MySQL变量

在本教程中,您将学习如何在SQL语句中使用MySQL用户定义的变量。
参阅:http://www.yiibai.com/mysql/variables.html

如何使用MySQL生成的列

在本教程中,将学习如何使用MySQL生成的列来存储从表达式或其他列计算的数据。
参阅:http://www.yiibai.com/mysql/generated-columns.html

如何比较MySQL中相同表中的连续行

在本文章中,我们将通过在MySQL中使用INNER JOIN向您展示如何比较或计算连续行之间的差异。
参阅:http://www.yiibai.com/mysql/compare-calculate-difference-successive-rows.html

如何更改MySQL存储引擎

在本教程中,您将了解表如何使用哪个存储引擎,以及如何将表的存储引擎更改为其他引擎。
参阅:http://www.yiibai.com/mysql/change-storage-engine.html

MySQL REGEXP:基于正则表达式的搜索

在本教程中,您将了解正则表达式以及如何使用MySQL REGEXP运算符使用许多正则表达式示例查询数据。
参阅:http://www.yiibai.com/mysql/regular-expression-regexp.html

MySQL row_number函数以及如何模拟它

在本教程中,我们将向您展示一个模拟MySQL中row_number函数的使用技巧。
参阅:http://www.yiibai.com/mysql/row_number.html

MySQL选择随机记录

显示从数据库表中选择随机记录的各种技术。
参阅:http://www.yiibai.com/mysql/select-random-records-database-table.html

如何选择MySQL中第n个最高纪录

在本教程中,您将学习如何使用各种技术在数据库表中第n个最高记录。
参阅:http://www.yiibai.com/mysql/select-nth-highest-record-database-table-using-mysql.html

MySQL重置自动增量值

本教程将向您展示如何重置MySQL中AUTO_INCREMENT列的自动增量值。
参阅:http://www.yiibai.com/mysql/reset-auto-increment.html 

MariaDB与MySQL比较区别

下表说明了MariaDB和MySQL之间的主要区别:MySQL MariaDBDeveloper Oracle Corporation MariaDB Corporation AB(MariaDB Enterprise),MariaDB Foundation(社区MariaDB Server)协议…
参阅:http://www.yiibai.com/mysql/mariadb-vs-mysql.html

MySQL间隔

本教程将逐步介绍如何使用MySQL间隔进行日期和时间算术与许多实际示例。
参阅:http://www.yiibai.com/mysql/interval.html 

MySQL NULL:初学者指南

在本教程中,您将学习如何使用MySQL NULL值。 此外,还将学习一些有用的函数来有效地处理NULL值。
参阅:http://www.yiibai.com/mysql/null.html

如何获取MySQL今天的日期

本教程将向您展示如何通过使用CURDATE()或NOW()函数来获取MySQL今天的日期。 另外,还将学习如何创建today()存储函数。
参阅:http://www.yiibai.com/mysql/today.html 

如何将NULL值映射到其他有意义的值

您将学习如何将NULL值映射到其他值以获得更好的数据表示。
参考:http://www.yiibai.com/mysql/avoid-displaying-null-values-by-mapping-to-other-values.html

MySQL注释深度

本教程将向您展示如何使用MySQL注释来记录SQL语句或代码块。
参考:http://www.yiibai.com/mysql/comment.html
`