一、什么是MySQL数据检索?
简单理解
想象一下,你有一个Excel表格,里面记录了全班同学的信息:
学号
姓名
年龄
成绩
班级
数据检索就像是用"筛选"功能,快速找到你需要的信息。
二、最基础的查询:SELECT语句
2.1 基本格式(就像说话一样简单)
bash
sql
SELECT 要查什么
FROM 从哪里查;
2.2 举个生活中的例子
假设我们有一个students(学生)表:
bash
select * from students;
学号 姓名 年龄 成绩 班级
001 张三 18 85 一班
002 李四 19 92 二班
003 王五 18 78 一班
三、第一个查询:查看所有数据
3.1 查询所有信息(就像看整个表格)
bash
sql
-- 星号(*)表示"所有列"
SELECT *
FROM students;
查询结果:
text
学号 姓名 年龄 成绩 班级
001 张三 18 85 一班
002 李四 19 92 二班
003 王五 18 78 一班
四、SELECT子句:告诉MySQL你要看什么
4.1 只看部分信息(选特定列)
bash
sql
-- 只看姓名和成绩
SELECT 姓名, 成绩
FROM students;
结果:
text
姓名 成绩
张三 85
李四 92
王五 78
4.2 给列起个好记的名字(别名)
bash
sql
-- 把"成绩"改名为"分数"
SELECT
姓名,
成绩 AS 分数
FROM students;
结果:
text
姓名 分数
张三 85
李四 92
王五 78
4.3 做简单的计算
bash
sql
-- 假设每个人成绩加5分
SELECT
姓名,
成绩 AS 原分数,
成绩 + 5 AS 新分数
FROM students;
结果:
text
姓名 原分数 新分数
张三 85 90
李四 92 97
王五 78 83
五、FROM子句:告诉MySQL从哪里找
5.1 最简单的用法:从单个表查
bash
sql
-- 从学生表查
SELECT * FROM students;
-- 也可以给表起个别名(方便写)
SELECT s.姓名, s.成绩
FROM students AS s;
5.2 实际例子(一步步来)
bash
第1步:创建练习用的表
sql
-- 创建一个简单的员工表
CREATE TABLE employees (
id INT, -- 员工编号
name VARCHAR(20), -- 姓名
age INT, -- 年龄
salary DECIMAL(10,2), -- 工资
department VARCHAR(30) -- 部门
);
第2步:插入一些数据
sql
INSERT INTO employees VALUES
(1, '张三', 25, 5000.00, '销售部'),
(2, '李四', 30, 8000.00, '技术部'),
(3, '王五', 28, 6000.00, '销售部'),
(4, '赵六', 35, 10000.00, '技术部');
第3步:开始查询练习
练习1:查看所有员工
sql
SELECT * FROM employees;
练习2:只看姓名和部门
sql
SELECT name, department FROM employees;
练习3:给列起中文名
sql
SELECT
name AS '姓名',
department AS '部门',
salary AS '月薪'
FROM employees;
练习4:计算年薪
sql
SELECT
name AS '姓名',
salary AS '月薪',
salary * 12 AS '年薪'
FROM employees;
六、常用的小技巧
6.1 去掉重复的信息
bash
sql
-- 查看有哪些不同的部门
SELECT DISTINCT department FROM employees;
结果:
text
department
销售部
技术部
6.2 组合信息显示
bash
sql
-- 把姓名和部门组合显示
SELECT
CONCAT(name, '(', department, ')') AS '员工信息'
FROM employees;
结果:
text
员工信息
张三(销售部)
李四(技术部)
王五(销售部)
赵六(技术部)
七、实战练习:自己动手试试
bash
练习表:图书信息表
sql
CREATE TABLE books (
book_id INT, -- 图书编号
title VARCHAR(100), -- 书名
author VARCHAR(50), -- 作者
price DECIMAL(8,2), -- 价格
publish_date DATE -- 出版日期
);
-- 插入数据
INSERT INTO books VALUES
(1, 'MySQL入门', '张三', 59.80, '2023-01-15'),
(2, 'Python编程', '李四', 79.90, '2022-11-20'),
(3, '网页设计', '王五', 49.90, '2023-03-10'),
(4, '数据分析', '李四', 69.90, '2022-09-05');
练习题和答案
bash
题目1:查看所有图书信息
sql
-- 你的代码写在这里
答案:
sql
SELECT * FROM books;
题目2:只看书名和作者
sql
-- 你的代码写在这里
答案:
sql
SELECT title, author FROM books;
题目3:显示"书名-作者"格式
sql
-- 你的代码写在这里
答案:
sql
SELECT
CONCAT(title, ' - ', author) AS '图书信息'
FROM books;
题目4:计算打折后的价格(打8折)
sql
-- 你的代码写在这里
答案:
sql
SELECT
title AS '书名',
price AS '原价',
price * 0.8 AS '折后价'
FROM books;
八、常见错误和解决方法
错误1:表名或列名写错了
sql
bash
-- 错误写法
SELECT nmae FROM employees; -- 把name拼错了
bash
-- 正确写法
SELECT name FROM employees;
错误2:忘记写FROM子句
bash
sql
-- 错误写法
SELECT name; -- 缺少FROM
-- 正确写法
SELECT name FROM employees;
错误3:SQL语句没有分号
bash
sql
-- 错误写法
SELECT * FROM employees -- 缺少分号
-- 正确写法
SELECT * FROM employees;