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

【MySQL】入门篇—实践练习:在MySQL环境中进行案例操作练习

通过具体示例介绍MySQL的基本操作,包括创建数据库、创建表、插入数据、查询数据、更新数据和删除数据。

1. 创建数据库

示例:创建一个名为 my_database 的数据库

-- 创建一个名为 my_database 的数据库
CREATE DATABASE my_database;

-- 选择使用 my_database 数据库
USE my_database;

解释

  • CREATE DATABASE my_database;:此命令创建一个名为 my_database 的新数据库。

  • USE my_database;:此命令选择当前使用的数据库为 my_database,后续的操作将针对该数据库进行。

2. 创建表

示例:在 my_database 中创建一个名为 users 的表

-- 创建用户信息表
CREATE TABLE users (
    user_id INT PRIMARY KEY AUTO_INCREMENT,  -- 用户ID,自增主键
    username VARCHAR(50) NOT NULL,           -- 用户名,不能为空
    email VARCHAR(100) NOT NULL UNIQUE,      -- 电子邮件,不能为空且唯一
    age INT,                                  -- 年龄
    registration_date DATE                    -- 注册日期
);

解释

  • CREATE TABLE users (...);:此命令创建一个名为 users 的新表。

  • user_id INT PRIMARY KEY AUTO_INCREMENT:定义 user_id 为整型,自增主键,每插入一条记录,user_id 自动增加。

  • username VARCHAR(50) NOT NULL:定义 username 为最大长度为50的字符串,不能为空。

  • email VARCHAR(100) NOT NULL UNIQUE:定义 email 为最大长度为100的字符串,不能为空且必须唯一。

  • age INT:定义 age 为整型,表示用户的年龄。

  • registration_date DATE:定义 registration_date 为日期类型,表示用户的注册日期。

3. 插入数据

示例:向 users 表中插入数据

-- 向 users 表中插入几条用户记录
INSERT INTO users (username, email, age, registration_date) VALUES
('Alice', 'alice@example.com', 30, '2022-01-15'),
('Bob', 'bob@example.com', 25, '2023-02-20'),
('Charlie', 'charlie@example.com', 35, '2021-03-10');

解释

  • INSERT INTO users (...) VALUES (...);:此命令向 users 表中插入新记录。

  • VALUES 中指定了要插入的字段的值。注意,user_id 字段由于是自增的,因此在插入时不需要手动指定。

4. 查询数据

示例:查询 users 表中的所有用户

-- 查询 users 表中的所有用户
SELECT * FROM users;

解释

  • SELECT * FROM users;:此命令查询 users 表中的所有列和所有记录。* 表示选择所有列。

示例:查询年龄大于 30 岁的用户

-- 查询年龄大于 30 岁的用户
SELECT * FROM users WHERE age > 30;

解释

  • WHERE age > 30;:此条件筛选出年龄大于30岁的用户。结果将只显示符合条件的记录。

5. 更新数据

示例:更新用户的年龄

-- 更新用户 Bob 的年龄
UPDATE users 
SET age = 26 
WHERE username = 'Bob';

解释

  • UPDATE users SET age = 26;:此命令更新 users 表中的数据,将 age 字段的值设置为26。

  • WHERE username = 'Bob';:此条件确保只更新用户名为 Bob 的用户的年龄。

6. 删除数据

示例:删除用户记录

-- 删除用户名为 Charlie 的用户
DELETE FROM users 
WHERE username = 'Charlie';

解释

  • DELETE FROM users;:此命令从 users 表中删除记录。

  • WHERE username = 'Charlie';:此条件确保只删除用户名为 Charlie 的用户的记录。

7. 组合操作

在实际应用中,通常会将这些基本操作组合在一起,以实现更复杂的功能。例如,您可以在插入数据后立即查询,或者在更新数据后进行验证。

示例:插入新用户并查询所有用户

-- 插入新用户
INSERT INTO users (username, email, age, registration_date) VALUES
('David', 'david@example.com', 28, '2023-01-05');

-- 查询所有用户
SELECT * FROM users;

解释

  • 首先插入一个新用户 David,然后查询所有用户以验证插入操作是否成功。

8. 创建索引

索引是数据库中一种数据结构,用于提高数据检索速度。通过为表中的一个或多个列创建索引,MySQL可以更快地查找和排序数据。

示例:为 users 表的 username 列创建索引

-- 为 username 列创建索引
CREATE INDEX idx_username ON users (username);

解释

  • CREATE INDEX idx_username ON users (username);:此命令在 users 表的 username 列上创建一个名为 idx_username 的索引。这样可以加速对 username 列的查询。

示例:查看 users 表的索引

-- 查看 users 表的索引
SHOW INDEX FROM users;

解释

  • SHOW INDEX FROM users;:此命令显示 users 表的所有索引信息,包括索引名称、唯一性、索引列等。

9. 使用索引提高查询性能

示例:查询特定用户名的用户

-- 查询用户名为 Alice 的用户
SELECT * FROM users WHERE username = 'Alice';

解释

  • 由于我们在 username 列上创建了索引,这个查询会利用索引加速查找 usernameAlice 的用户,性能会比没有索引时更高。

10. 使用 LIMIT 限制查询结果

示例:查询 users 表中的前 3 个用户

-- 查询前 3 个用户
SELECT * FROM users 
LIMIT 3;

解释

  • LIMIT 3:此命令限制查询结果为前3条记录。结果将显示 users 表中的前3个用户。

示例:查询第 2 页的用户数据,每页显示 3 条记录

-- 查询第 2 页的用户数据(每页 3 条记录)
SELECT * FROM users 
LIMIT 3 OFFSET 3;

解释

  • LIMIT 3 OFFSET 3:此查询将跳过前3条记录(即第一页的记录),然后返回接下来的3条记录(即第二页)。结果将显示用户列表中的第4、5和6个用户。

11. 结合索引与 LIMIT

在某些情况下,结合使用索引和 LIMIT 可以进一步提高查询性能,特别是在大数据集上进行分页查询时。

示例:使用索引和 LIMIT 查询特定条件下的用户

-- 查询年龄大于 25 岁的前 2 个用户
SELECT * FROM users 
WHERE age > 25 
ORDER BY registration_date DESC 
LIMIT 2;

解释

  • WHERE age > 25:此条件筛选出所有年龄大于25岁的用户。

  • ORDER BY registration_date DESC:按注册日期降序排序,确保返回的用户是最近注册的。

  • LIMIT 2:限制结果集为前2条记录。通过索引,查询将更高效。

12. 性能比较

为了观察索引对查询性能的影响,可以使用 EXPLAIN 关键字来分析查询计划。

示例:使用 EXPLAIN 查看查询计划

-- 查看查询计划
EXPLAIN SELECT * FROM users WHERE username = 'Alice';

解释

  • EXPLAIN:此命令将显示 MySQL 执行查询的方式,包括使用的索引、扫描的行数等信息。通过分析这些信息,您可以了解索引的使用情况和查询的性能。

13. 删除索引

如果不再需要某个索引,可以将其删除。

示例:删除 username 列的索引

-- 删除 username 列的索引
DROP INDEX idx_username ON users;

解释

  • DROP INDEX idx_username ON users;:此命令删除在 users 表的 username 列上创建的索引。

14. 数据库管理

在实际应用中,您可能还需要进行一些数据库管理操作,例如查看表结构、删除表和数据库等。

示例:查看表结构

-- 查看 users 表的结构
DESCRIBE users;

解释

  • DESCRIBE users;:此命令显示 users 表的结构,包括字段名、数据类型、是否允许空值等信息。

示例:删除表

-- 删除 users 表
DROP TABLE users;

解释

  • DROP TABLE users;:此命令删除 users 表及其所有数据。请谨慎使用此命令,因为删除后无法恢复。

示例:删除数据库

-- 删除 my_database 数据库
DROP DATABASE my_database;

解释

  • DROP DATABASE my_database;:此命令删除 my_database 数据库及其所有表和数据。同样,使用此命令前需谨慎考虑。

结论

通过本节的示例,您应该能够掌握MySQL的基本操作,包括创建数据库和表、插入、查询、更新和删除数据。这些操作是与MySQL交互的基础,理解它们将为您在实际应用中使用MySQL打下坚实的基础。


http://www.kler.cn/news/359131.html

相关文章:

  • MYSQL-查看服务器支持的排序规则(八)
  • JavaWeb开发3
  • 请解读下面的程序:pat =re.compile(r‘\d+‘)res = pat.search(‘www.ddd996.com‘)res.group()
  • QT实现改变窗口大小其子控件也自动调节大小
  • 雷池WAF自动化实现安全运营实操案例终极篇
  • 利士策分享,职场求职,主要年龄段是?
  • 深度学习-24-基于keras的十大经典算法之残差网络ResNet
  • TypeScript基础总结
  • Electron入门笔记
  • SPRINGBOOT 打包报错
  • YOLOv11改进策略【模型轻量化】| 替换骨干网络为 MobileViTv1高效的信息编码与融合模块,获取局部和全局信息
  • COALESCE 是 SQL 中的一个函数,用于返回第一个非 NULL 的表达式的值
  • 大数据都包括哪些内容
  • sass的使用
  • 单例设计模式(Singleton Pattern)
  • 数据分析-33-我国各地区近年来结婚离婚情况分析
  • Codeforces Round 979 (Div. 2) A-C 题解
  • 【Qt】详细Qt基础 (包括自定义控件)
  • 说说ConcurrentLinkedQueue的HOPS(延迟更新的策略)的设计?
  • 第二十六:TCP/IP的知识回顾