MYSQL

MySQL 是最流行的关系型数据库管理系统,在 WEB 应用方面 MySQL 是最好的 RDBMS(Relational Database Management System:关系数据库管理系统)应用软件之一。

在本教程中,会让大家快速掌握 MySQL 的基本知识,并轻松使用 MySQL 数据库。

目录

表的基本操作

建表

插入

更新

添加新列

删除数据

删除表

基础功能实现

查询

聚合

分组

链接查询

条件语句

case语句

if语句

字符串操作

截取

合并 

替换

字符串检索

长度检索


表的基本操作

建表

CREATE TABLE IF NOT EXISTS 表名(特征1 数据类型 约束条件,特征2 数据类型 约束条件,.....特征n 数据类型 约束条件);
CREATE TABLE IF NOT EXISTS 表名 as select * from 数据来源表;

插入

INSERT INTO 表名(特征1,特征2,....,特征n) VALUES (特征1的数值,特征2的数值,.....,特征n的数值);
INSERT INTO 表名(特征1,特征2,....,特征n) SELECT 特征值1,特征值2,....,特征值n from 数据来源表;

更新

update 表名 set 特征名 = 新的内容,特征2名 = 新内容,.....,特征n = 新内容 where 条件;

添加新列

ALTER TABLE 表名 ADD (新特征1 数据类型 约束,新特征2 数据类型 约束,...,新特征n 数据类型 约束);

删除数据

DELETE FROM 表名 where 条件;

删除表

DROP TABLE 表名;

基础功能实现

查询

SELECT 查询列名 FROM 表名 WHERE 条件 GROUP BY 分组条件列 ORDER BY DESC; 

聚合

sum求和/MAX最大值/MIN最小值/AVG平均值/count计数

SELECT *,SUM(特征1),MAX(特征1),MIN(特征1),AVG(特征1),COUNT(特征1) from 表名 
WHERE 条件 
GROUP BY 分组
ORDER BY DESC;

分组

row_number() over(partition by)

select *,ROW_NUMBER() OVER(PARTITION BY 列 ORDER BY 列2 desc)as t from 表;

链接查询

内连接查询

SELECT * FROM 表1 INNER JOIN 表2 ON 表一.特征 =表二.特征 WHERE 条件;

外连接查询

SELECT * FROM 表一 LEFT JOIN 表二 ON 表一.特征=表二.特征 WHERE 条件;
SELECT * FROM 表一 RIGHT JOIN 表二 ON 表一.特征=表二.特征 WHERE 条件;

条件语句

case语句

select 
case when 条件1 then 输出1 end,
case when 条件2 then 输出2 end,
....
case when 条件n then 输出n end
from 表;

if语句

如果 expr1 是TRUE (expr1 <> 0 and expr1 <> NULL),则 IF()的返回值为expr2; 否则返回值则为 expr3。IF() 的返回值为数字值或字符串值,具体情况视其所在语境而定。

select 
IF(expr1,expr2,expr3)
from 表;

字符串操作

截取

substring_index

SELECT SUBSTRING_INDEX(字符串,分割符,选取第几个分隔符前的字符串) FROM 表;

substring

select SUBSTRING(string,起始位置,count) from 表;

regexp_substr

select regexp_substr(目标列,'正则表达式') from 表;

left 左侧截取指定字符串

LEFT ( input_string , number_of_characters )

right 右侧截取指定字符串

right ( input_string , number_of_characters )

合并 

concat

SELECT CONCAT('string1','string2') FROM 表;

 group_concat

对组合并成一行

SELECT 列1 GOUP_CONCAT(列2)FROM 表 group by 列1;

替换

REPLACE

SELECT REPLACE(列,'分隔符','替换字符') FROM 表;

字符串检索

REGEX

SELECT * FROM 表 WHERE 列名 REGEX('正则表达式')

LIKE

LIKE 关键字主要用于搜索匹配字段中的指定内容 有%_两种模式  %为模糊匹配。_为精准匹配

SELECT * FROM 表 WHERE 列名 LIKE '%哈喽';

匹配以'哈喽'结尾的字符串

SELECT * FROM 表 WHERE 列 LIKE '哈喽%';

匹配以'哈喽'开头的字符串

SELECT * FROM 表 WHERE 列 LIKE '_哈喽';

匹配的'哈喽'字符串前只能有一个字符

SELECT * FROM 表 WHERE 列 LIKE '哈喽_';

匹配的'哈喽'字符串后只能有一个字符

长度检索

LENGTHCHAR_LENGTH

LENGTH返回字符串中数字和字母一个字符长度,utf-8的汉字则是三字符长度

CHAR_LENGTH不管汉字还是数字或者是字母都算是一个字符

所以返回值length为14 char_length为9

SELECT LENGTH('大家好.我是xxx') FROM 表;
SELECT CHAR_LENGHT('大家好.我是xxx') FROM 表;

你可能感兴趣的:(mysql,数据库)