前言
该系列是自己学习sql语法的系列部分,记录了为期4天的笔记内容
笔记内容供个人后续查阅资料用(虽然预计会吃灰)
来了就安静看,悄悄来,悄悄走
参考文章:
2022-04-20 日报总结
目标
- Sql语句学习
关于SQL
SQL “查”
selct distinct
在表中,一个列可能会包含多个重复值,有时您也许希望仅仅列出不同(distinct)的值。
DISTINCT 关键词用于返回唯一不同的值。
SELECT DISTINCT column_name,column_name
FROM table_name;
- 可以针对某一个列查询出所有不同的值
实践
select distinct country from websites;
结果
where子句
语法
SELECT column_name,column_name
FROM table_name
WHERE column_name operator value;
-
SQL 使用单引号来环绕文本值。
实例中 ‘CN’ 文本字段使用了单引号。
如果是数值字段,请不要使用引号。
# 文本字段 SELECT * FROM Websites WHERE country='CN'; # 数值字段 SELECT * FROM Websites WHERE id=1;
-
operator
表示运算符-
比较运算符包涵:= ,> ,<, >= ,<=, !=(<>)
-
逻辑运算:and、Or、Not
-
Select * from emp where sal > 2000 and sal < 3000; Select * from emp where sal > 2000 or comm > 500; select * from emp where not sal > 1500;
-
-
特殊条件
-
空值判断: is null
Select * from emp where comm is null;
查询 emp 表中 comm 列中的空值。
-
between min and max:
Select * from emp where sal between 1500 and 3000;
查询 emp 表中 SAL 列中大于 1500 的小于 3000 的值。
包含上下限的值
-
in:
Select * from emp where sal in (5000,3000,1500);
查询 EMP 表 SAL 列中等于 5000,3000,1500 的值。
-
like:
Select * from emp where ename like 'M%';
查询 EMP 表中 Ename 列中有 M 的值,M 为要查询内容中的模糊信息。
- % 表示多个字值,_ 下划线表示一个字符;
- M% : 为能配符,正则表达式,表示的意思为模糊查询信息为 M 开头的。
- %M% : 表示查询包含M的所有内容。
- %M_ : 表示查询以M在倒数第二位的所有内容。
-
-
-
value
表示该列需被运算的值
AND & OR 运算符
结合AND和OR,通过圆括号组合起来
实践
SELECT * FROM Websites
WHERE alexa > 15
AND (country='CN' OR country='USA');
从 “Websites” 表中选取 alexa 排名大于 “15” 且国家为 “CN” 或 “USA” 的所有网站
结果
ORDER BY 关键字
SELECT column_name,column_name
FROM table_name
ORDER BY column_name,column_name ASC|DESC;
ORDER BY 关键字用于对结果集进行排序。
ORDER BY 关键字默认按照升序(ASC)对记录进行排序。如果需要按照降序对记录进行排序,您可以使用 DESC 关键字。
升序(Ascending order):ASC
降序(Descending order):DESC
实践
select * from websites
order by alexa desc;
结果
SQL “增”
INSERT INTO
INSERT INTO 语句用于向表中插入新记录。
有两种插入场景
第1种:不指定需要插入的列名
INSERT INTO table_name
VALUES (value1,value2,value3,...);
第2种:需指定插入的列名
INSERT INTO table_name (column1,column2,column3,...)
VALUES (value1,value2,value3,...);
实践
向 “Websites” 表中插入一个新行 百度相关的信息。
# 指定插入列
insert into websites (name, url, alexa, country)
values ('百度','https://www.baidu.com/','4','CN');
# 不指定插入列
insert into websites
values (13,'百度2','https://www.baidu.com/','4','CN');
结果
指定插入列
不指定插入列
注意事项:
在练习本demo的时候,一直期待返回的结果是数据集,实际情况返回的是修改后的反馈信息,
Affected rows 1======= 受影响的行:1
即表示sql语句成功运行了
明日目标
- 完成SQL “改”练习,即UPDATE语句
- 完成SQL “删”练习,即DELETE语句