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 条件;
select
case when 条件1 then 输出1 end,
case when 条件2 then 输出2 end,
....
case when 条件n then 输出n end
from 表;
如果 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 '哈喽_';
匹配的'哈喽'字符串后只能有一个字符
LENGTH和CHAR_LENGTH
LENGTH返回字符串中数字和字母一个字符长度,utf-8的汉字则是三字符长度
CHAR_LENGTH不管汉字还是数字或者是字母都算是一个字符
所以返回值length为14 char_length为9
SELECT LENGTH('大家好.我是xxx') FROM 表;
SELECT CHAR_LENGHT('大家好.我是xxx') FROM 表;