news 2026/5/27 5:43:04

从零基础到初始什么是SQL

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
从零基础到初始什么是SQL

文章目录

  • 1.先明白“数据库”是什么
  • 2.什么是SQL?
  • 3.怎么写SQL
    • 先不管“语法”是什么,先记住一个万能句子模板
    • 进一步类比理解
    • 进一步强化,写出SQL
    • 自我检测
  • 4.SQL 就四件事:增、删、改、查
    • 查数据(SELECT)
    • 新增数据(INSERT)
    • 改数据(UPDATE)
    • 删数据(DELETE)
  • 5.常用部分:查
    • 常用技巧
      • 1.`*`(所有列)
      • 2. AND / OR(逻辑组合条件)
      • 3.` LIKE`(模糊匹配)
        • 概述
        • 为什么“前导 %”会让索引失效?
    • 总结

1.先明白“数据库”是什么

想象你有一个超级 Excel 本

  • 它可以存几百万行数据

  • 多个同事能同时查改

  • 还能瞬间从里面找出“去年买了红色连衣裙的所有女生”

这个“超级 Excel”就是数据库

2.什么是SQL?

SQL 就是你和数据库对话的指令

  1. SQL 就四件事:增、删、改、查
    日常几乎只用查(80%的工作),其余偶尔用。我们把数据存在表格里,比如一张 学生表:

3.怎么写SQL

先不管“语法”是什么,先记住一个万能句子模板

SQL 里 90% 的查询都长这样:

SELECT 哪几列 FROM 哪张表 WHERE 什么条件;

就像填表格一样:

位置填什么例子
SELECT 后面你要看的列名姓名, 年龄
FROM 后面表的名字学生表
WHERE 后面筛选条件年龄 >= 18

完整例子
SELECT 姓名, 年龄 FROM 学生表 WHERE 年龄 >= 18;
什么意思:从学生表里,找出年龄≥18岁的,只看他们的姓名和年龄。

注意:单词之间用空格隔开,整句话结尾要写分号

进一步类比理解

用电脑上的东西做类比(假设 Excel 就是数据库)想象你打开了一个 Excel 文件,里面有一个叫 成绩表 的 sheet:

姓名科目分数
张三数学85
李四数学92
王五语文78

你的需求:

  • “我要看分数那一列” → SQL:SELECT 分数

  • “从成绩表里看” → 加上FROM 成绩表

  • “只要数学那一行” → 加上WHERE 科目 = '数学'

拼起来:

SELECT 分数 FROM 成绩表 WHERE 科目 = '数学';

结果显示:

85 92

进一步强化,写出SQL

假设你有一个真实的表叫员工表,里面有姓名,部门,工资三列。

案例1:看所有人的姓名和工资

你想:显示姓名工资这两列,所有行(不筛选)。
写法:SELECT 姓名, 工资 FROM 员工表;

案例2:只看销售部的人

你想:加上条件,部门=‘销售部’。
写法:SELECT 姓名, 工资 FROM 员工表 WHERE 部门 = '销售部';

案例3:销售部里工资高于5000的人

条件变复杂:部门=‘销售部’并且工资>5000。
写法:SELECT 姓名, 工资 FROM 员工表 WHERE 部门 = '销售部' AND 工资 > 5000;

注意:文本(如’销售部’)要加单引号,数字(5000)不用。

自我检测

表名:订单表
列有:顾客名,商品,金额

只看‘顾客名’和‘商品’两列,怎么写?

SELECT ________ , ________ FROM 订单表;

只看金额大于100的订单,显示所有列(用 * 代替所有列),怎么写?

SELECT * FROM 订单表 WHERE ________ > 100;

找‘顾客名’为‘小明’的订单,显示‘商品’和‘金额’,怎么写?

SELECT 商品, 金额 FROM 订单表 WHERE ________ = ‘________’;

顾客名, 商品 金额 顾客名, 小明

4.SQL 就四件事:增、删、改、查

我们把数据存在表格里,比如一张 学生表:

学号姓名班级
101张三1班
102李四2班

查数据(SELECT)

“把 1 班的所有学生名字给我”

SELECT 姓名 FROM 学生表 WHERE 班级='1班';

新增数据(INSERT)

“插一条记录:学号103,王五,1班”

INSERT INTO 学生表(学号,姓名,班级)VALUES(103,'王五','1班');

改数据(UPDATE)

“把李四的班级改成 1班”

UPDATE 学生表 SET 班级='1班'WHERE 姓名='李四';

删数据(DELETE)

“删除学号是102的学生”

DELETE FROM 学生表 WHERE 学号=102;

5.常用部分:查

常用技巧

1.*(所有列)

作用:代表表中的全部字段。

用法:SELECT * FROM 表名

适用场景:仅限自己快速排查数据、查看表结构或临时验证。

注意:正式代码或生产环境应显式列出所需字段(如 SELECT id, name),避免性能浪费、数据泄露或列顺序依赖。

2. AND / OR(逻辑组合条件)

AND:所有条件都必须为真 (逻辑与)。

OR:至少一个条件为真(逻辑或)

优先级AND 高于 OR务必用括号()明确分组,避免逻辑错误。

典型模式WHERE (条件1 AND 条件2) OR (条件3 AND 条件4)

3.LIKE(模糊匹配)

概述

通配符:

  • %→ 任意多个字符(含 0 个)
  • _→ 单个字符

常见用途:

  • 前缀匹配:LIKE '张%'
  • 后缀匹配:LIKE '%@gmail.com'
  • 包含匹配:LIKE '%小%'
  • 定长占位:LIKE '张_'(两个字的“张X”)

反向匹配NOT LIKE

性能提示:前导%会使索引失效,大表慎用。

为什么“前导 %”会让索引失效?

数据库的索引通常按照从左到右的顺序组织数据。

  • LIKE '张%'→ 索引能快速定位到“张”开头的部分,因为前缀是固定的。
  • LIKE '%小%'→ 索引不知道开头是什么,必须扫描整张表的每一行,逐个判断是否包含“小”

好比查一本按拼音排序的通讯录:

找“张%” → 直接翻到 Zhang 那页。 找“%小%” → 只能从第一页翻到最后一页,看每个人的名字里有没有“小”字。

总结

  • 代表所有列:SELECT * FROM 表(仅自己排查数据时用
  • AND / OR 组合条件:WHERE 性别=‘女’ AND 年龄<25
  • LIKE 模糊匹配:WHERE 姓名 LIKE ‘张%’(姓张的)
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/5/27 5:30:26

2026年千亿「孤独经济」背后,情感陪伴平台正在改变什么?

不聊虚的&#xff0c;不画饼。聊聊这个行业到底在发生什么&#xff0c;以及像花瓣树洞这样的平台到底在做什么。一组被反复引用的数据 中国独居人口超过1.25亿&#xff0c;且继续增长。一人户家庭占比超25%。城市年轻人的每周线下深度社交时长&#xff0c;在持续下降。 这些数字…

作者头像 李华
网站建设 2026/5/27 5:23:18

linux监控-zabbix

Zabbix部署 一、各类监控工具优势对比 zabbix&#xff1a;适合监控IT基础设施、可分布式promethues&#xff1a;云原生、多用于监控容器其它&#xff1a;适用于同厂商产品的监控 二、系统及依赖组件 系统&#xff1a;ubuntu22.04中间件&#xff1a;nginx、php、mysql、zabb…

作者头像 李华
网站建设 2026/5/27 5:22:00

脉冲神经网络剪枝技术:SPEAR框架的创新与实践

1. 脉冲神经网络剪枝的技术挑战与创新机遇脉冲神经网络(SNN)作为第三代人工神经网络&#xff0c;通过模拟生物神经元的脉冲发放机制实现信息处理。与传统人工神经网络(ANN)相比&#xff0c;SNN具有两大核心优势&#xff1a;事件驱动的异步计算特性使其在静态图像分类任务中能减…

作者头像 李华
网站建设 2026/5/27 5:21:00

C51开发中PRECEDE指令导致的内存重叠问题解析

1. 问题现象解析当在C51开发环境中使用PRECEDE指令时&#xff0c;如果项目中添加了printf()或其他包含局部变量的函数&#xff0c;链接器会报告数据内存重叠错误。从提供的map文件片段可以看到关键信息&#xff1a;* * * * * * * D A T A M E M O R Y * * * * * * * DATA…

作者头像 李华