当前位置: 首页 > 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 &#…...

测试微信模版消息推送

进入“开发接口管理”--“公众平台测试账号”,无需申请公众账号、可在测试账号中体验并测试微信公众平台所有高级接口。 获取access_token: 自定义模版消息: 关注测试号:扫二维码关注测试号。 发送模版消息: import requests da…...

解锁数据库简洁之道:FastAPI与SQLModel实战指南

在构建现代Web应用程序时,与数据库的交互无疑是核心环节。虽然传统的数据库操作方式(如直接编写SQL语句与psycopg2交互)赋予了我们精细的控制权,但在面对日益复杂的业务逻辑和快速迭代的需求时,这种方式的开发效率和可…...

前端导出带有合并单元格的列表

// 导出async function exportExcel(fileName "共识调整.xlsx") {// 所有数据const exportData await getAllMainData();// 表头内容let fitstTitleList [];const secondTitleList [];allColumns.value.forEach(column > {if (!column.children) {fitstTitleL…...

Leetcode 3577. Count the Number of Computer Unlocking Permutations

Leetcode 3577. Count the Number of Computer Unlocking Permutations 1. 解题思路2. 代码实现 题目链接:3577. Count the Number of Computer Unlocking Permutations 1. 解题思路 这一题其实就是一个脑筋急转弯,要想要能够将所有的电脑解锁&#x…...

在四层代理中还原真实客户端ngx_stream_realip_module

一、模块原理与价值 PROXY Protocol 回溯 第三方负载均衡(如 HAProxy、AWS NLB、阿里 SLB)发起上游连接时,将真实客户端 IP/Port 写入 PROXY Protocol v1/v2 头。Stream 层接收到头部后,ngx_stream_realip_module 从中提取原始信息…...

第一篇:Agent2Agent (A2A) 协议——协作式人工智能的黎明

AI 领域的快速发展正在催生一个新时代,智能代理(agents)不再是孤立的个体,而是能够像一个数字团队一样协作。然而,当前 AI 生态系统的碎片化阻碍了这一愿景的实现,导致了“AI 巴别塔问题”——不同代理之间…...

新能源汽车智慧充电桩管理方案:新能源充电桩散热问题及消防安全监管方案

随着新能源汽车的快速普及,充电桩作为核心配套设施,其安全性与可靠性备受关注。然而,在高温、高负荷运行环境下,充电桩的散热问题与消防安全隐患日益凸显,成为制约行业发展的关键瓶颈。 如何通过智慧化管理手段优化散…...

Xen Server服务器释放磁盘空间

disk.sh #!/bin/bashcd /run/sr-mount/e54f0646-ae11-0457-b64f-eba4673b824c # 全部虚拟机物理磁盘文件存储 a$(ls -l | awk {print $NF} | cut -d. -f1) # 使用中的虚拟机物理磁盘文件 b$(xe vm-disk-list --multiple | grep uuid | awk {print $NF})printf "%s\n"…...

PostgreSQL——环境搭建

一、Linux # 安装 PostgreSQL 15 仓库 sudo dnf install -y https://download.postgresql.org/pub/repos/yum/reporpms/EL-$(rpm -E %{rhel})-x86_64/pgdg-redhat-repo-latest.noarch.rpm# 安装之前先确认是否已经存在PostgreSQL rpm -qa | grep postgres# 如果存在&#xff0…...

深入浅出Diffusion模型:从原理到实践的全方位教程

I. 引言:生成式AI的黎明 – Diffusion模型是什么? 近年来,生成式人工智能(Generative AI)领域取得了爆炸性的进展,模型能够根据简单的文本提示创作出逼真的图像、连贯的文本,乃至更多令人惊叹的…...