DQL语句的用法(MySQL)

news2024/11/15 21:44:29

文章目录

  • 前言
  • 一、DQL语句间接和语法
    • 1、DQL简介
    • 2、DQL语法
  • 二、DQL语句使用
    • 1、基础查询
      • (1)查询多个字段
      • (2)为字段设置别名
      • (3)去除重复记录
  • 总结


前言

本文主要介绍SQL语句中DQL语句的功能和使用方法,其中包括DQL语句的语法,基础、条件、分组查询等多种方式以及一些聚合函数的用法。
Ps:本文介绍时将使用数据库管理客户端软件Datagrip进行操作,不会使用的同学也没有关系,使用该软件只是为了方便展示


一、DQL语句间接和语法

1、DQL简介

DQL是一种数据查询语言,用来查询数据库中表的记录。在一个正常的业务系统中,查询操作的频次是要远高于增删查改。

2、DQL语法

select
	字段列表
from
	表名列表
where
	条件列表
group by
	分组字段列表
having
	分组后条件列表
order by
	排序字段列表
limit
	分页参数

在本文进行介绍时,会将上方完整的语法拆分为以下几个部分进行介绍:

  • 基本查询(不带任何条件)
  • 条件查询(where)
  • 聚合函数(count、min、max…)
  • 分组查询(group by)
  • 排序查询(order by)
  • 分页查询(limit)

二、DQL语句使用

在介绍之前,我们需要生成一个表如下图所示:
在这里插入图片描述

创建该表的sql语句如下,大家可以拿去创建一个与博主相同的表,方便大家实操。

# 创建一个名为test的数据库
create schema test;
#在test数据库下创建一个名为
use test
#创建一个名为emp的表
create table emp(
    id int comment '编号',
    workno varchar(10) comment '工号',
    name varchar(10) comment '姓名',
    gender char(1) comment '性别',
    age tinyint unsigned comment '年龄',
    idcard char(18) comment '身份证号',
    workaddress varchar(50) comment '工作地址',
    entrydate date comment '入职时间'
)comment '员工表';

#向表中插入一些数据
INSERT INTO emp (id, workno, name, gender, age, idcard, workaddress, entrydate)
VALUES (1, '00001', '柳岩666', '女', 20, '123456789012345678', '北京', '2000-01-01');

INSERT INTO emp (id, workno, name, gender, age, idcard, workaddress, entrydate)
VALUES (2, '00002', '张无忌', '男', 18, '123456789012345670', '北京', '2005-09-01');

INSERT INTO emp (id, workno, name, gender, age, idcard, workaddress, entrydate)
VALUES (3, '00003', '韦一笑', '男', 38, '123456789712345670', '上海', '2005-08-01');

INSERT INTO emp (id, workno, name, gender, age, idcard, workaddress, entrydate)
VALUES (4, '00004', '赵敏', '女', 18, '123456757123845670', '北京', '2009-12-01');

INSERT INTO emp (id, workno, name, gender, age, idcard, workaddress, entrydate)
VALUES (5, '00005', '小昭', '女', 16, '123456769012345678', '上海', '2007-07-01');

INSERT INTO emp (id, workno, name, gender, age, idcard, workaddress, entrydate)
VALUES (6, '00006', '杨逍', '男', 28, '12345678931234567X', '北京', '2006-01-01');

INSERT INTO emp (id, workno, name, gender, age, idcard, workaddress, entrydate)
VALUES (7, '00007', '范瑶', '男', 40, '123456789212345670', '北京', '2005-05-01');

INSERT INTO emp (id, workno, name, gender, age, idcard, workaddress, entrydate)
VALUES (8, '00008', '黛绮丝', '女', 38, '123456157123645670', '天津', '2015-05-01');

INSERT INTO emp (id, workno, name, gender, age, idcard, workaddress, entrydate)
VALUES (9, '00009', '范凉凉', '女', 45, '123156789012345678', '北京', '2010-04-01');

INSERT INTO emp (id, workno, name, gender, age, idcard, workaddress, entrydate)
VALUES (10, '00010', '陈友谅', '男', 53, '123456789012345670', '上海', '2011-01-01');

INSERT INTO emp (id, workno, name, gender, age, idcard, workaddress, entrydate)
VALUES (11, '00011', '张士诚', '男', 55, '123567897123465670', '江苏', '2015-05-01');

INSERT INTO emp (id, workno, name, gender, age, idcard, workaddress, entrydate)
VALUES (12, '00012', '常遇春', '男', 32, '123446757152345670', '北京', '2004-02-01');

INSERT INTO emp (id, workno, name, gender, age, idcard, workaddress, entrydate)
VALUES (13, '00013', '张三丰', '男', 88, '123656789012345678', '江苏', '2020-11-01');

INSERT INTO emp (id, workno, name, gender, age, idcard, workaddress, entrydate)
VALUES (14, '00014', '灭绝', '女', 65, '123456719012345670', '西安', '2019-05-01');

INSERT INTO emp (id, workno, name, gender, age, idcard, workaddress, entrydate)
VALUES (15, '00015', '胡青牛', '男', 70, '12345674971234567X', '西安', '2018-04-01');

INSERT INTO emp (id, workno, name, gender, age, idcard, workaddress, entrydate)
VALUES (16, '00016', '周芷若', '女', 18, null, '北京', '2012-06-01');

1、基础查询

(1)查询多个字段

select 字段1,字段2,字段3... from 表名;

如我们查询指定字段name,workno,age并返回:

在这里插入图片描述
如果我们想要查询该表的所有信息,我们还可以使用以下代码:

select id, workno, name, gender, age, idcard, workaddress, entrydate from emp;

除此之外还可以使用 * 来代替所有字段名(其中 * 号代表查询所有字段):

select * from emp;

(2)为字段设置别名

select 字段1 [as 别名1],字段2 [as 别名2]... from 表名;

比如我们再次查询字段name,workno,age并给它们起别名为姓名,工号,年龄:

select name as 姓名,workno as 工号,age as 年龄 from emp;

可以发现这里字段显示的名称与上图的英文名称有所不同,显示出的是它的别名。
在这里插入图片描述

(3)去除重复记录

select distinct 字段列表 from 表名;

如我们要查询所有员工的工作地址有哪些,但不要重复:

select distinct workaddress from emp;

在这里插入图片描述
后文还在更新中…


总结

本文主要介绍DQL语句的使用方法,希望能对您有所帮助。

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【Go 基础篇】Go语言中的数组:初识与应用

Go语言以其简洁、高效和强大的特性在编程界广受欢迎。数组作为一种基本的数据结构,在各种应用场景中扮演着重要角色。本文将引入Go语言中的数组,介绍其特点、创建、初始化以及基本应用,为你打开数组的大门。 前言 数组是一种固定大小的数据…

【LeetCode75】第三十八题 二叉树的最近公共祖先

目录 题目: 示例: 分析: 代码: 题目: 示例: 分析: 给我们一棵二叉树,然后给我们pq两个节点,让我们找出二叉树中它们俩的最近的公共祖先。 那么什么样的节点是它们俩…

Linux常用命令——df命令

在线Linux命令查询工具 df 显示磁盘的相关信息 补充说明 df命令用于显示磁盘分区上的可使用的磁盘空间。默认显示单位为KB。可以利用该命令来获取硬盘被占用了多少空间,目前还剩下多少空间等信息。 语法 df(选项)(参数)选项 -a或--all:包含全部的…

C#,《小白学程序》第六课:队列(Queue)的应用————《实时叫号系统》

1 文本格式 /// <summary> /// 下面定义一个新的队列&#xff0c;用于演示《实时叫号系统》 /// </summary> Queue<Classmate> q2 new Queue<Classmate>(); /// <summary> /// 《小白学程序》第六课&#xff1a;队列&#xff08;Queue&#xf…

用Python画出极坐标的基向量

文章目录 极坐标基向量的推导可视化 极坐标基向量的推导 极坐标其实很神奇&#xff0c;一方面&#xff0c;它描述的是平直时空&#xff0c;另一方面&#xff0c;任意两点间的坐标差为 d r , d θ \text dr, \text d\theta dr,dθ时&#xff0c;两点间的距离却是不固定的。极坐…

wxpython + cef 是优秀的 WebView 组件

CEF 即 (Chromium Embedded Framework)&#xff1b;cef 是优秀的 WebView 组件。 pip install wxpython4.2 wxPython-4.2.0-cp37-cp37m-win_amd64.whl (18.0 MB) Successfully installed wxpython-4.2.0 pip install cefpython3 cefpython3-66.1-py2.py3-none-win_amd64.whl …

springboot+vue基于 JAVA 的医院门诊信息管理系统的设计与实现 f1ls0

系统根据现有的管理模块进行开发和扩展&#xff0c;采用面向对象的开发的思想和结构化的开发方法对医院门诊信息的现状进行系统调查。采用结构化的分析设计&#xff0c;该方法要求结合一定的图表&#xff0c;在模块化的基础上进行系统的开发工作。在设计中采用“自下而上”的思…

多线程和并发(1)—等待/通知模型

一、进程通信和进程同步 1.进程通信的方法 同一台计算机的进程通信称为IPC&#xff08;Inter-process communication&#xff09;&#xff0c;不同计 算机之间的进程通信被称为 RPC(Romote process communication)&#xff0c;需要通过网络&#xff0c;并遵守共同的协议。**进…

每日三题 1448统计二叉树中好节点的个数 100相同的树 101对称二叉树

1448 题目 给你一棵根为 root 的二叉树&#xff0c;请你返回二叉树中好节点的数目。 「好节点」X 定义为&#xff1a;从根到该节点 X 所经过的节点中&#xff0c;没有任何节点的值大于 X 的值。 示例 1&#xff1a; 输入&#xff1a;root [3,1,4,3,null,1,5] 输出&#xff…

2021-05-25 rs485保护电路

今天给大家分享485接口的EMC设计&#xff0c;希望对电路设计&#xff0c;及相关软件开发的人员有帮助。 一、原理图 1. RS485接口6KV防雷电路设计方案 &#xff08;RS485接口防雷电路&#xff09; 接口电路设计概述&#xff1a; RS485用于设备与计算机或其它设备之间通讯&…

攻防世界-Web_php_unserialize

原题 解题思路 注释说了flag存在f14g.php中&#xff0c;但是在wakeup函数中&#xff0c;会把传入的文件名变成index.php。看wp知道&#xff0c;如果被反序列话的字符串其中对应的对象的属性个数发生变化时&#xff0c;会导致反序列化失败而同时使得__wakeup 失效&#xff08;CV…

Qt/C++编写视频监控系统80-远程回放视频流

一、前言 远程回放NVR或者服务器上的视频文件&#xff0c;一般有三种方式&#xff0c;第一种是调用厂家的SDK&#xff0c;这个功能最全&#xff0c;但是缺点明显就是每个厂家的设备都有自己的SDK&#xff0c;只兼容自家的设备&#xff0c;如果你的软件需要接入多个厂家的&…

STM32新手入门-什么是寄存器

✅作者简介&#xff1a;嵌入式入坑者&#xff0c;与大家一起加油&#xff0c;希望文章能够帮助各位&#xff01;&#xff01;&#xff01;&#xff01; &#x1f4c3;个人主页&#xff1a;rivencode的个人主页 &#x1f525;系列专栏&#xff1a;玩转STM32 &#x1f4ac;保持学…

小程序外包开发上线的问题解决

在小程序上线过程中&#xff0c;可能会遇到各种问题。解决问题的关键是保持沟通、持续改进和测试。小程序的上线后维护同样重要&#xff0c;要不断关注用户反馈和市场变化&#xff0c;及时做出调整和优化。以下是一些常见问题及其可能的解决方案&#xff0c;希望对大家有所帮助…

FL水果21.1全新版本下载FL Studio新增功能讲解

FL Studio就是国人众所熟知的水果编曲软件&#xff0c;圈内用户习惯叫它“水果”。它是一个全能音乐制作环境和数字音频工作站&#xff08;DAW&#xff09;。FL Studio可以进行编曲、剪辑、录音、混音&#xff0c;让你的电脑变成全功能录音室&#xff0c;帮助你制作出属于自己的…

各地区结婚、离婚、再婚等数据(1990-2021年)

涵盖了1990年至2021年各地区的结婚、离婚以及再婚情况。通过对此数据进行分析&#xff0c;我们可以了解婚姻趋势的演变和地区之间的差异。数据反映了人们的婚姻决策、家庭变化以及社会动态&#xff0c;为研究家庭结构和社会变迁提供了有价值的信息。 一、数据介绍 数据名称&a…

基于树莓派的智能小车 python

摘要 playWithRaspberryPi 实战笔记 raspberrypi_cookbook 树莓派python代码本 树莓派(Raspberry Pi)是一种小型的单片机计算机&#xff1b; 它可以通过其引脚和接口与外部硬件通信。 Pi(树莓派的简称)展示了我们可以如何分解大型的Realbox机器&#xff0c; 使Dynamicland成…

如何在windows下使用masm和link对汇编文件进行编译

前言 32位系统带有debug程序&#xff0c;可以进行汇编语言和exe的调试。但真正的汇编编程是“编辑汇编程序文件(.asm)->编译生成obj文件->链接生成exe文件”。下面&#xff0c;我就来说一下如何在windows下使用masm调试&#xff0c;使用link链接。 1、下载相应软件 下载…

Linux系统编程系列之进程间通信(IPC)-管道

一、什么是管道 在Linux系统下&#xff0c;一切皆文件&#xff0c;所以管道就是一个文件&#xff0c;用来实现进程间通信的一种方式。分析小技巧&#xff1a;对于一些陌生的概念&#xff0c;都把它当成是文件&#xff0c;然后操作的时候&#xff0c;就是三部曲。文件打开&#…

香港服务器是什么?

香港服务器是指位于香港地区的云服务器或物理服务器。香港作为一个重要的国际金融和商业中心&#xff0c;具有良好的地理位置和先进的网络基础设施。香港服务器提供稳定的网络连接和高性能&#xff0c;可用于托管网站、应用程序和数据存储等各种互联网服务。 香港服务器具有以…