这是我参与「第三届青训营 -后端场」笔记创作活动的的第5篇笔记
在完成大项目”抖音极简版“时,数据库的使用是不可缺少的。结构化查询语言简称SQL,是一种特殊目的的编程语言,是一种数据库查询和程序设计语言,用于存取数据以及查询、更新和管理关系数据库系统。SQL的使用既可以用来操作数据库,也可以加强对GORM使用时的理解。
一、基础查询
1.打开库
USE myemp;
打开库(emp employees 的简写)
2.查询字段
单个字段
SELECT a FROM emp;
多个字段
SELECT a,b,`c` FROM emp;
查询表中的a,b,c (英文逗号隔开)
` 着重号,可以将关键字转为名称
也可以直接选中列表来输入列表名称
所有字段
SELECT * FROM emp;
格式化
SELECT
a,
b,
FROM
emp;
选中后F9执行查询,F12格式化
3.查询常量
SELECT 100;
SELECT 'ABC';
( ‘ == “ ,单双引号等价)
4.查询表达式
SELCT 2%1;
5.查询函数
SELCT VERSION();
查询mysql的版本号
6.起别名
SELECT last_name AS 姓,first_name 名,ab 'a b' FROM emp;
AS作为关键字,可省略
' ' 可以避免空格的影响
7.去重
SELECT DISTINCT id FROM emp;
关键字DISTINCT
8.+号的作用
SELECT 1+2;
3,数字+null数字,直接相加
SELECT ’1‘+2;
3,字符串+数字,尝试转换为数字
SELECT ’ab'+2;
2,转换失败值为0
SELECT null = 1;
null,一个为null,结果为null
9.拼接
SELECT CONCAT(last_name,first_name) AS 姓名;
关键字CONCAT
10.补充
DESC department;
查询表结构的详细信息
SELECT IFNULL(null,0)
如果是null,变成0
二、条件查询
1.基本语法
SELECT
查询列表
FROM
表名
WHERE
筛选条件;
表 中符合 条件 的 列表
2.按条件表达式筛选
条件运算符
>
<
= #(不是==)
<> #(!=)
>=
<=
例1
SELECT * FROM EMP WHERE salary>10000;
例2
SELECT id FROM emp WHERE id<>90;
3.按逻辑表达式筛选
逻辑运算符
and #(&&)
or #(||)
no #(!)
例1
WHERE salary>=10000 AND salary<=20000;
例2
WHERE id<90 OR id>110 OR salary>10000;
4.模糊查询
条件运算符
like
between and
in
is null
is not null
通配符
% #任意多个字符,含0个字符
_ #单个字符
1.like
WHERE last_name LIKE '%a%';
含字符a的名字
必须用 ' ' 引起来
2.转义
WHERE last_name LIKE '__%';
WHERE last_name LIKE '_%' ESCAPE '_';
转义符 \
转义关键字 ESCAPE
3.between and
WHERE id BETWEEN 100 AND 120;
包含两个临界值,100<=id<=120,顺序交换则无结果
4.in
WHERE id IN (100,120,150);
符合括号中某个条件即可
不支持通配符
5.is null is not null
WHERE pcd IS NULL;
WHERE pcd IS NOT NULL;
不可以 pcd=null
6.安全等于
WHERE PCD <=> null;
缺点:打起来麻烦
三、排序查询
1.基本语法
SELECT 查询列表
FROM 表名
WHERE 筛选条件
ORDER BY 排序列表 比较;
2.降序
ORDER BY salary DESC;
3.升序
ORDER BY salary ASC;
排序默认为从低到高,ASC可省略
4.按别名排序
SELECT *,SALARY*12*(1+IFNULL(commission_pct,0)) 年薪
FROM emp
ORDER BY 年薪 DESC;
5.按函数排序
ORDER BY LENGTH(last_name) DESC;
length(),求字符串长度
6.按多个字段排序
ORDER BY salary ASC,id DESC;
先按工资排,再按id排