SQL学习笔记 | 青训营笔记

156 阅读2分钟

这是我参与「第三届青训营 -后端场」笔记创作活动的的第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排