目录
引言:为什么选择MySQL?
MySQL 是全球最受欢迎的关系型数据库之一,因其高性能、开源性和易用性,被广泛应用于企业级开发(如电商、社交平台等)。本系列将通过 7篇实战教程,带你从零掌握MySQL核心技能,涵盖所有SQL语句,并通过 真题演练 强化理解。今天,我们从最基础的数据库操作开始!
一、数据库基础概念
1.1 什么是数据库?
- 数据库(DB):存储和管理数据的仓库,通过结构化方式组织数据(如表、字段)。
- 数据库管理系统(DBMS):管理数据库的软件,如MySQL、Oracle、SQL Server等。
1.2 MySQL的核心特点
- 开源免费:社区版完全免费,适合中小型项目。
- 高性能:支持高并发读写,适用于高流量场景。
- 支持多种存储引擎:如InnoDB(事务支持)、MyISAM(读取优化)等。
二、MySQL基础操作
2.1 安装与启动
- 安装:可通过官方包管理器(如Ubuntu的
apt
)或Docker快速部署。 - 启动服务:
sudo systemctl start mysql # 启动 sudo systemctl status mysql # 查看状态
2.2 基础命令
-
连接数据库:
mysql -u root -p # 输入密码登录
-
查看所有数据库:
SHOW DATABASES;
-
创建数据库:
CREATE DATABASE IF NOT EXISTS mydb; # 如果不存在则创建
-
选择数据库:
USE mydb;
三、数据表操作
3.1 创建表
CREATE TABLE students (
id INT PRIMARY KEY AUTO_INCREMENT,
name VARCHAR(50) NOT NULL,
age TINYINT,
email VARCHAR(100) UNIQUE
);
- 关键字段说明:
PRIMARY KEY
:主键,唯一标识记录。AUTO_INCREMENT
:自动递增。UNIQUE
:唯一约束,防止重复值。
3.2 插入数据
INSERT INTO students (name, age, email)
VALUES ('张三', 20, 'zhangsan@example.com');
3.3 查询数据
SELECT * FROM students WHERE age > 18;
四、实战练习题
题目1:创建数据库与表
- 创建名为
school
的数据库。 - 在
school
数据库中创建courses
表,包含以下字段:id
(主键,自增)name
(课程名称,非空)teacher
(教师姓名,允许为空)credit
(学分,整数)
答案:
CREATE DATABASE IF NOT EXISTS school;
USE school;
CREATE TABLE courses (
id INT PRIMARY KEY AUTO_INCREMENT,
name VARCHAR(50) NOT NULL,
teacher VARCHAR(50),
credit INT
);
题目2:插入与查询
- 向
courses
表插入以下数据:- 课程名称:
Java编程
,教师:李四
,学分:4 - 课程名称:
数据库原理
,教师:王五
,学分:3
- 课程名称:
- 查询学分大于3的课程。
答案:
INSERT INTO courses (name, teacher, credit)
VALUES ('Java编程', '李四', 4),
('数据库原理', '王五', 3);
SELECT * FROM courses WHERE credit > 3;
题目3:修改与删除
- 将
courses
表中Java编程
的学分改为5。 - 删除
courses
表中teacher
为空的记录。
答案:
UPDATE courses SET credit = 5 WHERE name = 'Java编程';
DELETE FROM courses WHERE teacher IS NULL;
五、常见错误与解析
- 错误:
ERROR 1064 (42000)
- 原因:SQL语法错误,如缺少逗号或引号。
- 解决:检查关键字大小写(MySQL不区分,但建议统一)、标点符号。
- 错误:
Duplicate entry
- 原因:插入重复的唯一键(如
email
)。 - 解决:使用
INSERT IGNORE
或修改唯一约束条件。
- 原因:插入重复的唯一键(如
六、下篇预告
下一期我们将深入讲解 数据查询进阶,包括:
GROUP BY
分组统计JOIN
多表关联查询HAVING
分组过滤- 实战题目:计算各部门平均工资、统计订单数量等。
关注我,获取完整系列教程!
如果本文对你有帮助,欢迎点赞、收藏、转发,让我们一起成为MySQL高手!