2020年6月 Mark
Tool: SQLyog OR Navicat
本文参考视频教程:“尚硅谷MySQL核心技术”,整理笔记如下。
本文主要目的快速地抓取MySQL基础的主要知识点,全文都是手打的,没有复制粘贴,记录可能有不恰当之处
文章目录
DQL 查询
DML 操作 增删改
DDL 定义
TCL 事务控制语言
其中,MyISAM不支持事务,需要设置数据库类型为InnoDB(支持事务控制)
MyISAM增删操作时,只有表锁,会锁住整个表格;而InnoDB可以采用行级锁。
前者以类似于数组方式存储数据,访问速度很快;后者InnoDB以B+树存储。
DQL 查询篇 (一)
语法 --不区分大小写,’’、""通用,数据库索引从1开始。
$.语句顺序
# 语法执行顺序,实际where在select之前执行。
SELECT __查询列表
FROM __表1
JOIN __表2 ON __连接条件 # [INNER] LEFT RIGHT FULL CROSS [OUTER]
WHERE __筛选条件
GROUP BY __分组字段
HAVING __分组后的字段
ORDER BY __排序字段 # [DESC/ASC]
LIMIT __ ;
1.基础查询 SELECT
SELECT VERSION();
SELECT IFNULL(fieldName,0) AS 结果; //手动将NULL值视为0
SELECT 10*3; //30
SELECT CONCAT(field1,",",field2) AS cont;
支持!=,但是<>更加规范。(包容性)
2.条件查询 WHERE
BETWEEN AND, IN --提高语句的简洁度
SELECT DISTINCT * from table; # 去重
WHERE `name` like '__n_l%'; # 单字符 多字符 # 通配符
WHERE `name` like '_$%' ESCAPE '$'; # 转义 \_ \$
WHERE `id` BETWEEN 10 AND 20; # 闭区间 [10,20] 相当于>= <=
WHERE `job` IN ('A','B','C'); # 相当于 "="
IS NULL; IS NOT NULL; =200; 安全等于 <=>
and&& or|| not!
3.排序查询 ORDER BY
ORDER BY
`salary` [ASC|DESC];
LENGTH(`name`);
函数篇:单行函数
CONCAT LENHTH IFNULL
… 组函数/分组函数/统计函数/聚合函数
1.字符函数 CONCAT SUBSTR
-- 中文:utf8三字节 gbk二字节
SELECT
LENGTH('john');
UPPER('john');
CONCAT('VON','_','JOHN');
SUBSTR('李莫愁爱上了陆展元',7); # 数据库索引,从1开始
SUBSTR('李莫愁爱上了陆展元',1,3);
INSTR('杨不悔爱上了殷六侠', '不') AS output; # 返回索引2
TRIM(" 123 "); #123
TRIM(