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 通常分为以下几类:

类别全称功能
DDLData Definition Language创建、修改、删除数据库对象(如表、索引等)
DMLData Manipulation Language插入、更新、删除数据
DCLData Control Language授予权限、回收权限
TCLTransaction Control Language控制事务提交、回滚等
示例:查看当前用户下的所有表(Oracle)
-- 查看当前用户拥有的所有表(Oracle)
SELECT * FROM user_tables;

🔹 2. 常用SQL工具介绍

工具名称支持数据库特点
SQL*PlusOracle命令行工具,轻量级,常用于脚本执行
SQL DeveloperOracle图形化界面,支持调试PL/SQL
PL/SQL DeveloperOracle强大的开发工具,支持代码调试
MySQL WorkbenchMySQL官方图形管理工具
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 rnum
    FROM employees
    WHERE 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 工具的使用方式

📚 参考资料


  • 如果你在学习过程中遇到任何疑问,欢迎在评论区留言交流!
  • 👍 如果你觉得这篇文章对你有帮助,别忘了点赞、收藏、转发哦!
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值