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关键字查询无重复记录集的方法,希望对您有所帮助。