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

05 mysql之DDL

一、SQL的四个分类

我们通常可以将 SQL 分为四类,分别是:
DDL(数据定义语言)、DML(数据操作语言)、 DCL(数据控制语言)和 TCL(事务控制语言)。

DDL 用于创建、删除、修改数据库结构(如表、索引、视图等),核心语句createdropalter、truncate
DML 负责数据的插入、删除、更新和查询,核心语句insertdeleteupdate
DQL 负责从数据库中检索数据,是使用频率最高的SQL类型,核心语句select
DCL 用于管理数据库访问权限和数据安全,核心语句grantrevoke

二、什么是 DDL?

DDL 是 SQL 的一部分,用于定义和管理数据库的结构(模式)。主要命令包括:

  • CREATE:创建数据库、表、视图等对象
  • ALTER:修改现有数据库对象
  • DROP:删除数据库对象
  • TRUNCATE:删除表中的数据但保留结构

其中DROP是删除数据库,可以参考之前的文章。

三、创建数据库

语句:CREATE DATABASE 数据库名;

我们使用root登录mysql,输入CREATE DATABASE school_db;

一般来说,我们采用root创建数据库,然后可以将其赋予别的用户进行管理,我们把该数据库赋给leo用户权限 

GRANT ALL PRIVILEGES ON school_db.* TO 'leo'@'localhost';

四、创建表 

我们采用navicat对SQL语句进行演示,使用navicat登录leo用户,会看到有个school_db的数据库

创建 MySQL 数据表的 SQL 通用语法:

CREATE TABLE table_name (column1 datatype,column2 datatype,...
);

参数说明:

  • table_name 是你要创建的表的名称。
  • column1column2, ... 是表中的列名。
  • datatype 是每个列的数据类型。

下面是示例:

4.1 创建学生表

CREATE TABLE students (student_id INT PRIMARY KEY AUTO_INCREMENT,  -- 主键,自增student_name VARCHAR(50) NOT NULL,          -- 非空字段age INT CHECK (age > 0),                    -- 年龄必须大于0gender ENUM('M', 'F', 'Other') DEFAULT 'Other',  -- 枚举类型birth DATE NOT NULL                         -- 生日
);

在学习这个链接上右键刷新,然后我们就可以看到建立的数据表了。 

4.2 创建老师表

在上个示例中,我们采用的是SQL语句创建的,我们还可以使用navicat通过界面进行创建

第一步:在表上右键,新建表

第二步:添加主键

第三步:保存表,右上角,保存:
 

输入表名:Teachers,然后点保存
 

第四步:添加字段
通过添加字段按钮,依次添加如下字段 ,其中工作年限设置为0

第五步:添加外键

外键用于在两个表之间建立一对一、一对多或多对多的关系。例如,在老师表和学生表之间,老师表中的mentor_student_id字段可以作为外键,关联到学生表中的student_id字段,从而实现老师和学生之间的关联,老师表也称为父表,学生表也成为子表。

五、修改表结构(ALTER)

添加一个新列到 students 表: 

ALTER TABLE students ADD COLUMN email VARCHAR(100) UNIQUE;

修改 teachers 表的 subject 列:

ALTER TABLE teachers MODIFY subject VARCHAR(60) NOT NULL;

六、删除表 

6.1 删除表(保留结构):

TRUNCATE TABLE students;  -- 清空数据但保留表结构

注意:因为在Teachers表中包含有students的外键,删除是会出错的,所以需要先去删除Teachers的外键。

6.2 删除表(结构和数据):

DROP TABLE teachers;

七、查看表结构

 使用 DESCRIBE 或 SHOW CREATE TABLE 查看表定义:

DESCRIBE students;
SHOW CREATE TABLE students;

八、navicat导出表结构

可以通过在表上右键->转储SQL文件,导出数据表的结构和数据
比如到处的数据表结构文件内容如下:里面清晰的定义了表的字段等详细内容
 

 

相关文章:

  • 通俗的理解MFC消息机制
  • 基于小波神经网络(WNN)的回归预测模型【MATLAB】
  • Flutter PIP 插件 ---- 为iOS 重构PipController, Demo界面,更好的体验
  • 大学之大:悉尼科技大学2025.5.10
  • 在 Flink + Kafka 实时数仓中,如何确保端到端的 Exactly-Once
  • 分布式锁原理
  • 自主shell命令行解释器
  • 北斗终端设备应用
  • Vue3组件通信 emit 的工作原理
  • CUDA编程——性能优化基本技巧
  • 海盗王64位服务端+32位客户端3.0版本
  • 前端性能优化全攻略:从基础体验到首屏加载的深度实践
  • pytest自动化测试执行环境切换的两种解决方案
  • 批量修改json文件中的标签
  • 【Linux基础】网络相关命令
  • 202536 | KafKa生产者分区写入策略+消费者分区分配策略
  • 深入解析进程地址空间:从虚拟到物理的奇妙之旅
  • 通过推测搜索加速大型语言模型推理 (SpecSearch) 论文总结
  • PySide6 GUI 学习笔记——常用类及控件使用方法(常用类字体QFont)
  • 【图书管理系统】深度讲解:图书列表展示的后端实现、高内聚低耦合的应用、前端代码讲解
  • 晋级中部非省会第一城,宜昌凭什么
  • 欧洲承诺投资6亿欧元吸引外国科学家
  • 梅花奖在上海|第六代“杨子荣”是怎样炼成的?
  • 见微知沪|优化营商环境,上海为何要当“细节控”自我加压?
  • 绍兴柯桥:用一块布托起中国制造的新经纬
  • 商务部再回应中美经贸高层会谈:美方要拿出诚意、拿出行动