news 2026/9/1 22:12:08

SQL的基础

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
SQL的基础

SQL的基础语句

select语句

使用形式:SELECT column1, column2, ... FROM table_name WHERE condition;

select * from student where sex=’男’;

其中,SELECT关键字用于指定要查询的列,可以使用*代表所有列;FROM关键字用于指定要查询的表;WHERE关键字用于指定查询的条件。

insert语句

INSERT INTO table_name (column1, column2, column3, ...) VALUES (value1, value2, value3, ...);

其中,table_name是要插入数据的表名,column1、column2等是表中的列名,value1、value2等是要插入的值。

update语句

UPDATE table_name SET column1 = value1, column2 = value2, ... WHERE some_column = some_value;

其中,table_name是要更新数据的表名,column1、column2等是要修改的列名,value1、value2等是要修改的值,WHERE子句是用于指定要更新的行的条件。

delete语句

DELETE FROM table_name WHERE some_column = some_value;

其中,table_name是要删除数据的表名,WHERE子句是用于指定要删除的行的条件。

注意:如果不指定条件相当于删除表中所有数据

SQL基本查询

where子句

WHERE子句是结构化查询语言(SQL)中用于筛选数据的关键字。通过WHERE子句,您可以指定一个或多个条件来限制从数据库中检索的数据行。以下是WHERE子句的使用方式:

SELECT * FROM table_name WHERE some_column = some_value;

操作符:

WHERE子句可以使用以下比较运算符:

=(等于)

<(小于)

>(大于)

<=(小于或等于)

>=(大于或等于)

<>或!=(不等于)

还可以使用逻辑运算符(AND、OR和NOT)来组合多个条件。例如:

SELECT * FROM students WHERE sex = ‘男’ and age > 23;

模糊搜索

-- 多字符匹配 SELECT * FROM students WHERE clazz like 'xx%' -- 单字符匹配 SELECT * FROM students WHERE stu_name LIKE '张_'; -- 多关键词匹配:找姓名含“张”或“李”或“王”的学生 SELECT * FROM students WHERE name RLIKE '张|李|王' -- 范围匹配:找姓名含“张”且后面跟1-2个字符的学生(如“张三”“张三丰”) SELECT * FROM students WHERE name RLIKE '张.{1,2}';

in

返回选项中的内容

select * from students where clazz in ('xx','xx','xx');

BETWEEN AND

返回年龄在22到24的学生

select * from students where age BETWEEN 22 AND 24;

order by子句

ORDER BY子句用于对查询结果按照一个或多个列进行排序。它接受一个或多个列名或表达式作为参数,并可指定每个列的排序方式(ASC:升序,DESC:降序)。语法如下:

SELECT column1, column2, ... FROM table_name ORDER BY column1 [ASC | DESC], column2 [ASC | DESC], ...

group by子句

GROUP BY子句用于将查询结果按照一个或多个列进行分组,并对每个组进行聚合计算(如COUNT、SUM、AVG等)。语法如下:

SELECT column1, column2, ..., avg(column_name) FROM table_name GROUP BY column1, column2, ...
-- 嵌套where select * from (SELECT column1, column2, ..., aggregate_function(column_name) f FROM table_name GROUP BY column1, column2, ...) as t1 where t1.f > xxx;

having子句

HAVING子句用于对分组后的结果进行过滤,只返回符合条件的分组。它接受一个或多个聚合函数作为参数,并可指定每个函数的过滤条件。语法如下:

SELECT column1, column2, ..., aggregate_function(column_name) FROM table_name GROUP BY column1, column2, ... HAVING condition;

limit子句

LIMIT用于限制查询结果集的行数,其中,number是你想要返回的行数。其语法如下:

SELECT column1, column2, ... FROM table_name LIMIT number;
-- 多行查询 从number1起 limit number2个 SELECT column1, column2, ... FROM table_name LIMIT number1,number2;

offsite子句

OFFSET用于指定查询结果集的偏移量。

其中,number是你想要返回的行数,offset_num是从查询结果集的起始位置偏移的行数。

SELECT column1, column2, ... FROM table_name LIMIT number OFFSET offset;

数据连接

内连接 join | inner join

SELECT s.*, sc.subject_id, su.subject_name FROM ( students s JOIN scores sc JOIN subjects su ON s.stu_id = sc.stu_id and sc.subject_id = su.subject_id );

外连接 left join / right join / full join

# 在score末行添加一个假数据 # 2000 1 100 期末 SELECT * FROM( students as s RIGHT JOIN scores as sc ON s.stu_id = sc.stu_id );

union 操作

先拼接,再去重(删除重复行)

-- 合并“成绩≥90”和“成绩≤60”的学生信息(UNION 自动去重) SELECT s.stu_id, s.stu_name, sc.score, su.subject_name FROM students s JOIN scores sc ON s.stu_id = sc.stu_id JOIN subjects su ON sc.subject_id = su.subject_id WHERE sc.score >= 90 UNION SELECT s.stu_id, s.stu_name, sc.score, su.subject_name FROM students s JOIN scores sc ON s.stu_id = sc.stu_id JOIN subjects su ON sc.subject_id = su.subject_id WHERE sc.score <= 60 ORDER BY score DESC;

union all操作

直接拼接结果,不做任何去重 / 排序

-- 添加一个student 张三 19 SELECT name FROM students WHERE age = 20 UNION ALL SELECT name FROM students WHERE age = 19;
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/9/2 21:37:24

Font Awesome 文件类型图标

Font Awesome 文件类型图标 随着互联网技术的飞速发展,网站和应用程序的界面设计变得越来越重要。图标作为界面设计的重要组成部分,能够直观地传达信息,提升用户体验。Font Awesome 是一个流行的图标库,提供了大量的图标资源。本文将详细介绍 Font Awesome 中的文件类型图…

作者头像 李华
网站建设 2026/9/2 21:36:09

企业级RPA工具终极应用指南:从零构建智能自动化工作流

企业级RPA工具终极应用指南&#xff1a;从零构建智能自动化工作流 【免费下载链接】openrpa Free Open Source Enterprise Grade RPA 项目地址: https://gitcode.com/gh_mirrors/op/openrpa 在当今数字化转型浪潮中&#xff0c;企业级RPA技术正成为提升运营效率的关键利…

作者头像 李华
网站建设 2026/9/2 17:36:03

XPath 节点

XPath 节点 引言 XPath(XML Path Language)是一种在XML文档中定位信息的方法。它是XSLT(XSL Transformations)和XQuery等XML处理技术的核心组成部分。在本文中,我们将深入探讨XPath中的节点概念,以及如何使用XPath来定位和操作XML文档中的节点。 XPath 节点概述 在XP…

作者头像 李华
网站建设 2026/9/2 9:50:46

Rust 泛型与特性

Rust 泛型与特性 引言 Rust 是一种系统编程语言,以其安全性和并发性而闻名。在 Rust 中,泛型和特性是语言的核心特性之一,它们使得 Rust 程序员能够编写更加灵活和可重用的代码。本文将深入探讨 Rust 中的泛型和特性,包括它们的基本概念、使用方法以及在实际开发中的应用…

作者头像 李华
网站建设 2026/9/2 17:47:27

TypeScript 运算符

TypeScript 运算符 引言 TypeScript 作为 JavaScript 的超集,在保持 JavaScript 语法的基础上,增加了静态类型检查,使得代码更加健壮和易于维护。在 TypeScript 中,运算符是进行数据操作和逻辑判断的基础,本文将详细介绍 TypeScript 中常用的运算符及其使用方法。 运算…

作者头像 李华
网站建设 2026/9/1 23:09:57

Maven 项目模板

Maven 项目模板 引言 在软件开发领域,Maven 是一个广泛使用的项目管理工具,它简化了项目构建、报告和文档的过程。Maven 项目模板是构建基于 Maven 的项目的基础,它提供了项目结构、依赖管理和构建配置。本文将详细介绍 Maven 项目模板的构成、配置和使用方法。 Maven 项…

作者头像 李华