数据库
数据库(Database)是按照数据结构来组织、存储和管理数据的仓库;随着信息技术和市场的发展,数据管理不再仅仅是存储和管理数据,而转变成用户所需要的各种数据管理的方式。数据库有很多种类型,从最简单的存储有各种数据的表格到能够进行海量数据存储的大型数据库系统都在各个方面得到了广泛的应用。
SQL语言介绍
SQL(Structured Query Language)为数据库的语言,在 1974 年由 Boyce【博伊 斯】和 Chamberlin【钱伯林】提出的一种介于关系代数与关系演算之间的结构化查询 语言,是一个通用的、功能极强的关系型数据库语言。它包含三部分:

SELECT
语法(命令不区分大小写,内容区分大小写)
SELECT [DISTINCT] {*,column alias,..}
FROM table alias
WHERE 条件表达式
ORDER BY 排序字段列表 [asc|desc]
注意:
解析步骤: from where select order by
条件查询
查询列(字段)
select distinct *|字段|表达式 as 别名 from 表 表别名
查询某个表中所有的记录的所有字段信息
SELECT * FROM 表名;
查询某个表中所有的记录的指定字段信息
SELECT 列名 FROM 表名;
查询某个表中所有的记录的字段 1 字段 2
SELECT 列名 1,列名 2 FROM 表名;
去除重复记录
SELECT distinct 列名 FROM 表名;
查询表达式
SELECT 表达式 FROM 表名;
使用别名
SELECT xxx as 别名 FROM 表名 表别名
例表:

部分列
例1:

例2:

所有列
例1:

去除重复
例1:

别名
例1:

注意:
as: 字段别名可以使用 as,表别名不能使用 as (可省略)
" ": 原样输出,可以存在 空格与区分大小写
字符串
注意:使用’ '表示字符串(注意区分" ") ,拼接使用 ||
例1:

伪列
例1:

虚表(用于计算表达式,显示单条记录的值)
例1:

null
注意:null 遇到数字参与运算的结果为 null,遇到字符串为空串
例1:

例2:

例3:

查询行(记录)
where 过滤行记录条件
① = 、 >、 <、 >=、 <=、 !=、 <>、 between and
② and 、or、 not、 union、 union all、 intersect 、minus
③ null :is null、 is not null、 not is null
④ like :模糊查询 % _ escape(‘单个字符’)
⑤ in 、 exists(难点) 及子查询 m
例表:

比较条件(= 、>、 <、 >=、 <=、 !=、 <>)
例1:(嵌套一个: 查询在前 过滤在后)

例2:(不使用别名 (推荐) :过滤在前,查询在后)

any、some、all(了解)
例1:

且(and)、或(or)、非(not)
例1:

例2:

例3:

NULL(null 不能使用条件判断,只能使用 is)
例1:

例2:

集合操作(Union、Union All、Intersect、Minus)
Union: 并集(去重) 对两个结果集进行并集操作,不包括重复行同时进行默认规则的排序;
Union All: 全集(不去重) 对两个结果集进行并集操作,包括重复行,不进行排序;
Intersect: 交集(找出重复) 对两个结果集进行交集操作,不包括重复行,同时进行默认规则的排序;
Minus: 差集(减去重复)。
例1:(Union)

例2:(Union all)

例3:(Intersect)

例4:(Minus)

模糊查询(like)
模糊查询,使用通配符:
%: 零个及以上(任意个数的)的字符
_: 一个字符
例1:

例2:

注意:
遇到内容中包含 % _ 使用 escape('单个字符')指定转义符
--1)、编写测试数据
insert into emp(empno,ename,sal) values(1000,'t_%test',8989);
insert into emp(empno,ename,sal) values(1200,'t_tes%t',8000);
--2)、查找
--查询员工姓名中包含字符%的员工名称 岗位 工资 部门编号
select ename,job,sal,deptno from emp where ename like '%a%%'
escape('a');
--指定一个字符
获取所有行的记录
select * from emp;
select * from emp where 1=1 ;
select * from emp where ename like '%';
in、exists与排序
例表:

in与exists
in
相当于使用 or 的多个等值、定值集合,如果存在 子查询,确保类型相同、字 段数为 1;如果记录多,效率不高,用于一些少量定值判断上。
例1:(in)

注意:
```java
便于理解 使用 java 思维
while(外层结果集){
while(内层结果集){
if(emp.deptno==10){
syso("....");
}
if(emp.deptno==30){
syso("....");
}
}
}
==>in :如果记录多,效率不高,用于 一些 少量定值判断上
exists
条件为 true,存在记录则返回结果,后续不再继续比较查询,与查询的字段无
关,与记录有关。
例1:(exists)

例2:

排序(order by)
使用 ORDER BY 排序,排序不是真实改变存储结构的顺序,而是获取的集合的 顺序。
升序 : asc(默认) 降序: desc;
多字段: 在前面字段相等时,使用后面的字段排序;
空排序: 升序 null 排在最前面;降序 null 排在最后面。
例1:(升序)

例2:(降序)

本文深入探讨了SQL语言的基础知识,包括SELECT语句的使用、条件查询、表达式查询、行记录查询以及排序方法。同时,文章还介绍了如何使用SQL进行数据管理,涵盖了从简单数据存储到复杂数据处理的多种场景。
424

被折叠的 条评论
为什么被折叠?



