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

376. Wiggle Subsequence

376. Wiggle Subsequence 代码 class Solution { public:int wiggleMaxLength(vector<int>& nums) {int n nums.size();int res 1;int prediff 0;int curdiff 0;for(int i 0;i < n-1;i){curdiff nums[i1] - nums[i];if( (prediff > 0 && curdif…...

多模态商品数据接口:融合图像、语音与文字的下一代商品详情体验

一、多模态商品数据接口的技术架构 &#xff08;一&#xff09;多模态数据融合引擎 跨模态语义对齐 通过Transformer架构实现图像、语音、文字的语义关联。例如&#xff0c;当用户上传一张“蓝色连衣裙”的图片时&#xff0c;接口可自动提取图像中的颜色&#xff08;RGB值&…...

从零实现STL哈希容器:unordered_map/unordered_set封装详解

本篇文章是对C学习的STL哈希容器自主实现部分的学习分享 希望也能为你带来些帮助~ 那咱们废话不多说&#xff0c;直接开始吧&#xff01; 一、源码结构分析 1. SGISTL30实现剖析 // hash_set核心结构 template <class Value, class HashFcn, ...> class hash_set {ty…...

令牌桶 滑动窗口->限流 分布式信号量->限并发的原理 lua脚本分析介绍

文章目录 前言限流限制并发的实际理解限流令牌桶代码实现结果分析令牌桶lua的模拟实现原理总结&#xff1a; 滑动窗口代码实现结果分析lua脚本原理解析 限并发分布式信号量代码实现结果分析lua脚本实现原理 双注解去实现限流 并发结果分析&#xff1a; 实际业务去理解体会统一注…...

《基于Apache Flink的流处理》笔记

思维导图 1-3 章 4-7章 8-11 章 参考资料 源码&#xff1a; https://github.com/streaming-with-flink 博客 https://flink.apache.org/bloghttps://www.ververica.com/blog 聚会及会议 https://flink-forward.orghttps://www.meetup.com/topics/apache-flink https://n…...

docker 部署发现spring.profiles.active 问题

报错&#xff1a; org.springframework.boot.context.config.InvalidConfigDataPropertyException: Property spring.profiles.active imported from location class path resource [application-test.yml] is invalid in a profile specific resource [origin: class path re…...

服务器--宝塔命令

一、宝塔面板安装命令 ⚠️ 必须使用 root 用户 或 sudo 权限执行&#xff01; sudo su - 1. CentOS 系统&#xff1a; yum install -y wget && wget -O install.sh http://download.bt.cn/install/install_6.0.sh && sh install.sh2. Ubuntu / Debian 系统…...

【电力电子】基于STM32F103C8T6单片机双极性SPWM逆变(硬件篇)

本项目是基于 STM32F103C8T6 微控制器的 SPWM(正弦脉宽调制)电源模块,能够生成可调频率和幅值的正弦波交流电源输出。该项目适用于逆变器、UPS电源、变频器等应用场景。 供电电源 输入电压采集 上图为本设计的电源电路,图中 D1 为二极管, 其目的是防止正负极电源反接, …...

push [特殊字符] present

push &#x1f19a; present 前言present和dismiss特点代码演示 push和pop特点代码演示 前言 在 iOS 开发中&#xff0c;push 和 present 是两种不同的视图控制器切换方式&#xff0c;它们有着显著的区别。 present和dismiss 特点 在当前控制器上方新建视图层级需要手动调用…...

【C++】纯虚函数类外可以写实现吗?

1. 答案 先说答案&#xff0c;可以。 2.代码测试 .h头文件 #include <iostream> #include <string>// 抽象基类 class AbstractBase { public:AbstractBase() default;virtual ~AbstractBase() default; // 默认析构函数public:virtual int PureVirtualFunct…...