当前位置: 首页 > news >正文

数据库 SQL 常用语句全解析

数据库 SQL 常用语句全解析

在数据库领域,SQL(Structured Query Language)作为标准语言,掌控着数据的查询、插入、更新与删除等关键操作。无论是新手入门数据库,还是经验丰富的开发者日常工作,熟练掌握 SQL 常用语句都至关重要。今天,咱们就来深入探究一番这些常用语句的奥秘。

一、查询语句(SELECT)

查询语句无疑是 SQL 中最常用的部分,它能像精准的探测器,从海量数据中捞出我们所需的信息。基本语法如下:

SELECT 列名 1, 列名 2, …
FROM 表名
WHERE 条件;

例如,我们有一张名为 “students” 的表,包含 “id”“name”“age”“gender” 等列,想要查询所有年龄大于 18 岁学生的姓名与年龄,语句就可写成:

SELECT name, age
FROM students
WHERE age > 18;

这里,“SELECT” 指定要返回的列,“FROM” 指明数据源表,“WHERE” 则设置筛选条件,将不符合年龄要求的数据排除在外。

要是想查询所有列的数据,可用 “*” 通配符替代具体列名,像这样:

SELECT *
FROM students;

但在实际应用中,为提升性能,建议明确写出所需列名,避免不必要的数据传输。

二、插入语句(INSERT INTO)

当有新数据需要录入数据库时,“INSERT INTO” 语句就派上用场了。语法如下:

INSERT INTO 表名 (列名 1, 列名 2, …)
VALUES (值 1, 值 2, …);

假设要往 “students” 表中插入一条新学生记录,包含 “id” 为 1001,“name” 为 “小明”,“age” 为 20,“gender” 为 “男”,语句如下:

INSERT INTO students (id, name, age, gender)
VALUES (1001, '小明', 20, '男');

需注意,插入值的数据类型要与对应列的数据类型兼容,否则会报错。另外,若表中某些列允许为空(NULL),且插入时不想指定值,可省略对应列名与值,但括号内列名顺序要与 “VALUES” 中的值顺序严格对应。

三、更新语句(UPDATE)

随着业务发展,数据变更不可避免,“UPDATE” 语句助我们修改已有数据。基本形式:

UPDATE 表名
SET 列名 1 = 值 1, 列名 2 = 值 2, …
WHERE 条件;

例如,发现学生 “小明” 的年龄登记有误,实际应为 21 岁,可这样更正:

UPDATE students
SET age = 21
WHERE name = '小明';

这里的 “WHERE” 条件极为关键,若缺失,将导致整个表中 “age” 列的值全部被更新为 21,酿成大祸,所以使用时务必慎之又慎,精准定位到要修改的记录。

四、删除语句(DELETE FROM)

当某些数据不再有价值,需要清理时,“DELETE FROM” 登场。语法:

DELETE FROM 表名
WHERE 条件;

比如,要删除 “students” 表中 “id” 为 1002 的学生记录,语句为:

DELETE FROM students
WHERE id = 1002;

如同 “UPDATE” 语句,没有 “WHERE” 条件会清空整张表,数据一旦删除,恢复难度极大,操作前一定要再三确认。

五、排序语句(ORDER BY)

查询结果默认按插入顺序呈现,若期望按特定字段排序,“ORDER BY” 可大展身手。语法:

SELECT 列名 1, 列名 2, …
FROM 表名
ORDER BY 列名 1 [ASC|DESC], 列名 2 [ASC|DESC], …;

“ASC” 表示升序(默认),“DESC” 为降序。若要按学生年龄升序查询所有学生信息:

SELECT *
FROM students
ORDER BY age ASC;

还能依据多个列排序,如先按性别升序,性别相同再按年龄降序:

SELECT *
FROM students
ORDER BY gender ASC, age DESC;

六、聚合函数

SQL 提供强大聚合函数,能对数据进行统计分析。常见的有:

  • COUNT():统计记录数量。例如查询 “students” 表中学生总数:
SELECT COUNT(*)
FROM students;
  • SUM():求某列数值总和。若 “students” 表有 “score” 列,求所有学生成绩总和:
SELECT SUM(score)
FROM students;
  • AVG():计算某列平均值,如求平均成绩:
SELECT AVG(score)
FROM students;
  • MAX()MIN():分别获取某列最大值与最小值,像找出最高成绩:
SELECT MAX(score)
FROM students;

使用聚合函数时,常搭配 “GROUP BY” 按特定列分组统计。如按性别分组统计学生人数:

SELECT gender, COUNT(*)
FROM students
GROUP BY gender;

掌握这些数据库 SQL 常用语句,只是踏入数据库管理世界的第一步。实际项目中,数据关系复杂多样,还需深入学习连接查询、子查询等进阶知识。持续实践、不断探索,方能在数据库领域游刃有余,高效处理海量数据,为应用开发筑牢根基。希望这篇文章能助力各位小伙伴开启顺畅的 SQL 学习之旅,如有疑问,欢迎留言交流!

相关文章:

数据库 SQL 常用语句全解析

数据库 SQL 常用语句全解析 在数据库领域,SQL(Structured Query Language)作为标准语言,掌控着数据的查询、插入、更新与删除等关键操作。无论是新手入门数据库,还是经验丰富的开发者日常工作,熟练掌握 SQ…...

SQLite 命令

关于《SQLite 命令》的文章,我可以为您概述一些关键点。SQLite是一个轻量级的数据库管理系统,它被广泛用于各种应用程序中。SQLite命令主要分为两类:一类是SQL命令,另一类是SQLite特定的点命令。 SQL命令:这些命令用于…...

本地如何启动casdoor

1、下载代码 GitHub - casdoor/casdoor at v1.777.0 下载对应tag的代码,我这里选择的时v1.777.0版本 通过网盘分享的文件:casdoor-1.777.0.zip 链接: https://pan.baidu.com/s/1fPNqyJYeyfZnem_LtEc0hw 提取码: avpd 2、启动后端 1、使用goland编译…...

目标检测-R-CNN

R-CNN在2014年被提出,算法流程可以概括如下: 候选区域生成:利用选择性搜索(selective search)方法找出图片中可能存在目标的候选区域(region proposal) CNN网络提取特征:对候选区域进行特征提取(可以使用AlexNet、VGG等网络) 目…...

【持续更新】Github实用命令

Intro 最近高强度使用github,遂小计于此作为备忘。 Basic github是一个代码管理软件,能够track文件变动并且管理版本,是当代coding必不可少的工具。当你安装好github在本地以后,你可以通过以下命令初始化当前文件夹&#xff08…...

docker 容器的基本使用

docker 容器 一、docker是什么? 软件的打包技术,就是将算乱的多个文件打包为一个整体,打包技术在没有docker容器之前,一直是有这种需求的,比如上节课我把我安装的虚拟机给你们打包了,前面的这种打包方式是…...

css让按钮放在最右侧

要将 el-button 按钮放在最右侧,可以使用多种方法,具体取决于使用的布局方式和样式库。以下是几种常见的解决方案: 方法 1:使用 CSS Flexbox Flexbox 是一种非常灵活的布局方式,可以轻松实现水平或垂直对齐。你可以将…...

8K+Red+Raw+ProRes422分享5个影视级视频素材网站

Hello,大家好,我是后期圈! 在视频创作中,电影级的视频素材能够为作品增添专业质感,让画面更具冲击力。无论是广告、电影短片,还是品牌宣传,高质量的视频素材都是不可或缺的资源。然而&#xff…...

Linux网络——UDP的运用

Linux网络——UDP的运用 文章目录 Linux网络——UDP的运用一、引入二、服务端实现2.1 创建socket套接字2.2 指定网络接口并bind2.3 接收数据并处理2.4 整体代码2.5 IP的绑定的细节 三、用户端实现3.1 创建套接字3.2 指定网络接口3.3 发生数据并接收3.4 绑定问题 四、代码五、UD…...

项目亮点案例

其实对我来说是日常操作,但是如果在面试的时候面试者能把日常的事情总结好发出来,其实足矣。 想让别人认同项目,选取的示例需要包含以下要素: 亮点项目四要素:明确的目标,问题点,解决方法和结果…...

Retrofit源码分析:动态代理获取Api接口实例,解析注解生成request,线程切换

目录 一,Retrofit的基本使用 1.定义api接口 2.创建Retrofit实例 3.获取api接口实例发起请求 二,静态代理和动态代理 1,静态代理 2,动态代理 三,动态代理获取Api接口实例 四,解析接口方法注解&…...

范德蒙矩阵(Vandermonde 矩阵)简介:意义、用途及编程应用

参考: Introduction to Applied Linear Algebra – Vectors, Matrices, and Least Squares Stephen Boyd and Lieven Vandenberghe 书的网站: https://web.stanford.edu/~boyd/vmls/ Vandermonde 矩阵简介:意义、用途及编程应用 在数学和计算科学中&a…...

【中标麒麟服务器操作系统实例分享】java应用DNS解析异常分析及处理

了解更多银河麒麟操作系统全新产品,请点击访问 麒麟软件产品专区:https://product.kylinos.cn 开发者专区:https://developer.kylinos.cn 文档中心:https://document.kylinos.cn 情况描述 中标麒麟服务器操作系统V7运行在 ARM…...

网安瞭望台第17期:Rockstar 2FA 故障催生 FlowerStorm 钓鱼即服务扩张现象剖析

国内外要闻 Rockstar 2FA 故障催生 FlowerStorm 钓鱼即服务扩张现象剖析 在网络安全的复杂战场中,近期出现了一个值得关注的动态:名为 Rockstar 2FA 的钓鱼即服务(PhaaS)工具包遭遇变故,意外推动了另一个新生服务 Flo…...

玩转OCR | 探索腾讯云智能结构化识别新境界

📝个人主页🌹:Eternity._ 🌹🌹期待您的关注 🌹🌹 ❀ 玩转OCR 腾讯云智能结构化识别产品介绍服务应用产品特征行业案例总结 腾讯云智能结构化识别 腾讯云智能结构化OCR产品分为基础版与高级版&am…...

idea2024创建JavaWeb项目以及配置Tomcat详解

今天呢,博主的学习进度也是步入了JavaWeb,目前正在逐步杨帆旗航,迎接全新的狂潮海浪。 那么接下来就给大家出一期有关JavaWeb的配置教学,希望能对大家有所帮助,也特别欢迎大家指点不足之处,小生很乐意接受正…...

外连接转AntiJoin的应用场景与限制条件 | OceanBase SQL 查询改写系列

在《SQL 改写系列:外连接转内连接的常见场景与错误》一文中,我们了解到谓词条件可以过滤掉连接结果中的 null 情形的,将外连接转化为内连接的做法是可行的,正如图1中路径(a)所示。此时,敏锐的你或许会进一步思考&#…...

华为实训课笔记 2024 1223-1224

华为实训 12/2312/24 12/23 [Huawei]stp enable --开启STP display stp brief --查询STP MSTID Port Role STP State Protection 实例ID 端口 端口角色 端口状态 是否开启保护[Huawei]display stp vlan xxxx --查询制定vlan的生成树计算结…...

MySQL超详细安装配置教程(亲测有效)

目录 1.下载mysql 2.环境配置 3.安装mysql ​4.navicat工具下载与连接 ​5总结 1.下载mysql mysql下载--MySQL :: 下载 MySQL 社区服务器 下载的时候这里直接逃过就行 我这里的版本是最新的mysql8.0.37 下载完成之后,将压缩包进行解压 这里我建议大…...

MySQL 8.0:explain analyze 分析 SQL 执行过程

介绍 MySQL 8.0.16 引入一个实验特性:explain formattree ,树状的输出执行过程,以及预估成本和预估返 回行数。在 MySQL 8.0.18 又引入了 EXPLAIN ANALYZE,在 formattree 基础上,使用时,会执行 SQL &#…...

3分钟搞定:为Windows 11 24H2 LTSC系统一键恢复微软商店的终极方案

3分钟搞定:为Windows 11 24H2 LTSC系统一键恢复微软商店的终极方案 【免费下载链接】LTSC-Add-MicrosoftStore Add Windows Store to Windows 11 24H2 LTSC 项目地址: https://gitcode.com/gh_mirrors/ltscad/LTSC-Add-MicrosoftStore 你是否选择了Windows 1…...

fre:ac音频转换器完整指南:如何在5分钟内完成无损格式转换

fre:ac音频转换器完整指南:如何在5分钟内完成无损格式转换 【免费下载链接】freac The fre:ac audio converter project 项目地址: https://gitcode.com/gh_mirrors/fr/freac 还在为不同设备间的音频格式不兼容而烦恼吗?fre:ac音频转换器为你提供…...

ZYNQ纯PL端设计:从Bit到Boot.bin的固化实战解析

1. ZYNQ纯PL端固化的核心挑战 第一次接触ZYNQ的开发者经常会遇到一个困惑:为什么Vivado生成的bit文件不能像传统FPGA那样直接烧录?这其实涉及到ZYNQ芯片的架构特点。ZYNQ本质上是ARM处理器(PS)和FPGA(PL)的…...

前端状态管理:别让你的应用状态一团糟

前端状态管理:别让你的应用状态一团糟 什么是前端状态管理? 前端状态管理是指管理前端应用中数据状态的方法和工具。别以为状态管理只是简单的变量存储,复杂的应用状态管理不当会让你的代码变成一团糟。 为什么需要状态管理? 统一…...

解决Bootstrap项目中日期时间选择难题:bootstrap-datetimepicker深度集成指南

解决Bootstrap项目中日期时间选择难题:bootstrap-datetimepicker深度集成指南 【免费下载链接】bootstrap-datetimepicker 项目地址: https://gitcode.com/gh_mirrors/boo/bootstrap-datetimepicker 在Bootstrap项目开发中,日期时间选择器是表单…...

别再死记M法T法公式了!用Arduino和常见编码器手把手教你电机测速(附代码)

用Arduino实战编码器测速:告别公式背诵,从接线到可视化分析 当你第一次拿到那个小巧的增量式编码器时,可能会被那些专业术语吓到——M法、T法、分辨率、倍频...但我要告诉你一个秘密:这些概念远没有看起来那么可怕。本文将带你用最…...

5个步骤彻底解决GTA5在线模式崩溃问题:YimMenu防崩溃菜单完全指南

5个步骤彻底解决GTA5在线模式崩溃问题:YimMenu防崩溃菜单完全指南 【免费下载链接】YimMenu YimMenu, a GTA V menu protecting against a wide ranges of the public crashes and improving the overall experience. 项目地址: https://gitcode.com/GitHub_Trend…...

【后端】Easy Rules 进阶:基于注解与工厂模式打造动态规则编排系统

1. Easy Rules 核心机制解析 在业务系统开发中,我们经常遇到需要处理复杂业务规则的场景。传统的硬编码方式会让代码变得臃肿且难以维护,而Easy Rules提供了一种优雅的解决方案。它的核心思想是将业务规则从主流程中解耦,通过声明式的方式定义…...

gte-base-zh模型服务治理:Xinference多租户隔离与资源配额控制实践

gte-base-zh模型服务治理:Xinference多租户隔离与资源配额控制实践 1. 项目背景与需求场景 在实际的企业级AI应用部署中,我们经常面临这样的挑战:多个团队或项目需要共享同一个模型服务,但各自有不同的资源需求和隔离要求。传统…...

零知开源实战——基于STM32F4与BMP581的ST7789中文气象站开发指南

1. 硬件系统搭建与接线指南 第一次接触STM32F4和BMP581传感器时,我也被复杂的接线搞得晕头转向。后来发现只要掌握几个关键点,硬件搭建其实比想象中简单得多。我们需要的核心部件包括:STM32F407VET6开发板(我用的是零知增强版&…...