Oreacle(SQL语言基础)
关键词:SQL入门、SQL分类、SQL*Plus、SELECT语句、DML语句、事务控制
✅ 摘要
SQL(Structured Query Language)是关系型数据库的核心操作语言,广泛应用于 Oracle、MySQL、PostgreSQL、SQL Server 等主流数据库系统中。
本文将从 SQL 的基本分类讲起,详细介绍 SELECT 查询、DML 数据操作语句,并结合 SQL 工具使用和事务控制机制,每个知识点都配有 完整的 SQL 示例代码,适合初学者快速上手,也适合中级开发者巩固提升。
一、SQL概述与工具使用
🔹 1. SQL的分类
SQL 通常分为以下几类:
类别 | 全称 | 功能 |
---|---|---|
DDL | Data Definition Language | 创建、修改、删除数据库对象(如表、索引等) |
DML | Data Manipulation Language | 插入、更新、删除数据 |
DCL | Data Control Language | 授予权限、回收权限 |
TCL | Transaction Control Language | 控制事务提交、回滚等 |
示例:查看当前用户下的所有表(Oracle)
-- 查看当前用户拥有的所有表(Oracle)
SELECT * FROM user_tables;
🔹 2. 常用SQL工具介绍
工具名称 | 支持数据库 | 特点 |
---|---|---|
SQL*Plus | Oracle | 命令行工具,轻量级,常用于脚本执行 |
SQL Developer | Oracle | 图形化界面,支持调试PL/SQL |
PL/SQL Developer | Oracle | 强大的开发工具,支持代码调试 |
MySQL Workbench | MySQL | 官方图形管理工具 |
DBeaver | 多种数据库 | 开源通用数据库管理工具 |
示例:SQL*Plus 登录 Oracle
sqlplus username/password@hostname:port/servicename
二、基本查询与操作
🔹 1. SELECT语句(列选择、别名、去重)
示例1:简单查询某张表的数据
-- 查询员工表中的所有数据
SELECT * FROM employees;
示例2:选择特定字段并设置别名
-- 查询姓名和工资,设置中文别名
SELECT first_name AS "名字", salary AS "工资" FROM employees;
示例3:去重查询(DISTINCT)
-- 查询不同的部门编号
SELECT DISTINCT department_id FROM employees;
🔹 2. 过滤条件(WHERE子句、运算符)
示例1:使用等于、大于、小于等比较运算符
-- 查询工资大于5000的员工
SELECT first_name, salary FROM employees WHERE salary > 5000;
示例2:使用 IN 和 BETWEEN
-- 查询部门编号为10或20的员工
SELECT first_name, department_id FROM employees WHERE department_id IN (10, 20);-- 查询工资在6000到8000之间的员工
SELECT first_name, salary FROM employees WHERE salary BETWEEN 6000 AND 8000;
示例3:模糊查询 LIKE
-- 查询姓氏以 'K' 开头的员工
SELECT first_name FROM employees WHERE last_name LIKE 'K%';
🔹 3. 排序与分页(ORDER BY、ROWNUM)
示例1:按工资降序排序
-- 按工资从高到低排序
SELECT first_name, salary FROM employees ORDER BY salary DESC;
示例2:使用 ROWNUM 分页(Oracle)
-- 查询前5条记录
SELECT * FROM (SELECT first_name, salary, ROWNUM rnumFROM employeesWHERE ROWNUM <= 5
)
WHERE rnum >= 1;
三、数据操作语言(DML)
🔹 1. 插入数据(INSERT)
示例1:插入单条记录
-- 向 employees 表插入一条新记录
INSERT INTO employees (employee_id, first_name, last_name, email, hire_date, job_id, salary, department_id)
VALUES (1001, 'Tom', 'Smith', 'tom.smith@example.com', SYSDATE, 'IT_PROG', 7000, 60);
示例2:插入多条记录(MySQL语法)
-- MySQL支持一次性插入多条记录
INSERT INTO users (name, age) VALUES
('Alice', 25),
('Bob', 30),
('Charlie', 28);
🔹 2. 更新与删除(UPDATE、DELETE)
示例1:更新记录
-- 将员工ID为1001的工资调整为8000
UPDATE employees SET salary = 8000 WHERE employee_id = 1001;
示例2:删除记录
-- 删除员工ID为1001的记录
DELETE FROM employees WHERE employee_id = 1001;
🔹 3. 事务控制(COMMIT、ROLLBACK、SAVEPOINT)
示例1:事务开始与提交
-- 开始事务(自动开启,无需显式BEGIN)
INSERT INTO employees VALUES (1002, 'Lucy', 'Brown', ...);-- 提交事务
COMMIT;
示例2:事务回滚
-- 修改数据
UPDATE employees SET salary = 9000 WHERE employee_id = 1002;-- 回滚到上次提交的状态
ROLLBACK;
示例3:设置保存点(SAVEPOINT)
-- 设置保存点
SAVEPOINT before_update;-- 更新数据
UPDATE employees SET salary = 9000 WHERE employee_id = 1002;-- 回滚到保存点
ROLLBACK TO before_update;
四、总结
通过本文的学习,你应该已经掌握了:
- SQL 的基本分类(DDL、DML、DCL、TCL)
- 如何使用 SELECT 实现各种查询操作(列选择、过滤、排序、分页)
- 如何使用 INSERT、UPDATE、DELETE 进行数据操作
- 如何使用 COMMIT、ROLLBACK、SAVEPOINT 控制事务
- 常见 SQL 工具的使用方式
📚 参考资料
- Oracle 官方文档
- MySQL 官方文档
- 如果你在学习过程中遇到任何疑问,欢迎在评论区留言交流!
- 👍 如果你觉得这篇文章对你有帮助,别忘了点赞、收藏、转发哦!