SQL入门篇,数据库基础语法与核心操作
1. SQL 是什么?
-
SQL(Structured Query Language) 是用于管理和操作关系型数据库的标准语言。
-
核心功能:
-
创建和管理数据库、表、索引等对象。
-
插入、查询、更新、删除数据(CRUD)。
-
定义数据权限和事务。
-
2. 基础概念
(1) 数据库(Database)
-
一个容器,存储多个相关的表(类似 Excel 文件)。
-
示例:
CREATE DATABASE school;
(创建名为school
的数据库)。
(2) 表(Table)
-
结构化数据的集合,由行(记录)和列(字段)组成。
-
示例:
students
表可能包含id
,name
,age
等字段。
(3) 数据类型
-
常见类型:
-
INT
:整数。 -
VARCHAR(n)
:可变长度字符串(最多n
个字符)。 -
DATE
:日期(如2023-10-01
)。 -
BOOLEAN
:布尔值(TRUE
/FALSE
)。
-
3. 核心语法分类
SQL 语法可分为以下几类:
类型 | 作用 | 关键字示例 |
---|---|---|
DDL(数据定义语言) | 定义数据库结构(创建、修改、删除) | CREATE , ALTER , DROP |
DML(数据操作语言) | 操作数据(增删改查) | INSERT , UPDATE , DELETE |
DQL(数据查询语言) | 查询数据 | SELECT |
DCL(数据控制语言) | 控制数据权限(授权与回收) | GRANT , REVOKE |
4. 基础语法与示例
(1) DDL:创建和管理表
-- 创建表
CREATE TABLE students (
id INT PRIMARY KEY, -- 主键(唯一标识)
name VARCHAR(50),
age INT,
enrollment_date DATE
);
-- 修改表结构
ALTER TABLE students ADD COLUMN email VARCHAR(100);
-- 删除表
DROP TABLE students;
(2) DML:数据操作
-
插入数据
INSERT INTO students (id, name, age, enrollment_date) VALUES (1, '张三', 18, '2023-09-01');
-
更新数据
UPDATE students SET age = 19 WHERE id = 1; -- 指定条件,否则会更新所有行!
-
删除数据
DELETE FROM students WHERE id = 1; -- 删除符合条件的记录
(3) DQL:查询数据
-
基础查询
-- 查询所有字段 SELECT * FROM students; -- *代表所有 -- 查询特定字段 SELECT name, age FROM students; -- 查询学生表中name, age的字段 -- 条件筛选(WHERE) SELECT * FROM students WHERE age > 18; -- 查询学生表中年龄大于18的所有字段 -- 排序(ORDER BY) SELECT * FROM students ORDER BY enrollment_date DESC; -- DESC为降序,默认为升序
-
聚合函数
-- 统计学生数量 SELECT COUNT(*) FROM students; -- 计算平均年龄 SELECT AVG(age) FROM students; -- 分组统计(GROUP BY) SELECT age, COUNT(*) AS num_students FROM students GROUP BY age;
-
多表关联(JOIN)
-- 假设有另一张表 courses CREATE TABLE courses ( course_id INT PRIMARY KEY, course_name VARCHAR(50), student_id INT -- 关联 students 表的 id ); -- 内连接(INNER JOIN) SELECT students.name, courses.course_name FROM students INNER JOIN courses ON students.id = courses.student_id
5. 常用子句与关键词
子句/关键词 | 作用 | 示例 |
---|---|---|
WHERE | 过滤记录 | SELECT * FROM table WHERE age > 18 |
LIMIT | 限制返回行数 | SELECT * FROM table LIMIT 10 |
DISTINCT | 去重 | SELECT DISTINCT age FROM students |
AS | 别名(字段或表重命名) | SELECT name AS 姓名 FROM students |
BETWEEN | 范围筛选 | SELECT * FROM table WHERE age BETWEEN 18 AND 25 |
LIKE | 模糊匹配(% 匹配任意字符,_ 匹配单个字符) | SELECT * FROM table WHERE name LIKE '张%' |
6. 常见错误与注意事项
-
忘记分号:SQL 语句以分号
;
结束。 -
大小写敏感:SQL 关键字通常不区分大小写,但表名和字段名可能区分(取决于数据库)。
-
引号问题:字符串用单引号
'
,而非双引号。 -
未指定条件:
UPDATE
或DELETE
不加WHERE
会操作所有数据! -
主键冲突:插入重复的主键值会导致错误。
7. 练习建议
-
动手实践:使用在线 SQL 工具,
-
如 DrawDB 数据库设计 :构建表 生成 sql语句
-
SQL数据库 :编写sql语句
-
-
经典练习题:
-
查询年龄最大的前 5 名学生。
-
统计每个学生的选课数量。
-
删除未选课的学生记录。
-
总结
掌握 SQL 基础语法后,可以进一步学习:
-
复杂查询:子查询、窗口函数、递归查询。
-
性能优化:索引、执行计划分析。
-
事务管理:
COMMIT
、ROLLBACK
、隔离级别。
通过实际项目(如学生管理系统、电商订单分析)巩固知识,逐步提升技能!