菜鸟之路Day29一一MySQL之DDL

本文涉及的产品
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云数据库 RDS MySQL,高可用系列 2核4GB
云数据库 RDS PostgreSQL,高可用系列 2核4GB
简介: 本文《菜鸟之路Day29——MySQL之DDL》由作者blue于2025年5月2日撰写,主要介绍了MySQL中的数据定义语言(DDL)。文章详细讲解了DDL在数据库和表操作中的应用,包括数据库的查询、创建、使用与删除,以及表的创建、修改与删除。同时,文章还深入探讨了字段约束(如主键、外键、非空等)、常见数据类型(数值、字符串、日期时间类型)及表结构的查询与调整方法。通过示例代码,读者可以更好地理解并实践MySQL中DDL的相关操作。

菜鸟之路Day29一一MySQL之DDL

作者:blue

时间:2025.5.2

0.概述

文章内容学习自黑马程序员BV1m84y1w7Tb

何为DDL?

答:DDL即数据定义语言,用来定义数据库对象(数据库,表,字段)

注意单条SQL语句结尾要使用分号来标记

1.DDL之数据库操作

1.1查询

查询所有数据库

show databases;

查询当前正在使用的数据库

select database();

1.2创建

创建数据库

create database [if not exists] 数据库名;

1.3使用

使用某个数据库

use 数据库名;

1.4删除

删除数据库

drop database [if exists] 数据库名;

2.DDL之表操作

2.1创建表

create table 表明{
    字段1 字段类型 [约束] [comment 字段1注释],
    ……
    字段n 字段类型 [约束] [comment 字段n注释]
}[comment 表注释];

约束

概念:约束是作用于表中字段上的规则,用于限制存储在表中的数据

目的:保证数据库中数据的正确性,有效性和完整性

约束 描述 关键字
非空约束 限制该字段值不能为null not null
唯一约束 保证字段的所有数据都是唯一的,不重复的 unique
主键约束 主键是一行数据的唯一标识,要求非空且唯一 primary key (auto_increment自增)
默认约束 保存数据时,如果未指定该字段值,则采用默认值 default
外键约束 让两张表的数据建立连接,保证数据的一致性和完整性 foreign key

示例:

create table tb_user(
    id int primary key auto_increment comment 'id,唯一标识',
    username varchar(50) not null unique comment '用户名',
    name varchar(15) not null comment '姓名',
    age int comment '年龄',
    gender char(1) default '男' comment '性别'
)comment '用户表';

2.2数据类型

数值类型:

image-20250501101028725.png

字符串类型:

image-20250501101218491.png

char(10):最多只能存10个字符,不足10个字符,占用10个字符空间

varchar(10):最多只能存10个字符,不足10个字符,按照实际长度存储

日期时间类型:

image-20250501101746140.png

2.3查询表

查询当前数据库所有表:show table;

查询表结构:desc 表名;

查询建表语句:show create table 表名;

2.4修改表结构

添加字段:alter table 表名 add 字段名 类型(长度)[comment 注释][约束];

修改字段类型:alter table 表名 modify 字段名 新数据类型(长度);

修改字段名和字段类型:alter table 表名 change 旧字段名 新字段名 类型(长度)[comment 注释][约束];

删除字段:alter table 表名 drop column 字段名;

修改表名: rename table 表名 to 新表名;

示例:

alter table tb_user add qq_num varchar(10) comment 'QQ号码';

alter table tb_user modify qq_num varchar(11);

alter table tb_user change qq_num qq varchar(12) comment 'QQ号码';

alter table tb_user drop column qq;

rename table tb_user to user

2.5删除表

删除表:drop table [if exists] 表名;
相关实践学习
如何快速连接云数据库RDS MySQL
本场景介绍如何通过阿里云数据管理服务DMS快速连接云数据库RDS MySQL,然后进行数据表的CRUD操作。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助     相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
目录
相关文章
|
8天前
|
SQL 关系型数据库 MySQL
MySQL 5.6/5.7 DDL 失败残留文件清理指南
通过本文的指南,您可以更安全地处理 MySQL 5.6 和 5.7 版本中 DDL 失败后的残留文件,有效避免数据丢失和数据库不一致的问题。
|
5月前
|
SQL 监控 关系型数据库
MySQL如何优雅的执行DDL
在MySQL中优雅地执行DDL操作需要综合考虑性能、锁定和数据一致性等因素。通过使用在线DDL工具、分批次执行、备份和监控等最佳实践,可以在保障系统稳定性的同时,顺利完成DDL操作。本文提供的实践和案例分析为安全高效地执行DDL操作提供了详细指导。
230 14
|
11月前
|
SQL 关系型数据库 MySQL
MySQL DDL(数据定义语言)深度解析
MySQL DDL(数据定义语言)深度解析
|
7月前
|
SQL 关系型数据库 MySQL
|
8月前
|
SQL 关系型数据库 MySQL
MySQL 更新1000万条数据和DDL执行时间分析
MySQL 更新1000万条数据和DDL执行时间分析
555 4
|
10月前
|
SQL 存储 关系型数据库
"MySQL增列必锁表?揭秘InnoDB在线DDL,让你的数据库操作飞一般,性能无忧!"
【8月更文挑战第11天】在数据库领域,MySQL凭借其稳定高效的表现深受开发者喜爱。对于是否会在给数据表添加列时锁表的问题,MySQL的行为受版本、存储引擎等因素影响。从5.6版起,InnoDB支持在线DDL,可在改动表结构时保持表的可访问性,避免长时间锁表。而MyISAM等则需锁表完成操作。例如,在使用InnoDB的表上运行`ALTER TABLE users ADD COLUMN email VARCHAR(255);`时,通常不会完全锁表。虽然在线DDL提高了灵活性,但复杂操作或大表变更仍可能暂时影响性能。因此,进行结构变更前应评估其影响并择机执行。
162 6
|
11月前
|
SQL 算法 关系型数据库
Mysql Online DDL
Mysql Online DDL
121 2
|
12月前
|
SQL 存储 关系型数据库
MySQL基础(一) 前置安装以及DDL详解
MySQL基础(一) 前置安装以及DDL详解
106 1
|
12月前
|
SQL 关系型数据库 MySQL
MySQL Online DDL原理解读
MySQL Online DDL原理解读
234 3
|
12月前
|
SQL 关系型数据库 MySQL
MySQL Online DDL(Data Definition Language)
MySQL Online DDL(Data Definition Language)
166 1

推荐镜像

更多