SQL的分类
(一)DDL数据定义语言
作用:用于检索或修改数据
命令:
- SELECT:用于检索数据
- INSERT:用于添加数据到数据库
- UPDATE:用于修改数据库数据
- DELETE:用于删除数据库数据
(二)DML数据操作语言
作用:用于定义数据结构,比如:创建、修改或删除数据库对象,包括:用于创建用户和重建数据库对象
命令:
- CREATE TABLE:创建表
- ALTER TABLE:修改表
- DROP TABLE:删除表
- CREATE INDEX
- DROP INDEX
(三)DCL数据控制语言
作用:用于定义用户权限
命令:
- ALTER PASSWORD
- GRANT
- REVOKE
- CREATE SYNONYM
语句介绍
(一)SELECT
作用:
SELECT
语句用于从数据库中选取数据
语法:
- SELECT 列名称 FROM 表名称
- SELECT * FROM 表名称
补充:
结果集:SELECT语句将取出的数据存储在一个结果表,也称结果集result set
(二)DISTINCT
作用:
DISTINCT
用于不重复的显示查询结果集,即重复数据只显示一次
语法:
SELECT DISTINCT 列名称 FROM 表名称
(三)WHERE语句
作用:
WHERE
能有条件的从表中选取数据
语法:
SELECT 列名称 FROM 表名称 WHERE 列运算符值
补充:
列运算中的常见运算符:
运算符 | 含义 |
---|---|
= | 等于(注意只有一个等号) |
!= 或 <> | 不等于 |
> | 大于 |
< | 小于 |
>= | 大于等于 |
<= | 小于等于 |
BETWEEN | 在某个范围内 |
LIKE | 模糊搜索 |
AND | 并且 |
OR | 或者 |
NOT | 取反 |
引号的使用:
- 数值类型无需加单引号
- 字符类型要加单引号
- 别名使用双引号
- 双引号还被用来将文本放入日期格式
(四)ORDER BY语句
作用:
ORDER BY
能给查询的结果集排序
语法:
- ORDER BY DESC
- ORDER BY ASC
补充:
- ORDER BY默认是升序排列(从小到大)
- DESC代表降序排列
- ASC代表升序排列
- Oracle数据库中,null默认为最大值
- 指定NULLS FIRST,则表示null值的记录将排在最前(不管是asc,还是desc)
- 指定NULLS LAST,则表示null值的记录将排在最后(不管是asc,还是desc)
(五)INSERT语句
作用:
INSERT INTO
用于向表中插入数据
语法:
- INSERT INTO 表名称 VALUES (值1, 值2…)
- INSERT INTO 表名称 (列1, 列2…) VALUES (值1, 值2…)
(六)UPDATE语句
作用:
UPDATE
用于更新表中记录
语法:
UPDATE 表名称 SET 列名称 = 新值 WHERE 列名称 = 某值
(七)DELETE语句
作用:
DELETE
用于删除表中的行
语法:
DELETE FROM 表名称 WHERE 列名称 = 某值
进阶语句介绍
(一)SELECT TOP语句
作用:
SELECT TOP
子句用于规定要返回的记录的数目,该子句对大型表来说非常有用
语法:
SELECT 列名称 FROM 表名称 WHERE ROWNUM <= number
(二)LIKE操作符
作用:
LIKE
操作符用于在WHERE子句中搜索列中指定模式,加上通配符可以实现很多灵活的条件查询
语法:
SELECT 列名称 FROM 表名称 WHERE 列名称 LIKE 某值
补充:
通配符:
%
代表一个或多个字符_
代表一个字符
(三)IN操作符
作用:
IN
操作符允许你在WHERE子句中规定多个值
语法:
SELECT 列名称 FROM 表名称 WHERE 列名称 IN (值1, 值2…)
(四)BETWEEN…AND操作符
作用:
BETWEEN...AND
选取介于两个值之间的数据范围内的值,这些值可以是数据、文本或日期
语法:
SELECT 列名称 FROM 表名称 WHERE 列名称 BETWEEN 值1 AND 值2
补充:
不同数据库对该字段的处理稍有不同,在Oracle数据库中,查找到的数据包含AND
字符前后的两个边界数据
(五)别名
作用:
为表名称或列名称指定别名,创建别名主要是为了更强的可读性
语法:
SELECT 列名称 别名 FROM 表名称
(六)SQL连接
作用:
SQL JOIN
用于把两个或多个表的行结合起来
语法:
Join的四种类型:
- JOIN,如果表中至少有一个匹配,则返回行
- LEFT JOIN,即使右表没有匹配,也从左表返回所有行
- RIGHT JOIN,即使左表没有匹配,也从右表返回所有行
- FULL JOIN,只要其中一张表存在匹配,就返回行
(七)UNION操作符
作用:
SQL UNION
操作符合并两个或多个SELECT语句的结果,UNION内部的SELECT语句必须拥有相同数量的列,列必须拥有相似的数据类型
同时,每个SELECT语句的列的顺序必须相同
语法:
SELECT 列名称 FROM 表名称
UNION
SELECT 列名称 FROM 表名称
补充:
UNION默认选取不同的值,如果需要允许重复值,使用UNION ALL
SQL函数
(一)分组函数
常用函数 | 作用 |
---|---|
AVG | 求平均值 |
COUNT | 返回查询的行数 |
MAX | 返回查询列的最大值 |
MIN | 返回查询列的最小值 |
SUM | 返回查询列的总和 |
分组函数常结合GROUP BY
使用
(二)转换函数
常用函数 | 作用 |
---|---|
TO_DATE | 将字符串转换为日期 |
TO_CHAR | 转换日期或数值为字符串 |
TO_NUMBER | 转换字符串为数字 |
举例:
1 | -- 获取系统当前时间 |