news 2026/7/14 2:30:02

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/7/11 22:55:24

数据结构学习篇(4)---算法的时间复杂度

由于现在计算机的储存在硬件上能得到很好的解决&#xff0c;所以时间复杂度较空间复杂度更受关注。1.1 时间复杂度的概念时间复杂度的定义&#xff1a;在计算机科学中&#xff0c;算法的时间复杂度是一个函数&#xff0c;它定量描述了该算法的运行时间。一 个算法执行所耗费的时…

作者头像 李华
网站建设 2026/7/14 6:27:07

桌面开发,在线%RIP,路由表管理%系统,基于vs2022,c#,winform,txt,无数据库

经验心得帮客户完善一下RIP路由表拓扑结构图展示。代码很多地方不严谨帮客户修改一下就行。剩下就是搞懂路由表展示原理就行。 路由展示功能介绍 做这个路由展示功能时&#xff0c;最直观的感受就是重复的活干太多了。比如A到H这8个路由按钮&#xff0c;点每个按钮的逻辑几乎一…

作者头像 李华
网站建设 2026/7/14 13:53:02

Day 39 MLP神经网络的训练

浙大疏锦行 神经网络是一种模拟人脑神经元连接结构的分层模型&#xff0c;核心通过“输入层→隐藏层→输出层”的架构实现端到端学习&#xff0c;无需手动设计特征&#xff0c;能自动提取数据中的高阶非线性关系&#xff08;如心脏病风险与年龄、血压的复杂关联&#xff09;。…

作者头像 李华
网站建设 2026/7/8 10:29:32

浏览器原理

浏览器原理 一、 宏观视角&#xff1a;Chrome 多进程架构 现在的浏览器更像是一个分布式操作系统&#xff0c;而非简单的应用程序。 1. 四大核心进程 Browser Process (主进程)&#xff1a; 职责&#xff1a;负责 UI&#xff08;地址栏、书签&#xff09;、协调子进程、管理存储…

作者头像 李华
网站建设 2026/7/14 0:02:38

XXL-TOOL v2.4.0 发布 | 布隆过滤器、Excel流式读写、高性能BeanCopy

Release Notes 1、【新增】BloomFilter&#xff08;布隆过滤器&#xff09;&#xff1a;一种基于多哈希函数和位数组的概率型数据结构&#xff0c;具有高效空间利用与快速查询特性&#xff1b;2、【新增】Trie&#xff08;前缀数&#xff09;&#xff1a;一种哈希树的变种&…

作者头像 李华
网站建设 2026/7/9 6:37:06

管理软件包

一.rpm管理软件包1.安装软件-i安装指定一个或多个软件包-v显示安装过程-h以#号显示安装进度2.查询软件-q查询软件包信息-a查询已经安装的软件包-c显示软件包的配置文件列表-d显示软件包的文本文件列表-p查询软件包文件&#xff0c;通常和其他选项组合使用-g查询所属组的软件包-…

作者头像 李华