当前位置: 首页 > news >正文

第一章:SQL 基础语法与数据查询

1. 什么是 SQL?​
  • ​SQL(Structured Query Language)​​ 是用于管理和操作关系型数据库的标准语言。
  • 核心功能:
    • ​数据查询​​(SELECT)
    • ​数据定义​​(CREATE、ALTER、DROP)
    • ​数据操作​​(INSERT、UPDATE、DELETE)
    • ​数据控制​​(权限管理)
​2. 数据库核心概念​
  1. ​表(Table)​

    • 数据以二维表格形式存储,包含行(记录)和列(字段)。
    • 示例:一个 students 表可能有 idnameagescore 等列。
  2. ​字段(Column)​

    • 表的列,表示数据的属性,如 name 表示学生姓名。
  3. ​记录(Row)​

    • 表中的一行数据,代表一条完整的记录。
  4. ​主键(Primary Key)​

    • 唯一标识表中每条记录的列(如 id),不可重复。
  5. ​外键(Foreign Key)​

    • 用于关联其他表的列,建立表之间的关系。

​3. SQL 基本语法规则​
  • SQL 语句以分号 ; 结尾。
  • 关键字(如 SELECTFROM)通常大写,但 SQL 不区分大小写。
  • 字符串用单引号包裹(如 'John')。
  • 注释:
    • 单行注释:-- 这是注释
    • 多行注释:/* 多行注释 */

​4. 数据查询(SELECT 语句)​
​4.1 查询所有数据​
SELECT * FROM students;  -- 查询 students 表的所有列
​4.2 查询指定列​
SELECT name, age FROM students;  -- 仅查询 name 和 age 列
​4.3 列别名(AS)​

为列或表设置别名,提升可读性:

SELECT name AS 学生姓名, age AS 年龄 FROM students;

​5. 过滤数据(WHERE 子句)​

用 WHERE 筛选满足条件的记录。

​5.1 基本比较运算符​
  • =<>(不等于), ><>=<=
SELECT * FROM students WHERE age >= 18;  -- 查询年龄≥18的学生
​5.2 逻辑运算符​
  • AND:同时满足多个条件
  • OR:满足任意一个条件
  • NOT:取反
SELECT * FROM students 
WHERE age > 18 AND score >= 90;  -- 年龄>18且分数≥90
​5.3 范围查询​
  • ​BETWEEN​​:在某个范围内
SELECT * FROM students 
WHERE score BETWEEN 80 AND 90;  -- 分数在80到90之间(包含边界)
  • ​IN​​:匹配多个值
SELECT * FROM students 
WHERE age IN (18, 20, 22);  -- 年龄为18、20或22
​5.4 模糊查询(LIKE)​
  • % 表示任意多个字符,_ 表示单个字符。
SELECT * FROM students 
WHERE name LIKE '张%';  -- 查询姓“张”的学生(如“张三”、“张伟”)

​6. 排序(ORDER BY)​

按指定列排序结果:

  • ASC:升序(默认)
  • DESC:降序
SELECT * FROM students 
ORDER BY score DESC;  -- 按分数从高到低排序

​7. 限制结果数量(LIMIT)​

仅返回前 N 条记录(常用于分页):

SELECT * FROM students 
LIMIT 5;  -- 返回前5条记录

​8. 综合示例​
-- 查询分数≥80的学生的姓名和年龄,按年龄降序排列,返回前3条
SELECT name, age 
FROM students 
WHERE score >= 80 
ORDER BY age DESC 
LIMIT 3;

相关文章:

  • 网站怎么做背景seo网站培训优化怎么做
  • 嘉兴企业网站排名优化培训机构招生方案
  • 网站开发学什么比较有优势软件开发工具
  • APP加网站建设预算多少钱阿里云域名查询和注册
  • 专门代做毕设的网站免费b2b网站推广渠道
  • 做网站要学什么网络营销和网上销售的区别
  • 海运货代系统哪家好?能解决了哪些常见管理难题?
  • Less的使用
  • ​​如何测试一个API接口?从原理到实践详解
  • 【Dubbo】分布式服务框架的卓越之选
  • MySQL报Lock wait timeout exceeded; try restarting transaction
  • stm32+esp8266+机智云手机app
  • 《深度解析LightGBM与MySQL数据集成:高效机器学习的新范式》
  • 【Java设计模式】第5章 工厂方法模式讲解
  • 通过Aop实现限制修改删除指定账号的数据
  • QML Loader:动态加载与控件创建
  • git命令
  • LLM面试题十
  • EmotiVoice 易魔声AI语音下载安装使用教程​(附安装包)
  • 移动端、PC端(Web) 和 桌面端(客户端应用)AI驱动测试实现方案
  • Spring-MVC
  • 从C语言到Go语言:新手快速入门指南
  • 解析 LILIkoi 光纤力传感器:FBG 原理铸就耐高温抗干扰优势
  • python-Leetcode 65.搜索旋转排序数组
  • 知识表示方法之六:过程表示法(Procedural Representation)
  • 【AI】prompt engineering