数据库 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 学习之旅,如有疑问,欢迎留言交流!

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

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

相关文章

ADB在浏览器中的革命:ya-webadb项目解析及新手指南

ADB在浏览器中的革命:ya-webadb项目解析及新手指南 ya-webadb ADB in your browser [这里是图片001] 项目地址: https://gitcode.com/gh_mirrors/ya/ya-webadb ya-webadb是一个创新的开源项目,它将Android调试桥(ADB)的功能带入了基于Chromium的浏览器…

K8S详解(5万字详细教程)

目录 ​编辑 一、集群管理命令 二、命名空间 1. 获取命名空间列表 2. 创建命名空间 3. 删除命名空间 4. 查看命名空间详情 三、Pod 1. Pod概述 2. Pod相位状态 3. 管理命令 3.1 获取命名空间下容器(pod)列表 3.2 查看pod的详细信息 3.3 创建 && 运行 3.4 …

费舍尔信息矩阵全面讲述

费舍尔信息矩阵(Fisher Information Matrix) 费舍尔信息矩阵是统计学中一个非常重要的概念,尤其在参数估计、最大似然估计(MLE)和贝叶斯推断中具有广泛的应用。它反映了参数估计的不确定性程度,也可以用来…

PTA 时间几何

作者 Happyer 单位 湖北文理学院 乘火车或飞机常有由始发时间历经时间计算终到时间的事儿。我们通过三个 函数来完成,当然,为了存储几点几分这个时间,我们专门定义了一个结构体Time_gxx,你要完成的是写二个函数:1)st…

Zookeeper的监听机制

Zookeeper的监听机制是其实现分布式协调服务的一个核心功能。 它允许客户端注册Watcher(观察者)来监听特定的Znode(节点)上的事件,当Znode的状态发生变化时,Zookeeper会向注册了Watcher的客户端发送通知。…

[原创](Modern C++)现代C++的第三方库的导入方式: 例如Visual Studio 2022导入GSL 4.1.0

[简介] 常用网名: 猪头三 出生日期: 1981.XX.XX 企鹅交流: 643439947 个人网站: 80x86汇编小站 编程生涯: 2001年~至今[共23年] 职业生涯: 21年 开发语言: C/C、80x86ASM、PHP、Perl、Objective-C、Object Pascal、C#、Python 开发工具: Visual Studio、Delphi、XCode、Eclipse…

2002 - Can‘t connect to server on ‘192.168.1.XX‘ (36)

参考:2002 - Can‘t connect to server on ‘192.168.1.XX‘ (36) ubantu20.04,mysql5.7.13 navicat 远程连接数据库报错 2002 - Can’t connect to server on ‘192.168.1.61’ (36) 一、查看数据库服务是否有启动,发现有启动 systemctl status mysql…

漏洞检测工具:允许TRACE方法漏洞

允许TRACE方法漏洞 漏洞定义 TRACE方法是HTTP协议中定义的一种调试方法,主要用于测试或诊断Web服务器连接。Web服务器在配置时未正确禁用HTTP TRACE方法,从而允许客户端向服务器发送TRACE请求,并导致服务器返回可能包含敏感信息的响应。 漏…

linux socket编程之udp_dict_serve服务端--引入配置文件

注意:本篇博客只是对上一篇博客功能的增加 1.创建配置文件(翻译) Dict.txt apple: 苹果 banana: 香蕉 cat: 猫 dog: 狗 book: 书 pen: 笔 happy: 快乐的 sad: 悲伤的 run: 跑 jump: 跳 teacher: 老师 student: 学生 car: 汽车 bus: 公交车 love: 爱 hate: 恨 hell…

ESP32S3 使用LVGL驱动LCD屏(ST7789主控)

ESP32S3 使用LVGL驱动LCD屏(ST7789主控) 目录 1 分析原理图 2 驱动、点亮LCD(ST7789) 2.1 在工程中添加目录、文件 2.2 添加esp_lvgl_port组件 2.3 对工程进行必要的配置 2.4 编写必要代码 3 烧录、验证 1 分析原理图 要使用SOC驱动LCD屏&#…

Sigrity Optimize PI CapGen仿真教程文件路径

为了方便读者能够快速上手和学会Sigrity Optimize PI和 Deacap Generate 的功能,将Sigrity Optimize PI CapGen仿真教程专栏所有文章对应的实例文件上传至以下路径 https://download.csdn.net/download/weixin_54787054/90171471?spm1001.2014.3001.5503

react Moment.js 是一个流行的 JavaScript 库,用于处理日期和时间。它提供了丰富的功能,包括日期格式化、解析、操作和国际化

Moment.js 是一个流行的 JavaScript 库,用于处理日期和时间。它提供了丰富的功能,包括日期格式化、解析、操作和国际化。 尽管 Moment.js 已被官方声明进入维护模式,推荐使用轻量的库(如 day.js 或 date-fns)&#xf…

2024年“羊城杯”粤港澳大湾区网络安全大赛 初赛 Web数据安全AI 题解WriteUp

文章首发于【先知社区】:https://xz.aliyun.com/t/15442 Lyrics For You 题目描述:I have wrote some lyrics for you… 开题。 看一下前端源码,猜测有路径穿越漏洞 http://139.155.126.78:35502/lyrics?lyrics../../../../../etc/passw…

基于 Spring Boot 的在线教育平台设计与实现设计书

《基于 Spring Boot 的在线教育平台设计与实现设计书》 一、项目概述 随着互联网技术的飞速发展,在线教育逐渐成为一种重要的教育模式。本项目旨在设计并实现一个功能完备、用户体验良好的基于 Spring Boot 的在线教育平台,为教师、学生和管理员提供一个高效便捷的教学与学…

NLP 中文拼写检测开源-03-hunspell 拼写纠正算法入门介绍 CSC

拼写纠正系列 NLP 中文拼写检测实现思路 NLP 中文拼写检测纠正算法整理 NLP 英文拼写算法,如果提升 100W 倍的性能? NLP 中文拼写检测纠正 Paper java 实现中英文拼写检查和错误纠正?可我只会写 CRUD 啊! 一个提升英文单词拼…

ubuntu 网络管理

1 查看ip地址 rootu22-tools-20:~# ip addr 1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000 link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00 inet 127.0.0.1/8 scope host lo valid_lft forever…

写作词汇积累:纰漏、坎肩、颠三倒四、隔阂

纰漏 【纰漏】是指因粗心而产生的差错、小事故或漏洞 1. 在准备这次会议的过程中&#xff0c;我们反复核对资料&#xff0c;力求不出现任何【纰漏】。2. 在这次重要的项目汇报中&#xff0c;他小心翼翼地检查每一页 PPT&#xff0c;生怕出现任何【纰漏】。3. 尽管她工作一向细…

SpringCloud 运用(3)—— Nacos配置中心

上一篇&#xff1a;SpringCloud 入门&#xff08;2&#xff09;—— 跨服务调度-CSDN博客 Nacos是阿里巴巴开源的服务发现与配置管理基础设施&#xff0c;旨在帮助开发者更轻松地构建云原生应用。它提供了一组简单易用的特性集&#xff0c;支持动态服务发现、配置管理和服务管理…

门户系统需要压测吗?以及门户系统如何压力测试?

一、门户系统为什么要进行压力测试&#xff1f; 首先一点要明确一下&#xff0c;统一门户上线以后&#xff0c;将是所有应用系统的入口&#xff0c;对应门户稳定性要求较高&#xff0c;门户实现了统一入口和统一认证&#xff0c;系统宕机将影响其他系统使用。一般部署架构要求…

java 对ElasticSearch数据库操作封装工具类(对你是否适用嘞)

在 Java 中封装 ElasticSearch&#xff08;ES&#xff09;数据库操作&#xff08;ES版本之间变动挺大的&#xff0c;别轻易换版本&#xff09;&#xff0c;可以使得与 ES 的交互更加简洁和易于维护。通过封装常见的操作&#xff0c;如插入文档、查询、更新和删除等&#xff0c;…