MySQL 进阶实验:数据库与数据表管理完全指南

继上一篇 MySQL 入门实验后,这一次我们聚焦数据库和数据表的核心管理操作。无论是数据库的创建与删除,还是数据表的结构设计、修改与维护,都是数据库开发中的高频基础技能。本文将通过实验实操,详细拆解 MySQL 中数据库与数据表的全套管理方案,帮你夯实基础、熟练运用!

一、实验核心目标

  1. 精通数据库的创建、查看、选择与删除操作(SQL 语句 + 工具实操)
  2. 掌握数据表的创建、结构修改(增删改字段)、复制与删除技巧
  3. 熟悉 MySQL 常用数据类型(char、varchar、date、bit 等)的应用场景
  4. 能够根据业务需求设计数据表结构,并灵活调整表结构

二、核心知识点与实操详解

(一)数据库管理:从创建到删除的完整流程

数据库是数据表的容器,所有表操作都需基于指定数据库进行,核心操作如下:

1. 查看相关信息
  • 查看系统中所有数据库:

    sql

    复制代码
    SHOW DATABASES;

    执行后会列出 MySQL 中所有已创建的数据库(如默认的 mysql、sys 等)

  • 查看数据库引擎(了解存储机制):

    sql

    复制代码
    SHOW ENGINES;

    常用引擎包括 InnoDB(支持事务、外键)、MyISAM(查询速度快)等

2. 创建与选择数据库
  • 创建数据库(以 YGGL 和 studentsdb 为例): sql

    复制代码
    -- 创建YGGL数据库
    CREATE DATABASE YGGL;
    -- 创建studentsdb数据库
    CREATE DATABASE studentsdb;
  • 选择当前操作的数据库(必须先选择再操作表): sql

    复制代码
    -- 选择YGGL为当前数据库
    USE YGGL;
    -- 选择studentsdb为当前数据库
    USE studentsdb;
3. 删除数据库(谨慎操作!数据不可恢复)

sql

复制代码
-- 删除YGGL数据库
DROP DATABASE YGGL;
-- 删除studentsdb数据库
DROP DATABASE studentsdb;

(二)数据表管理:创建、修改与删除全操作

数据表是存储数据的核心载体,掌握表结构的设计与修改是关键技能。

1. 数据表创建(含数据类型应用)

创建表时需指定字段名、数据类型、是否允许为空、是否为主键等属性,常用数据类型说明:

  • char(n):固定长度字符串,适合长度固定的数据(如学号、ID)
  • varchar(n):可变长度字符串,适合长度不固定的数据(如姓名、地址)
  • date:日期类型(格式:YYYY-MM-DD),存储生日、日期等
  • bit:布尔类型(1 代表真,0 代表假),适合存储性别(男 / 女)等二值数据

实操示例 1:创建 emp 表(雇员表)

sql

复制代码
-- 先选择YGGL数据库
USE YGGL;
-- 创建emp表
CREATE TABLE emp(
  eid char(6) NOT NULL PRIMARY KEY,  -- 员工ID,固定6位,非空,主键
  name varchar(8) NOT NULL,          -- 员工姓名,可变长度,非空
  birthday date,                     -- 生日,日期类型,允许为空
  sex bit                            -- 性别,布尔类型,允许为空
);

实操示例 2:创建 student_info 表(学生信息表)

sql

复制代码
-- 先选择studentsdb数据库
USE studentsdb;
-- 创建student_info表
CREATE TABLE student_info(
  学号 char(4) NOT NULL PRIMARY KEY,  -- 学号,固定4位,非空,主键
  姓名 char(8) NOT NULL,              -- 姓名,固定8位,非空
  性别 char(2),                       -- 性别,固定2位,允许为空
  出生日期 date,                     -- 出生日期,日期类型,允许为空
  家庭住址 varchar(50)                -- 家庭住址,可变长度,允许为空
);
2. 数据表结构修改(ALTER TABLE 核心用法)

表创建后,可根据需求修改字段(增、删、改),核心语法如下:

操作需求 SQL 语法 实操示例
增加字段 ALTER TABLE 表名 ADD 字段名 数据类型 [是否允许为空] 为 emp 表增加 deptid 字段(部门 ID):ALTER TABLE emp ADD deptid char(3);
修改字段名 + 数据类型 ALTER TABLE 表名 CHANGE 旧字段名 新字段名 新数据类型 将 emp 表的 name 列改名为 ename,长度改为 10:ALTER TABLE emp CHANGE name ename varchar(10);
删除字段 ALTER TABLE 表名 DROP 字段名 删除 emp 表的 birthday 列:ALTER TABLE emp DROP birthday;
修改字段约束(如允许为空) ALTER TABLE 表名 MODIFY 字段名 数据类型 NULL 允许 student_info 表的 "姓名" 列取空值:ALTER TABLE student_info MODIFY 姓名 char(8) NULL;
修改字段名(保留数据类型) ALTER TABLE 表名 RENAME COLUMN 旧字段名 TO 新字段名 将 student_info 表的 "家庭住址" 改为 "地址":ALTER TABLE student_info RENAME COLUMN 家庭住址 TO 地址;
3. 查看表结构

修改或创建表后,可通过以下命令查看表结构是否符合预期:

sql

复制代码
-- 查看emp表结构
DESC emp;
-- 查看student_info表结构
DESC student_info;
4. 数据表复制与删除
  • 复制表(含结构和数据):创建与 student_info 结构和数据完全相同的 stu 表 sql

    复制代码
    CREATE TABLE stu LIKE student_info;  -- 复制表结构
    INSERT INTO stu SELECT * FROM student_info;  -- 复制表数据
    -- 简化写法(部分MySQL版本支持):
    CREATE TABLE stu AS SELECT * FROM student_info;
  • 删除表(谨慎操作!数据不可恢复): sql

    复制代码
    -- 删除stu表
    DROP TABLE stu;
    -- 删除student_info表
    DROP TABLE student_info;

(三)综合实操:学生信息表完整管理流程

将上述知识点串联,完成从数据库创建到表删除的全流程:

  1. 创建数据库:CREATE DATABASE studentsdb;
  2. 选择数据库:USE studentsdb;
  3. 创建表:CREATE TABLE student_info(...);(见上文示例)
  4. 修改表结构:
    • 允许 "姓名" 列空值:ALTER TABLE student_info MODIFY 姓名 char(8) NULL;
    • 改 "家庭住址" 为 "地址":ALTER TABLE student_info RENAME COLUMN 家庭住址 TO 地址;
    • 增加 "备注" 字段:ALTER TABLE student_info ADD 备注 varchar(50);
    • 删除 "出生日期" 列:ALTER TABLE student_info DROP 出生日期;
  5. 复制表:CREATE TABLE stu AS SELECT * FROM student_info;
  6. 删除表:DROP TABLE stu; DROP TABLE student_info;
  7. 删除数据库:DROP DATABASE studentsdb;

三、实验总结与避坑指南

  1. 数据类型选择技巧:固定长度用char(效率高),可变长度用varchar(省空间);日期用date,二值数据用bit
  2. 主键设计原则:主键必须非空且唯一,建议用无业务含义的 ID(如 eid、学号),避免用姓名等可能重复的字段
  3. 修改表结构注意:修改字段名或数据类型时,需确保不影响已有数据(如将varchar(8)改为varchar(10)可兼容,反之可能截断数据)
  4. 删除操作警告:DROP DATABASEDROP TABLE会直接删除数据,且无法恢复,操作前务必确认是否需要备份
  5. 语法规范:SQL 关键字建议大写(如 CREATE、ALTER、DROP),字段名和表名尽量使用英文或中文拼音,避免特殊字符

通过本次实验,我们系统掌握了 MySQL 数据库和数据表的全生命周期管理,这些技能是后续进行数据插入、查询、更新等操作的基础。建议大家多结合实际场景练习(比如设计一个班级信息表、图书信息表),加深对表结构设计和 SQL 语法的理解。如果在操作中遇到问题,欢迎在评论区留言交流~

相关推荐
岁岁种桃花儿2 小时前
MySQL从入门到精通系列:InnoDB记录存储结构
数据库·mysql
蜜獾云2 小时前
oracle查询所有的表名和注释
oracle
jiunian_cn3 小时前
【Redis】hash数据类型相关指令
数据库·redis·哈希算法
冉冰学姐3 小时前
SSM在线影评网站平台82ap4(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面
数据库·ssm框架·在线影评平台·影片分类
知识分享小能手4 小时前
SQL Server 2019入门学习教程,从入门到精通,SQL Server 2019数据库的操作(2)
数据库·学习·sqlserver
爬山算法4 小时前
Hibernate(84)如何在DevOps流程中使用Hibernate?
oracle·hibernate·devops
踩坑小念5 小时前
秒杀场景下如何处理redis扣除状态不一致问题
数据库·redis·分布式·缓存·秒杀
萧曵 丶6 小时前
MySQL 语句书写顺序与执行顺序对比速记表
数据库·mysql
Wiktok7 小时前
MySQL的常用数据类型
数据库·mysql
曹牧7 小时前
Oracle 表闪回(Flashback Table)
数据库·oracle