Oracle数据库基本SQL语句

class Oracle,SQL

SQL(结构化查询语言)是与关系数据库交互的标准语言。在Oracle数据库中,掌握基本的SQL语句是至关重要的。本文将详细介绍Oracle数据库中的基本SQL语句,包括数据查询(SELECT)和数据操作(INSERT、UPDATE、DELETE),以及WHERE、ORDER BY、GROUP BY、HAVING的使用,最后还会探讨常用函数,如聚合函数、字符串函数和日期函数。

一、基本SQL语句

1. 数据查询(SELECT)

SELECT语句用于从数据库中查询数据。基本语法如下:

SELECT column1, column2, ...
FROM table_name;

示例

-- 查询所有员工的姓名和薪水
SELECT first_name, last_name, salary
FROM employees;

2. 数据操作

a. 插入数据(INSERT)

INSERT语句用于向表中添加新记录。基本语法如下:

INSERT INTO table_name (column1, column2, ...)
VALUES (value1, value2, ...);
示例
-- 向employees表插入新员工记录
INSERT INTO employees (employee_id, first_name, last_name, hire_date, salary)
VALUES (101, 'Jane', 'Doe', TO_DATE('2024-01-15', 'YYYY-MM-DD'), 75000);

b. 更新数据(UPDATE)

UPDATE语句用于修改表中已存在的记录。基本语法如下:

UPDATE table_name
SET column1 = value1, column2 = value2, ...
WHERE condition;
示例
-- 更新员工的薪水
UPDATE employees
SET salary = 80000
WHERE employee_id = 101;

c. 删除数据(DELETE)

DELETE语句用于删除表中的记录。基本语法如下:

DELETE FROM table_name
WHERE condition;
示例
-- 删除一名员工记录
DELETE FROM employees
WHERE employee_id = 101;

二、使用WHERE、ORDER BY、GROUP BY和HAVING

1. WHERE子句

WHERE子句用于过滤查询结果。基本语法如下:

SELECT column1, column2, ...
FROM table_name
WHERE condition;

示例

-- 查询薪水大于60000的员工
SELECT first_name, last_name, salary
FROM employees
WHERE salary > 60000;

2. ORDER BY子句

ORDER BY子句用于对查询结果进行排序。基本语法如下:

SELECT column1, column2, ...
FROM table_name
ORDER BY column1 [ASC|DESC];

示例

-- 按薪水升序排列员工
SELECT first_name, last_name, salary
FROM employees
ORDER BY salary ASC;

3. GROUP BY子句

GROUP BY子句用于将查询结果按指定列进行分组,常与聚合函数一起使用。基本语法如下:

SELECT column1, AGG_FUNC(column2)
FROM table_name
GROUP BY column1;

示例

-- 按部门分组,并计算每个部门的平均薪水
SELECT department_id, AVG(salary) AS avg_salary
FROM employees
GROUP BY department_id;

4. HAVING子句

HAVING子句用于过滤分组后的结果。它通常与GROUP BY一起使用。基本语法如下:

SELECT column1, AGG_FUNC(column2)
FROM table_name
GROUP BY column1
HAVING condition;

示例

-- 查询平均薪水大于70000的部门
SELECT department_id, AVG(salary) AS avg_salary
FROM employees
GROUP BY department_id
HAVING AVG(salary) > 70000;

三、常用函数

1. 聚合函数

聚合函数用于对数据集进行汇总计算。常见的聚合函数包括:

  • AVG():计算平均值
  • SUM():计算总和
  • COUNT():计算记录数
  • MAX():获取最大值
  • MIN():获取最小值

示例

-- 查询员工总数
SELECT COUNT(*) AS total_employees FROM employees;

-- 查询最高薪水
SELECT MAX(salary) AS max_salary FROM employees;

-- 查询所有员工薪水的总和
SELECT SUM(salary) AS total_salary FROM employees;

2. 字符串函数

字符串函数用于对字符串数据进行操作。常见的字符串函数包括:

  • CONCAT():连接字符串
  • SUBSTR():提取子字符串
  • UPPER():将字符串转换为大写
  • LOWER():将字符串转换为小写

示例

-- 连接姓和名
SELECT CONCAT(first_name, ' ', last_name) AS full_name
FROM employees;

-- 提取员工姓名的前两个字符
SELECT SUBSTR(first_name, 1, 2) AS short_name
FROM employees;

-- 将员工姓名转换为大写
SELECT UPPER(first_name) AS upper_first_name
FROM employees;

3. 日期函数

日期函数用于对日期数据进行操作。常见的日期函数包括:

  • SYSDATE:获取当前日期和时间
  • ADD_MONTHS():将指定的月份添加到日期中
  • MONTHS_BETWEEN():计算两个日期之间的月份差
  • TRUNC():截断日期到指定的部分(如日、月、年)

示例

-- 获取当前日期
SELECT SYSDATE FROM dual;

-- 将当前日期加3个月
SELECT ADD_MONTHS(SYSDATE, 3) AS new_date FROM dual;

-- 计算两个日期之间的月份差
SELECT MONTHS_BETWEEN(TO_DATE('2024-01-01', 'YYYY-MM-DD'), TO_DATE('2023-01-01', 'YYYY-MM-DD')) AS months_diff FROM dual;

-- 截断当前日期到月
SELECT TRUNC(SYSDATE, 'MM') AS first_day_of_month FROM dual;

四、总结

本文详细介绍了Oracle数据库中的基本SQL语句,包括数据查询与操作、WHERE、ORDER BY、GROUP BY、HAVING的使用,以及常用的聚合函数、字符串函数和日期函数。掌握这些知识将为你在使用Oracle数据库时提供强大的支持和便利。

如果你有任何问题或者需要进一步探讨的内容,请随时联系我!希望这篇博客对你有所帮助!

评论区
评论列表
menu