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 语法的理解。如果在操作中遇到问题,欢迎在评论区留言交流~

相关推荐
好记忆不如烂笔头abc2 小时前
oracle迁移到sqlserver的注意点
数据库·oracle·sqlserver
YJlio2 小时前
ZoomIt 学习笔记(11.11):休息计时器与演讲节奏控制——倒计时、番茄钟与现场掌控力
数据库·笔记·学习
sc.溯琛2 小时前
MySQL 性能优化核心:索引创建与管理实战指南
数据库·mysql·性能优化
锋君2 小时前
Orcale数据库在Asp.Net Core环境下使用EF Core 生成实体
数据库·后端·oracle·asp.net
啊吧怪不啊吧2 小时前
SQL之用户管理——权限与用户
大数据·数据库·sql
VX:Fegn08952 小时前
计算机毕业设计|基于springboot + vue电影院购票管理系统(源码+数据库+文档)
数据库·vue.js·spring boot·后端·课程设计
NineData2 小时前
NineData 数据库 DevOps 正式支持谷歌云,全面接入 GCP 数据源
运维·数据库·devops·ninedata·gcp·玖章算术·数据智能管理平台
韩立学长3 小时前
Springboot考研自习室预约管理系统1wdeuxh6(程序、源码、数据库、调试部署方案及开发环境)系统界面展示及获取方式置于文档末尾,可供参考。
数据库·spring boot·后端
2503_928411563 小时前
12.18 中后台项目-权限管理
前端·javascript·数据库