当前位置: 首页 > 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 学习之旅,如有疑问,欢迎留言交流!

http://www.lryc.cn/news/508660.html

相关文章:

  • SQLite 命令
  • 本地如何启动casdoor
  • 目标检测-R-CNN
  • 【持续更新】Github实用命令
  • docker 容器的基本使用
  • css让按钮放在最右侧
  • 8K+Red+Raw+ProRes422分享5个影视级视频素材网站
  • Linux网络——UDP的运用
  • 项目亮点案例
  • Retrofit源码分析:动态代理获取Api接口实例,解析注解生成request,线程切换
  • 范德蒙矩阵(Vandermonde 矩阵)简介:意义、用途及编程应用
  • 【中标麒麟服务器操作系统实例分享】java应用DNS解析异常分析及处理
  • 网安瞭望台第17期:Rockstar 2FA 故障催生 FlowerStorm 钓鱼即服务扩张现象剖析
  • 玩转OCR | 探索腾讯云智能结构化识别新境界
  • idea2024创建JavaWeb项目以及配置Tomcat详解
  • 外连接转AntiJoin的应用场景与限制条件 | OceanBase SQL 查询改写系列
  • 华为实训课笔记 2024 1223-1224
  • MySQL超详细安装配置教程(亲测有效)
  • MySQL 8.0:explain analyze 分析 SQL 执行过程
  • 信管通低代码信息管理系统应用平台
  • git推送本地仓库到远程(Gitee)
  • 【C++语言】多态
  • ThinkPHP 吸收了Java Spring框架一些特性
  • 自动控制系统综合与LabVIEW实现
  • 记录一个SVR学习
  • Java内存区域进一步详解
  • SpiderFlow平台v0.5.0流程的执行过程
  • 利用.NET Upgrade Assitant对项目进行升级
  • JAVA开发Erp时日志报错:SQL 当 IDENTITY_INSERT 设置为 OFF 时,不能为表 ‘***‘ 中的标识列插入显式值
  • [计算机网络]ARP协议的故事:小明找小红的奇妙旅程