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

发布于:2025-04-09 ⋅ 阅读:(41) ⋅ 点赞:(0)
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;