当前位置:首页 > 行业动态 > 正文

Oracle数据库操作语句实用指南

Oracle数据库操作语句实用指南

I. 基础SQL语句

A. 数据定义语言(DDL)

1、创建表(CREATE TABLE)

创建表是数据库设计的第一步,它定义了存储数据的结构和类型,创建一个员工表可以使用以下语句:

CREATE TABLE employees (
employee_id NUMBER(6),
first_name VARCHAR2(20),
last_name VARCHAR2(25),
email VARCHAR2(25),
phone_number VARCHAR2(20),
hire_date DATE,
job_id VARCHAR2(10),
salary NUMBER(8, 2),
commission_pct NUMBER(2, 2),
manager_id NUMBER(4),
department_id NUMBER(4)
);

在这个例子中,我们定义了一个包含员工基本信息的表,包括员工的ID、姓名、邮箱、电话、雇佣日期、职位、薪资、佣金比例、经理ID和部门ID等字段。

2、修改表结构(ALTER TABLE)

当需要更改表的结构时,可以使用ALTER TABLE语句,如果我们想要为员工表添加一个新的列来存储员工的地址信息,可以使用以下语句:

ALTER TABLE employees
ADD address VARCHAR2(50);

3、删除表(DROP TABLE)

当不再需要一个表时,可以使用DROP TABLE语句将其删除,删除上述创建的员工表,可以使用以下语句:

DROP TABLE employees;

B. 数据操纵语言(DML)

1、插入数据(INSERT INTO)

向表中插入新数据使用INSERT INTO语句,向员工表插入一条新员工记录,可以使用以下语句:

INSERT INTO employees (employee_id, first_name, last_name, email, phone_number, hire_date, job_id, salary, commission_pct, manager_id, department_id)
VALUES (1, 'John', 'Doe', 'john.doe@example.com', '1234567890', TO_DATE('20230101', 'YYYYMMDD'), 'IT_PROG', 5000, NULL, NULL, 10);

这里我们插入了一条员工记录,包括员工的ID、姓名、邮箱、电话、雇佣日期、职位、薪资、佣金比例、经理ID和部门ID等信息。

2、更新数据(UPDATE)

更新表中的数据使用UPDATE语句,更新上述插入的员工记录的薪资信息,可以使用以下语句:

UPDATE employees
SET salary = 5500
WHERE employee_id = 1;

这里我们将员工ID为1的员工薪资更新为5500。

3、删除数据(DELETE)

从表中删除数据使用DELETE语句,删除上述更新的员工记录,可以使用以下语句:

DELETE FROM employees
WHERE employee_id = 1;

这里我们删除了员工ID为1的员工记录。

4、查询数据(SELECT)

查询表中的数据使用SELECT语句,查询所有员工的姓名和薪资信息,可以使用以下语句:

SELECT first_name, last_name, salary
FROM employees;

这里我们选择了员工表中的姓名和薪资字段进行查询,将返回所有员工的这些信息。

II. 高级SQL语句

A. 联合查询(UNION)

联合查询用于合并两个或多个SELECT语句的结果集,如果我们有两个部门的员工表,一个用于销售部门(sales_employees),另一个用于技术部门(tech_employees),我们可以使用UNION来获取所有员工的列表:

SELECT employee_id, first_name, last_name FROM sales_employees
UNION
SELECT employee_id, first_name, last_name FROM tech_employees;

这将返回一个结果集,其中包含两个表中所有员工的ID、名和姓。

B. 子查询(Subqueries)

子查询是指嵌套在其他SQL语句中的查询,它们通常用于WHERE子句中,要找出薪资高于平均薪资的所有员工,可以使用以下带有子查询的SELECT语句:

SELECT * FROM employees
WHERE salary > (SELECT AVG(salary) FROM employees);

在这个例子中,子查询计算了员工表中的平均薪资,而外部查询则选择了所有薪资高于这个平均值的员工记录。

C. 集合操作(如INTERSECT, EXCEPT)

集合操作符如INTERSECT和EXCEPT用于比较两个查询的结果集,INTERSECT返回两个查询共有的记录,而EXCEPT返回第一个查询有但第二个查询没有的记录,要找出同时在销售部门和技术部门工作的员工,可以使用INTERSECT:

SELECT employee_id FROM sales_employees
INTERSECT
SELECT employee_id FROM tech_employees;

相反,如果我们想找出只在销售部门工作而不在技术部门工作的员工,可以使用EXCEPT:

SELECT employee_id FROM sales_employees
EXCEPT
SELECT employee_id FROM tech_employees;

这些高级SQL语句使得能够执行复杂的数据分析和操作,从而满足更多样化的业务需求。

0

随机文章