SQL语句
数据查询语句(DQL)
# 基本语法
SELECT [参数] FROM 表名 [WHERE 条件] [ORDER BY 排序] [GROUP BY 分组] [HAVING 过滤] [LIMIT 限制];
# 查询所有列
SELECT * FROM employees;
# 查询特定列
SELECT id, name, salary FROM employees;
# 使用别名
SELECT id AS employee_id, name AS employee_name FROM employees;
# 过滤数据
SELECT * FROM employees WHERE salary > 5000;
# 排序
SELECT * FROM employees ORDER BY salary; --- 升序
SELECT * FROM employees ORDER BY salary DESC; --- 降序
# 分组统计
SELECT department, COUNT(*) FROM employees GROUP BY department;
# 过滤分组统计
SELECT department, COUNT(*) FROM employees GROUP BY department HAVING COUNT(*) > 10;
# 限制返回行数
SELECT * FROM employees LIMIT 10;
# 去重查询
SELECT DISTINCT department FROM employees;
数据操作语句(DML)
## 对数据库中的数据进行增、删、改操作 ###
# 向表中插入新数据
insert
# 更新表中的数据
update
# 删除表中的数据
delete
数据定义语句(DDL)
### 定义或修改数据库结构 ###
# 创建数据库对象
create
# 修改数据库对象的结构
alter
# 删除数据库对象
drop
# 清空表中的数据,但保留表结构
truncate
数据控制语句(DCL)
### 控制数据库访问权限 ###
GRANT:授予用户或角色权限
grant *** to ***
REVOKE:撤销用户或角色的权限
revoke *** from ***
事务控制语句(TCL)
### 管理数据库事务 ###
COMMIT:提交事务,保存更改
ROLLBACK:回滚事务,撤销未提交的更改
SAVEPOINT:在事务中设置保存点,用于部分回滚
函数
字符函数
UPPER(字符串|列): 将括号内容转换为大写返回
LOWER(字符串|列): 将括号内容转换为小写返回
INITCAP(字符串|列): 首字母大写
LENGTH(字符): 求出字符串的长度
REPLACE(列, 'old', 'new')进行替换
SUBSTR(字符串|列,开始点 [结束点]): 字符串截取
数字函数
ROUND(数字 | 列 [,要保留小数点的位数]):四舍五入操作
TRUNC(数字 | 列 [,要保留小数的位数]):舍弃小数点
MOD(数字1 |数字2 ):取模运算
日期函数\
LAST_DAY(日期): 求出指定日期当月的最后一天
NEXT_DAY(日期,星期数): 求出下个指定星期几的日期
ADD_MONTHS(日期,数字): 求出若干月之后的日期
MONTHS_BETWEEN(日期1,日期2): 求出每个日期之间所经历的月份
设置session显示date默认类型:
alter session set nls_date_format = 'yyyy-mm-dd hh24:mi:ss'
查看当前日期
select sysdate from dual;
转化函数
TO_CHAR(字符串 | 列,格式字符串): 将日期或数字转换成字符串显示
TO_DATE(字符串,格式字符串): 将字符串转换成DATE数据显示
TO_NUMBER(字符串): 将字符串变为数字显示
insert into a values(to_date('2025-03-05','yyyy-mm-dd'))
通用函数
NVL()函数,处理null
DECODE()函数:多数值判断
统计分组函数
COUNT(): 统计数据总行数
AVG(): 求平均值
SUM(): 求和
MAX(): 求最大值
MIN(): 求最小值
除了被分组函数使用外外,select
其他参数都应该包含在group by
里面。