不想看知识点图解?请直接看SQL语句演示,传送门:https://blog.csdn.net/qq_43265673/article/details/98303294
JavaWeb之MySQL(1.2):MySQL数据处理之查询代码演示
SQL概述
SQL(Structural query language)语句分为以下三种类型:
DML: Data Manipulation Language 数据操纵语言
DDL: Data Definition Language 数据定义语言
DCL: Data Control Language 数据控制语言
DML
DML用于查询与修改数据记录,包括如下SQL语句:
INSERT:添加数据到数据库中
UPDATE:修改数据库中的数据
DELETE:删除数据库中的数据
SELECT:选择(查询)数据
SELECT是SQL语言的基础,最为重要。
DDL
DDL用于定义数据库的结构,比如创建、修改或删除数据库对象,包括如下SQL语句:
CREATE TABLE:创建数据库表
ALTER TABLE:更改表结构、添加、删除、修改列长度
DROP TABLE:删除表
CREATE INDEX:在表上建立索引
DROP INDEX:删除索引
DCL
DCL用来控制数据库的访问,包括如下SQL语句:
GRANT:授予访问权限
REVOKE:撤销访问权限
COMMIT:提交事务处理
ROLLBACK:事务处理回退
SAVEPOINT:设置保存点
LOCK:对数据库的特定部分进行锁定
学习目标
基本的SELECT语句
过滤和排序数据
多表查询
单行函数
分组函数
1—基本 SELECT 语句
SELECT 标识选择哪些列。
FROM 标识从哪个表中选择。
选择全部列
选择特定的列
注 意
SQL 语言大小写不敏感。
SQL 可以写在一行或者多行
关键字不能被缩写也不能分行
各子句一般要分行写。
使用缩进提高语句的可读性。
列的别名
列的别名:
重命名一个列。
便于计算。
紧跟列名,也可以在列名和别名之间加入关键字‘AS’,别名使用双引号,以便在别名中包含空格或特殊的字符并区分大小写。
使用别名
字符串
日期和字符只能在单引号中出现。
每当返回一行时,字符串被输出一次。
显示表结构
2—过滤和排序数据
在查询中过滤行
过滤
WHERE 子句
比较运算
BETWEEN
IN
LIKE
ESCAPE
NULL
逻辑运算
AND
OR
NOT
ORDER BY子句
使用 ORDER BY 子句排序
ASC(ascend): 升序
DESC(descend): 降序
ORDER BY 子句在SELECT语句的结尾。
降序排序
按别名排序
多个列排序
3 — 多表查询
从多个表中获取数据
select last_name, department_name
from employees, departments
select count(employee_id) from employees;
假设输出107行
select count(department_id)from departments;
假设输出27行
select 107*27 from dual;
笛卡尔集
笛卡尔集会在下面条件下产生::
省略连接条件
连接条件无效
所有表中的所有行互相连接
为了避免笛卡尔集, 可以在 WHERE 加入有效的连接条件。
Mysql 连接
等值连接
多个连接条件与 AND 操作符
区分重复的列名
使用表名前缀在多个表中区分相同的列。
在不同表中具有相同列名的列可以用表的别名加以区分。
表的别名
使用别名可以简化查询。
使用表名前缀可以提高执行效率。
连接多个表
连接 n个表,至少需要 n-1个连接条件。 例如:连接三个表,至少需要两个连接条件。
非等值连接
自连接
外连接
内连接和外连接(1)
内连接: 合并具有同一列的两个以上的表的行, 结果集中不包含一个表与另一个表不匹配的行
外连接: 两个表在连接过程中除了返回满足连接条件的行以外还返回左(或右)表中不满足条件的行 ,这种连接称为左(或右) 外连接。没有匹配的行时, 结果表中相应的列为空(NULL).
SQL99:使用ON 子句创建连接
自然连接中是以具有相同名字的列为连接条件的。
可以使用 ON 子句指定额外的连接条件。
这个连接条件是与其它条件分开的。
ON 子句使语句具有更高的易读性。
ON 子句
使用 ON 子句创建多表连接
左外连接
右外连接
4 — 单行函数
单行函数
单行函数:
操作数据对象
接受参数返回一个结果
只对一行进行变换
每行返回一个结果
可以嵌套
参数可以是一列或一个值
字符函数
大小写控制函数
这类函数改变字符的大小写。
字符控制函数
字符控制函数
数字函数
日期函数
函数NOW() 返回:
日期
时间
通用函数
条件表达式
在 SQL 语句中使用IF-THEN-ELSE 逻辑
使用方法:
CASE 表达式
CASE 表达式
5 — 分组函数
分组函数作用于一组数据,并对一组数据返回一个值。
组函数类型
AVG()
SUM()
MAX()
MIN()
COUNT()
组函数语法
AVG(平均值)和 SUM (合计)函数
MIN(最小值)和 MAX(最大值)函数
COUNT(计数)函数
分组数据
分组数据: GROUP BY 子句语法
GROUP BY 子句
使用多个列分组
在GROUP BY子句中包含多个列
非法使用组函数
过滤分组
过滤分组: HAVING 子句
使用 HAVING 过滤分组:
- 行已经被分组。
- 使用了组函数。
- 满足HAVING 子句中条件的分组将被显示。
HAVING 子句
不想看知识点图解?请直接看SQL语句演示,传送门:https://blog.csdn.net/qq_43265673/article/details/98303294
JavaWeb之MySQL(1.2):MySQL数据处理之查询代码演示