美文网首页
MySQL操作详解

MySQL操作详解

作者: PC_Repair | 来源:发表于2018-08-05 10:02 被阅读13次
  • LIKE子句,使用场景:如获取某个字段中含有"xxx"字符的所有记录。
    LIKE子句中使用%字符来表示任意字符,类似UNIX或正则表达式中的*

语法:

SELECT field1, field2,...fieldN 
FROM table_name
WHERE field1 LIKE condition1 [AND [OR]] filed2 = 'somevalue'

示例:

SELECT * from user  WHERE runoob_author LIKE '%jf';
通配符 描述
% 替代0个或多个字符
_ 替代一个字符
[charlist] 字符列中的任何单一字符
[^charlist]或[!charlist] 不在字符列中的任何单一字符

  • UNION操作符:用于连接两个以上的 SELECT 语句的结果到一个结果集合中。多个 SELECT 语句会删除重复的数据。
    语法:
SELECT expression1, expression2, ... expression_n
FROM table1
[WHERE conditions]
UNION [ALL | DISTINCT]
SELECT expression1, expression2, ... expression_n
FROM table2
[WHERE conditions];

参数说明:

  • expression1, expression2, ... expression_n: 要检索的列。
  • DISTINCT:可选,删除结果集中重复的数据。默认情况下 UNION 操作符已经删除了重复数据,所以 DISTINCT 修饰符对结果没啥影响。
  • ALL:可选,返回所有结果集,包含重复数据。

  • ORDER BY 排序:可以设定按哪个字段哪种方式来进行排序,再返回搜索结果。
    语法:
SELECT field1, field2,...fieldN table_name
ORDER BY field1, [field2...] [ASC [DESC]]
  • 可以使用任何字段来作为排序的条件,从而返回排序后的查询结果。
  • 可以设定多个字段来排序。
  • 可以使用 ASC 或 DESC 关键字来设置查询结果是按升序或降序排列。 默认情况下,它是按升序排列
  • 可以添加 WHERE...LIKE 子句来设置条件。
    示例:
select name, id from user ORDER BY id DESC;

  • GROUP BY:根据一个或多个列对结果集进行分组,在分组的列上我们可以使用 COUNT、SUM、AVG 等函数。
    语法:
SELECT column_name, function(column_name)
FROM table_name
WHERE column_name operator value
GROUP BY column_name;

示例:
表内数据如下:

SELECT * FROM employee_tbl;

+----+--------+---------------------+--------+
| id | name | date | singin |
+----+--------+---------------------+--------+
| 1 | 小明 | 2016-04-22 15:25:33 | 1 |
| 2 | 小王 | 2016-04-20 15:25:47 | 3 |
| 3 | 小丽 | 2016-04-19 15:26:02 | 2 |
| 4 | 小王 | 2016-04-07 15:26:14 | 4 |
| 5 | 小明 | 2016-04-11 15:26:40 | 4 |
| 6 | 小明 | 2016-04-04 15:26:54 | 2 |
+----+--------+---------------------+--------+

SELECT name, COUNT(*) FROM   employee_tbl GROUP BY name;

+--------+----------+
| name | COUNT(*) |
+--------+----------+
| 小丽 | 1 |
| 小明 | 3 |
| 小王 | 2 |
+--------+----------+

  • 使用WITH ROOLUP:可以实现在分组统计数据基础上再进行相同的统计(SUM,AVG,COUNT…)
SELECT name, SUM(singin) as singin_count FROM  employee_tbl GROUP BY name WITH ROLLUP;

+--------+--------------+
| name | singin_count |
+--------+--------------+
| 小丽 | 2 |
| 小明 | 7 |
| 小王 | 7 |
| NULL | 16 |
+--------+--------------+
其中记录 NULL 表示所有人的登录次数,可以使用 coalesce 来设置一个可以取代 NUll 的名称,coalesce 语法:

select coalesce(a,b,c);
SELECT coalesce(name, '总数'), SUM(singin) as singin_count FROM  employee_tbl GROUP BY name WITH ROLLUP;

  • JOIN连接的使用:在两个或多个表中查询数据。
    JOIN 按照功能大致分为如下三类:
  • INNER JOIN(内连接,或等值连接):获取两个表中字段匹配关系的记录。
  • LEFT JOIN(左连接):获取左表所有记录,即使右表没有对应匹配的记录。
  • RIGHT JOIN(右连接):用于获取右表所有记录,即使左表没有对应匹配的记录。
    示例:
SELECT a.runoob_id, a.runoob_author, b.runoob_count FROM runoob_tbl a INNER JOIN tcount_tbl b ON a.runoob_author = b.runoob_author;

等价于:

SELECT a.runoob_id, a.runoob_author, b.runoob_count FROM runoob_tbl a, tcount_tbl b WHERE a.runoob_author = b.runoob_author;

相关文章

  • 2020-10-13

    数据迁移:MySQL操作mysqldump命令详解

  • Mysql 操作详解

    修改mysql密码 在创建数据库时,指定数据库的编码 查看数据表设置( 字段名称和类型) 查询时,如果某个字段存在...

  • MySQL操作详解

    LIKE子句,使用场景:如获取某个字段中含有"xxx"字符的所有记录。LIKE子句中使用%字符来表示任意字符,类似...

  • python pymysql模块

    Python中操作mysql的pymysql模块详解: http://www.cnblogs.com/wt11/p...

  • MySQL delete操作详解

    场景:数据量持续增长: 持续对数据进行归档整理但是并没有作用 数据表空间虽然有很多空闲空间但是仍然持续增长。 接下...

  • pymysql操作mysql详解

    前言 在之前几天的日记中,各位可以看到我在保存数据时用的基本上都是 MySQL 数据库,而我用的也是 pymysq...

  • Git远程操作详解

    Git远程操作详解 Git远程操作详解

  • Mysql Join语法解析与性能分析

    Mysql Join语法解析与性能分析Mysql - JOIN详解

  • Mysql源码:自定义存储引擎

    参考 MySQL 插件详解MySQL Plugin Development(Sergei &Andrew).pdf...

  • MySQL主从同步

    MySQL主从同步(一)——原理详解 一、MySQL主从同步简介 MySQL主从同步,即MySQL Replica...

网友评论

      本文标题:MySQL操作详解

      本文链接:https://www.haomeiwen.com/subject/vipmvftx.html