Oracle查询无重复记录集(oracle 不重复查询)

Oracle查询无重复记录集

在数据库管理中,我们常常需要查询无重复记录集,这可以借助Oracle数据库中的DISTINCT关键字实现。DISTINCT关键字用于去除查询结果中的重复记录,让结果集中只保留一条记录。

下面通过示例演示如何使用DISTINCT关键字查询无重复记录集。

我们创建一个测试表t_student,表中包含了学生的基本信息,包括学号、姓名、性别、年龄、所在院系等。

CREATE TABLE t_student (

sid NUMBER(4) PRIMARY KEY, — 学生编号

name VARCHAR2(20) NOT NULL, — 学生姓名

sex VARCHAR2(6), — 学生性别

age NUMBER(2), — 学生年龄

department VARCHAR2(50) — 所在院系

);

插入测试数据:

INSERT INTO t_student VALUES (1, ‘张三’, ‘男’, 18, ‘计算机系’);

INSERT INTO t_student VALUES (2, ‘李四’, ‘男’, 19, ‘化学系’);

INSERT INTO t_student VALUES (3, ‘王五’, ‘女’, 20, ‘历史系’);

INSERT INTO t_student VALUES (4, ‘赵六’, ‘男’, 21, ‘数学系’);

INSERT INTO t_student VALUES (5, ‘小红’, ‘女’, 18, ‘计算机系’);

INSERT INTO t_student VALUES (6, ‘小明’, ‘男’, 19, ‘数学系’);

INSERT INTO t_student VALUES (7, ‘小华’, ‘女’, 20, ‘历史系’);

INSERT INTO t_student VALUES (8, ‘小兰’, ‘女’, 21, ‘化学系’);

查询所有学生记录:

SELECT * FROM t_student;

结果如下:

SID NAME SEX AGE DEPARTMENT

— ——– —– — ————–

1 张三 男 18 计算机系

2 李四 男 19 化学系

3 王五 女 20 历史系

4 赵六 男 21 数学系

5 小红 女 18 计算机系

6 小明 男 19 数学系

7 小华 女 20 历史系

8 小兰 女 21 化学系

假设我们需要查询所有的院系名称,可以使用以下SQL语句:

SELECT DISTINCT department FROM t_student;

注意,我们只查询了department列,使用DISTINCT关键字去除了重复的记录。结果如下:

DEPARTMENT

———————

计算机系

化学系

历史系

数学系

除了使用DISTINCT关键字,还可以使用GROUP BY子句实现无重复记录集的查询。例如,我们可以按照所在院系分组,计算每个院系的学生人数:

SELECT department, COUNT(*) FROM t_student GROUP BY department;

结果如下:

DEPARTMENT COUNT(*)

———— ——-

化学系 2

历史系 2

计算机系 2

数学系 2

以上就是Oracle数据库中使用DISTINCT关键字查询无重复记录集的方法,希望对您有所帮助。


数据运维技术 » Oracle查询无重复记录集(oracle 不重复查询)