SQL DISTINCT关键字详解

SQL DISTINCT关键字详解

大家好,我是免费搭建查券返利机器人省钱赚佣金就用微赚淘客系统3.0的小编,也是冬天不穿秋裤,天冷也要风度的程序猿!今天我们将深入探讨SQL中的DISTINCT关键字。DISTINCT是SQL语言中用来消除查询结果中重复记录的关键字,它能帮助我们筛选出唯一的数据行,非常有用。让我们一起来详细了解和掌握它的使用。

一、什么是SQL中的DISTINCT关键字?

在SQL中,DISTINCT是一种用于消除SELECT语句查询结果中重复行的关键字。它可以应用于单个列或多个列,确保返回的结果集中每行都是唯一的。当我们需要从表中获取唯一的值或者避免结果中重复的行时,就可以使用DISTINCT关键字。

二、DISTINCT的基本语法

使用DISTINCT非常简单,它通常放置在SELECT语句的列名之前,如下所示:

SELECT DISTINCT column1, column2, ...
FROM table_name;

其中,column1, column2, ... 是要选择唯一值的列名列表,table_name 是要查询的表名。

三、DISTINCT的使用示例

让我们通过一个具体的示例来演示DISTINCT关键字的使用。假设我们有一个学生表students,包含学生的姓名和年龄信息,如下所示:

1. 创建示例表

CREATE TABLE students (
    id INT PRIMARY KEY,
    name VARCHAR(50),
    age INT
);

INSERT INTO students (id, name, age) VALUES
(1, 'Alice', 20),
(2, 'Bob', 22),
(3, 'Alice', 21),
(4, 'Charlie', 23),
(5, 'Bob', 22);

2. 查询所有学生的姓名

如果我们想要获取所有学生的姓名,但不希望重复,可以使用DISTINCT:

SELECT DISTINCT name FROM students;

执行以上SQL语句,将返回一个包含唯一姓名的结果集:

| name    |
|---------|
| Alice   |
| Bob     |
| Charlie |

3. 查询姓名和年龄的组合

如果我们想要获取每个学生的唯一姓名和对应的年龄,可以这样写:

SELECT DISTINCT name, age FROM students;

执行以上SQL语句,将返回一个包含唯一姓名和年龄组合的结果集:

| name    | age |
|---------|-----|
| Alice   | 20  |
| Bob     | 22  |
| Alice   | 21  |
| Charlie | 23  |

在这个例子中,虽然姓名Alice出现了两次,但由于年龄不同,所以每一行都被视为唯一。

四、DISTINCT关键字的注意事项

  1. 适用范围:DISTINCT关键字通常用于SELECT语句中,不能用于DELETE、UPDATE或者INSERT语句中。

  2. 多列应用:可以将DISTINCT应用于多个列,以获取多列组合的唯一值。

  3. 性能考虑:在使用DISTINCT时,数据库需要对查询结果进行排序和比较,可能会对性能产生一定的影响,特别是在大数据量的情况下。

五、Java代码示例

在Java中操作数据库时,我们可以使用JDBC来执行SQL查询,以下是一个简单的Java代码示例,演示如何使用DISTINCT关键字查询数据库中的数据:

package cn.juwatech.distinctexample;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;

public class Main {

    public static void main(String[] args) {
        String url = "jdbc:mysql://localhost:3306/mydatabase";
        String user = "root";
        String password = "password";

        try (Connection conn = DriverManager.getConnection(url, user, password);
             Statement stmt = conn.createStatement()) {

            String sql = "SELECT DISTINCT name, age FROM students";
            ResultSet rs = stmt.executeQuery(sql);

            while (rs.next()) {
                String name = rs.getString("name");
                int age = rs.getInt("age");
                System.out.println("Name: " + name + ", Age: " + age);
            }
        } catch (SQLException e) {
            e.printStackTrace();
        }
    }
}

以上Java代码示例通过JDBC连接数据库,并执行了一个带有DISTINCT关键字的查询,输出了每个学生的姓名和年龄。

六、总结

通过本文的学习,我们详细了解了SQL中DISTINCT关键字的用法和语法。我们探讨了它的基本用法、使用示例以及在Java中如何操作数据库执行DISTINCT查询。DISTINCT关键字在处理需要唯一数据的查询时非常有用,能够帮助我们有效地管理和分析数据。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mfbz.cn/a/755592.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

3.js - 反射率(reflectivity) 、折射率(ior)

没啥太大的感觉 反射率 reflectivity 概念 反射率:指的是,材质表面反射光线的能力反射率,用于控制材质对环境光,或光源的反射程度反射率越高,材质表面反射的光线越多,看起来就越光亮使用 适用于&#xff0…

AIGC实战:LLaMA2打造中文写作利器——数据准备与模型训练全攻略

目录 一、下载并加载中文数据集二、中文数据集处理 1、数据格式 2、数据集处理之tokenizer训练格式 1)先将一篇篇文本拼凑到一起(只是简单的拼凑一起,用于训练tokenizer) 2)将数据集进行合并 3、数据集处理之模型&am…

嵌入式学习——硬件(ARM体系架构)——day51

1. S3C2440基础知识——一条指令四个字节 1.1 定义 S3C2440 是三星(Samsung)公司设计的一款基于 ARM920T 核心的微处理器,广泛应用于嵌入式系统中,属于三星的 S3C24xx 系列。 1.2 处理器核心 ARM920T:基于 ARM v5T …

Shell 脚本编程保姆级教程(下)

七、Shell 流程控制 7.1 if #!/bin/bash num1100 if test $[num1] 100 thenecho num1 是 100 fi 7.2 if else #!/bin/bash num1100 num2100 if test $[num1] -eq $[num2] thenecho 两个数相等! elseecho 两个数不相等! fi 7.3 if else-if else #!/…

Java框架的原理主要基于以下几个核心

本人详解 作者:王文峰,参加过 CSDN 2020年度博客之星,《Java王大师王天师》 公众号:JAVA开发王大师,专注于天道酬勤的 Java 开发问题中国国学、传统文化和代码爱好者的程序人生,期待你的关注和支持!本人外号:神秘小峯 山峯 转载说明:务必注明来源(注明:作者:王文峰…

算法力扣刷题记录 二十三【151.翻转字符串里的单词】

前言 字符串篇,继续。 记录 二十三【151.翻转字符串里的单词】 – 一、题目阅读 给你一个字符串 s ,请你反转字符串中 单词 的顺序。 单词 是由非空格字符组成的字符串。s 中使用至少一个空格将字符串中的 单词 分隔开。 返回 单词 顺序颠倒且 单词…

Type-C接口OTG转接器的应用与发展

随着科技的飞速发展,智能移动设备已成为我们生活中不可或缺的一部分。而在这些设备的连接与数据传输中,Type-C接口以其高效、便捷的特性逐渐占据了主导地位。OTG(On-The-Go)技术则进一步扩展了Type-C接口的功能,使得设…

融资担保行业数字化转型探索与实践

融资担保行业数字化转型探索与实践 随着全球经济的快速发展和科技的不断进步,数字化转型已成为各行各业提升竞争力和实现可持续发展的必然选择。融资担保行业作为金融体系中的重要组成部分,也在积极探索和实践数字化转型,以更好地服务中小微企…

基于Datax开发支持瀚高数据库的插件_插件开发_以及部署---国产瀚高数据库工作笔记006

如果想直接使用,开发好的插件,那么可以去下载笔者上传的,打包好的插件,直接放入到 datax安装目录的./datax/plugin/reader 或者writer中就可以了 https://download.csdn.net/download/lidew521/89495306 https://download.csdn.net/download/lidew521/89495301这两个一个…

多功能引流必备神器!评论区关键词采集!斗音平台引流

大家好我今天带来的这款软件,就像是抖音引流界的“多功能引流神器”,功能全面到让你眼花缭乱,而且操作简便到连你的宠物金鱼都能学会! 下面开看看都有哪些功能​: 高级截流拓客功能:想象一下,你…

性能之巅的巴比达内网穿透访问单位的web管理系统

在这个数字化飞速发展的时代,作为一名IT部门的小主管,我经常面临着一项挑战:如何在外网环境下高效、安全地访问我们单位内部部署的Web管理系统。这不仅仅是关乎我个人的工作效率,更是影响到整个团队能否快速响应市场需求的关键。直…

昇思MindSpore学习笔记1--基本介绍

昇思MindSpore是一个全场景深度学习框架。 一、框架组成 1. 模型库ModelZoo 提供深度学习算法网络。 2. 扩展库MindSpore Extend 拓展领域场景,如GNN/深度概率编程/强化学习等。 3. 科学计算MindSpore Science 科学计算套件。 包含数据集、基础模型、预置高精度模…

抖音微短剧小程序源码搭建:实现巨量广告数据高效回传

在数字化营销日益盛行的今天,抖音微短剧小程序已成为品牌与观众互动的新渠道。这些短小精悍的剧目不仅能迅速抓住用户的注意力,还能有效提升品牌的知名度和用户黏性。然而,想要充分利用这一营销工具,关键在于如何高效地追踪广告数…

力扣 移除元素

class Solution {public int removeElement(int[] nums, int val) {int left 0;for(int right 0;right<nums.length;right){if(nums[right] ! val){nums[left] nums[right];left;}}return left;} }

实验八 T_SQL编程

题目 以电子商务系统数据库ecommerce为例 1、在ecommerce数据库&#xff0c;针对会员表member首先创建一个“呼和浩特地区”会员的视图view_hohhot&#xff0c;然后通过该视图查询来自“呼和浩特”地区的会员信息&#xff0c;用批处理命令语句将问题进行分割&#xff0c;并分…

[leetcode]insert-into-a-binary-search-tree

. - 力扣&#xff08;LeetCode&#xff09; class Solution { public:TreeNode* insertIntoBST(TreeNode* root, int val) {if (root nullptr) {return new TreeNode(val);}TreeNode* pos root;while (pos ! nullptr) {if (val < pos->val) {if (pos->left nullptr…

文章解读与仿真程序复现思路——电网技术EI\CSCD\北大核心《基于改进目标级联分析法的交直流混联系统发电-备用分布式协同调度》

本专栏栏目提供文章与程序复现思路&#xff0c;具体已有的论文与论文源程序可翻阅本博主免费的专栏栏目《论文与完整程序》 论文与完整源程序_电网论文源程序的博客-CSDN博客https://blog.csdn.net/liang674027206/category_12531414.html 电网论文源程序-CSDN博客电网论文源…

Python 提取图片主色调

Python 提取图片主色调 效果代码编写 效果 有个要提取图片主色调的需求&#xff0c;记录一下。 代码编写 import numpy as np import cv2 from sklearn.cluster import KMeans from skimage.color import rgb2lab, deltaE_cie76 from collections import Counter# 创建默认…

OpenAI禁止中国使用API,国内大模型市场何去何从

GPT-5 一年半后发布&#xff1f;对此你有何期待&#xff1f; 前言 前言&#xff1a; 近日&#xff0c;OpenAI宣布禁止中国用户使用其API&#xff0c;这一决策引起了国内大模型市场的广泛关注。面对这一挑战&#xff0c;国内大模型市场的发展路径和前景成为业界热议的焦点。本…

收银系统源码-千呼新零售【分销商城】

千呼新零售2.0系统是零售行业连锁店一体化收银系统&#xff0c;包括线下收银线上商城连锁店管理ERP管理商品管理供应商管理会员营销等功能为一体&#xff0c;线上线下数据全部打通。 适用于商超、便利店、水果、生鲜、母婴、服装、零食、百货、宠物等连锁店使用。 详细介绍请…