MySQL 数据库管理基础

MySQLBeginner
立即练习

介绍

在本项目中,你将学习如何在 MySQL 数据库上执行各种 DDL(数据定义语言)操作。你将创建数据库、表,修改表结构,删除数据,以及删除表和数据库。

👀 预览

MySQL DDL 操作预览
MySQL 表结构修改
MySQL 表结构修改

🎯 任务

在本项目中,你将学习:

  • 如何使用 sudo 命令启动 MySQL 服务并访问数据库
  • 如何创建具有特定字符集的数据库
  • 如何创建具有各种数据类型和主键的表
  • 如何修改表结构,例如使主键自动递增
  • 如何使用 DELETETRUNCATE 从表中删除数据
  • 如何删除表和数据库

🏆 成果

完成本项目后,你将能够:

  • 理解 MySQL 中的基本 DDL 操作
  • 创建和管理数据库及表
  • 根据需求修改表结构
  • 高效地从表中删除数据
  • 在必要时删除表和数据库
这是一个实验(Guided Lab),提供逐步指导来帮助你学习和实践。请仔细按照说明完成每个步骤,获得实际操作经验。根据历史数据,这是一个 初级 级别的实验,完成率为 88%。获得了学习者 100% 的好评率。

启动 MySQL 并访问数据库

在这一步中,你将学习如何使用 sudo 命令在不设置任何密码的情况下启动 MySQL 服务并访问数据库。

  1. 使用以下命令启动 MySQL 服务:
sudo service mysql start
  1. 使用 sudo 命令在不设置任何密码的情况下访问 MySQL 数据库:
sudo mysql

现在你可以准备进入下一步了。

✨ 查看解决方案并练习

创建数据库和表

在这一步中,你将学习如何创建字符集指定为 utf8mb4testddl 数据库,然后在该数据库中创建 empdept 表。

  1. 创建字符集指定为 utf8mb4testddl 数据库:
CREATE DATABASE IF NOT EXISTS `testddl` DEFAULT CHARACTER SET utf8mb4;
  1. 使用 testddl 数据库:
USE `testddl`;
  1. 创建具有以下结构的 emp 表:
CREATE TABLE `emp` (
  `eid` int(5) NOT NULL,
  `ename` varchar(50),
  `sal` DECIMAL,
  `deptno` int(5),
  PRIMARY KEY (`eid`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
  1. 创建具有以下结构的 dept 表:
CREATE TABLE `dept` (
  `did` int(5) NOT NULL,
  `dname` varchar(50) DEFAULT NULL,
  PRIMARY KEY (`did`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;

现在你已经创建了 testddl 数据库以及 empdept 表。让我们进入下一步。

✨ 查看解决方案并练习

修改表结构

在这一步中,你将学习如何将 emp 表和 dept 表的主键修改为自增,从 10 开始。你还将把 emp 表中 sal 字段的数据类型修改为整数型。

  1. emp 表的主键修改为自增,从 10 开始:
ALTER TABLE `emp` AUTO_INCREMENT=10;
  1. dept 表的主键修改为自增,从 10 开始:
ALTER TABLE `dept` AUTO_INCREMENT=10;
  1. emp 表中 sal 字段的数据类型修改为整数型:
ALTER TABLE `emp` MODIFY `sal` INT(5);

现在,emp 表和 dept 表的主键已从 10 开始自增,并且 emp 表中 sal 字段的数据类型已修改为整数型。

✨ 查看解决方案并练习

从表中删除数据

在这一步中,你将学习如何从 emp 表和 dept 表中删除所有数据。

  1. 使用 DELETE 语句从 emp 表中删除所有数据:
DELETE FROM `emp`;
  1. 使用 TRUNCATE 语句从 dept 表中删除所有数据:
TRUNCATE TABLE `dept`;

现在 emp 表和 dept 表都为空表了。

✨ 查看解决方案并练习

删除表和数据库

在这最后一步中,你将学习如何删除 emp 表和 testddl 数据库。

  1. 删除 emp 表:
DROP TABLE `emp`;
  1. 删除 testddl 数据库:
DROP DATABASE `testddl`;

你可以参考以下输出:

MariaDB [(none)]> USE `testddl`;
Database changed
MariaDB [testddl]> CREATE TABLE `emp` (
    ->   `eid` int(5) NOT NULL,
    ->   `ename` varchar(50),
    ->   `sal` DECIMAL,
    ->   `deptno` int(5),
    ->   PRIMARY KEY (`eid`)
    -> ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
Query OK, 0 rows affected (0.005 sec)

MariaDB [testddl]> CREATE TABLE `dept` (
    ->   `did` int(5) NOT NULL,
    ->   `dname` varchar(50) DEFAULT NULL,
    ->   PRIMARY KEY (`did`)
    -> ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
Query OK, 0 rows affected (0.004 sec)

MariaDB [testddl]> desc emp;
+--------+---------------+------+-----+---------+-------+
| Field  | Type          | Null | Key | Default | Extra |
+--------+---------------+------+-----+---------+-------+
| eid    | int(5)        | NO   | PRI | NULL    |       |
| ename  | varchar(50)   | YES  |     | NULL    |       |
| sal    | decimal(10,0) | YES  |     | NULL    |       |
| deptno | int(5)        | YES  |     | NULL    |       |
+--------+---------------+------+-----+---------+-------+
4 rows in set (0.001 sec)

MariaDB [testddl]> ALTER TABLE `emp` AUTO_INCREMENT=10;
Query OK, 0 rows affected (0.005 sec)
Records: 0  Duplicates: 0  Warnings: 0

MariaDB [testddl]> ALTER TABLE `dept` AUTO_INCREMENT=10;
Query OK, 0 rows affected (0.003 sec)
Records: 0  Duplicates: 0  Warnings: 0

MariaDB [testddl]> ALTER TABLE `emp` MODIFY `sal` INT(5);
Query OK, 0 rows affected (0.006 sec)
Records: 0  Duplicates: 0  Warnings: 0

MariaDB [testddl]> desc emp;
+--------+-------------+------+-----+---------+-------+
| Field  | Type        | Null | Key | Default | Extra |
+--------+-------------+------+-----+---------+-------+
| eid    | int(5)      | NO   | PRI | NULL    |       |
| ename  | varchar(50) | YES  |     | NULL    |       |
| sal    | int(5)      | YES  |     | NULL    |       |
| deptno | int(5)      | YES  |     | NULL    |       |
+--------+-------------+------+-----+---------+-------+
4 rows in set (0.001 sec)

MariaDB [testddl]> DELETE FROM `emp`;
Query OK, 0 rows affected (0.000 sec)

MariaDB [testddl]> TRUNCATE TABLE `dept`;
Query OK, 0 rows affected (0.003 sec)

MariaDB [testddl]> show tables;
+-------------------+
| Tables_in_testddl |
+-------------------+
| dept              |
| emp               |
+-------------------+
2 rows in set (0.000 sec)

MariaDB [testddl]> DROP TABLE `emp`;
Query OK, 0 rows affected (0.002 sec)

MariaDB [testddl]> show tables;
+-------------------+
| Tables_in_testddl |
+-------------------+
| dept              |
+-------------------+
1 row in set (0.000 sec)

MariaDB [testddl]> show schemas;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| mysql              |
| performance_schema |
| sys                |
| testddl            |
+--------------------+
5 rows in set (0.000 sec)

MariaDB [testddl]> DROP DATABASE `testddl`;
Query OK, 1 row affected (0.004 sec)

MariaDB [(none)]> show schemas;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| mysql              |
| performance_schema |
| sys                |
+--------------------+
4 rows in set (0.000 sec)

恭喜你!你已经完成了 DDL 综合挑战。你已经学会了如何创建数据库、创建表、修改表结构、从表中删除数据以及删除表和数据库。********

✨ 查看解决方案并练习

总结

恭喜你!你已经完成了这个项目。你可以在 LabEx 中练习更多实验来提升你的技能。