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

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文件,导出数据表的结构和数据
比如到处的数据表结构文件内容如下:里面清晰的定义了表的字段等详细内容
 

 

http://www.xdnf.cn/news/5238.html

相关文章:

  • 复习javascript
  • MindSpore框架学习项目-ResNet药物分类-模型评估
  • 前端EXCEL插件,智表ZCELL产品V3.0 版本发布,底层采用canvas全部重构,功能大幅扩展,性能极致提升,满足千万级单元格加载
  • git 忽略 打包文件
  • CSS弹性布局
  • 深入解析进程地址空间:从虚拟到物理的奇妙之旅
  • PySide6 GUI 学习笔记——常用类及控件使用方法(常用类字体QFont)
  • Linux基本指令(一)
  • HDFS 常用基础命令详解——快速上手分布式文件系统
  • [python] 类
  • AtCoder Beginner Contest 405(CD)
  • 问题及解决01-面板无法随着窗口的放大而放大
  • 互联网大厂Java求职面试:基于RAG的智能问答系统设计与实现-3
  • 游戏引擎学习第270天:生成可行走的点
  • 阿里云CDN的源站配置:权重的详解
  • AI安全之对抗样本攻击---FGSM实战脚本解析
  • C语言_程序的段
  • Lasso回归理论的起源
  • Python教程(四)——数据结构
  • 计算机网络:家庭路由器WiFi信号的发射和手机终端接收信号原理?
  • 智能时代下,水利安全员证如何引领行业变革?
  • python校园新闻发布管理系统
  • 【Debian】关于LubanCat-RK3588s开发板安装Debian的一些事
  • Java 泛型(Generic)
  • 本地大模型工具深度评测:LM Studio vs Ollama,开发者选型指南
  • 每日算法刷题Day1 5.9:leetcode数组3道题,用时1h
  • Paging 3.0 + Kotlin 分页加载指南
  • 用go从零构建写一个RPC(仿gRPC,tRPC)--- 版本2
  • 实验四:网络编程
  • localStorage和sessionStorage