MySQL 篇-深入了解 DDL 语言(一)

news2025/1/12 13:33:29

 🔥博客主页: 【小扳_-CSDN博客】
❤感谢大家点赞👍收藏⭐评论✍
   

 

文章目录

        1.0 MySQL 说明

        2.0 DDL 语言

        2.1 DDL 语言 - 定义数据库

        2.1.1 创建数据库操作

        2.1.2 查看数据库操作

        2.1.3 使用数据库操作

        2.1.4 删除数据库操作

        2.2 DDL 语言 - 定义表格

        2.2.1 创建表格操作

        2.2.2 查询表格操作

        2.2.3 删除表格操作

        2.2.4 修改表格操作


        1.0 MySQL 说明

        MySQL 是一种关系型数据库管理系统,它支持使用 SQL(Structured Query Language)来管理和操作数据库。SQL 是一种标准化的数据库查询语言,包括 DDL、DML、DQL、DCL 和 TCL等不同类型的语句。

        2.0 DDL 语言

        DDL 是数据定义语言(Data Definition Language)的缩写,是一种用于定义数据库结构和模式的语言。DDL 包括创建、修改和删除数据库表、视图、索引等数据库对象的语句。常见的 DDL 语句包括 CREATE、ALTER 和 DROP 等。因此,DDL 不是一种独立的编程语言,而是用于管理数据库结构的语言。简单来说, DDL 就是对数据库、表进行增加、删除、查询、修改

        2.1 DDL 语言 - 定义数据库

        用 DDL 语言来对数据库的操作主要有一下四点:创建数据库、查询当前的数据库、使用指定的数据库、删除数据库。

        2.1.1 创建数据库操作

创建数据库的 SQL 语句为:

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

        对于 [ if not exists ] ,翻译为:"如果改数据库不存在" 。这段代码可写可不写,没有强制要求。主要区别是,若没有加上这段代码且存在该数据库,则会报错;若加上这段代码且存在该数据库。则不会报错。

        已知已经存在 db01 这个数据库了,通过 create database db01; 再来创建时,会报错。如果加上 if not exists ,那么及时创建相同的数据库也不会报错,当然也不可能创建一个一摸一样的数据库。

        2.1.2 查看数据库操作

查看全部数据库的 SQL 语句:

 show databases;

        需要注意的是,这里的 databases 记得加上 s 且该后面结尾加上 ";" 。 

查看的结果为:

        在红色框里面的数据库是 MySQL 自带的数据库,万万不可对这四个数据库进行任何危险操作。否则 MySQL 出现问题,需要重新安装了。

        除了这个查看全部数据库操作之外,还有查看当前使用数据库操作。

 查看当前数据库的 SQL 语句:

select database();

        这里的 database 是没有加上 s 的且注意是加上 () 。

操作结果为:

        当前使用的数据库为 db01 。

        2.1.3 使用数据库操作

使用数据库的 SQL 语句:

use 数据库名;

        简单来说,就是选择指点的数据库。

操作结果为:

        2.1.4 删除数据库操作

删除数据库的 SQL 语句:

drop database if exists 数据库名;

        若存在该数据库,删除不会报错;如果没有加上 if exists 这段代码,那么当不存在该数据库而要删除该数据库时,会报错。

操作结果为:

        删除该数据库后,查看全部数据时,不存在 db01 这个库了。显然是删除成功了。

        2.2 DDL 语言 - 定义表格

        在对表进行操作之前,需要先选择数据库。DDL 来定义表格的操作有:创建表格、查询表格、修改表格、删除表格。

        2.2.1 创建表格操作

        1)在创建表格之前,先来简单了解约束

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

        约束目的:保证数据中数据的正确性、有效性和完整性。

约束类型如下:

        2)在创建表格之前,再来简单了解数据类型

        数据类型可以简单理解为,该字段需要存储空间的大小。总共分为三大类:数值类型、字符串类型、日期时间类型。

数值类型如图:

字符串常见类型如图:

         两者区别:举例子 char(10) 与 varchar(10) ,对于 char(10) 来说,不管空间是否占满,都要消耗 10 个字节大小的空间。而对于 varchar(10) 来说,若空间没有占满 10 个字节大小,就会按照消耗实际存储空间大小。

日期时间类型如图:

3)创建表格的 SQL 语句:

create table 表名(
    字段 1 字段类型 [约束] [ comment 字段1注释 ],

    ......
    
    字段 n 字段类型 [约束] [ comment 字段n注释] 
) [comment 表注释];

实际例子演示: 

create table tb_user(
    id tinyint unsigned auto_increment primary key comment '唯一标识',
    username varchar(20) not null unique comment '用户名',
    name varchar(20) not null comment '名字',
    age tinyint unsigned comment '年龄',
    gender char(1) default '男' comment '性别,默认为男性'
)comment '用户表';

操作结果为:

        这就可以得到一个表格。之后就可以在表格中添加数据了。

        2.2.2 查询表格操作

查询当前该数据库中的全部表的 SQL 语句:

-- 查看表
show tables;

操作结果为:

查询该表的结构的 SQL 语句:

-- 查看表的结构
desc 表名;

操作结果为:

        注意查询两者的区别:一个是查询所有的表、另一个是查询指定表的结构

        2.2.3 删除表格操作

删除表格的 SQL 语句为:

-- 删除表
drop table 表名;

        2.2.4 修改表格操作

1)添加字段的 SQL 语句:

alter table 表名 add 字段名 类型 [约束];

 2)修改字段类型的 SQL 语句:

alter table 表名 modify 字段名 新数据类型;

3)修改字段名和字段类型的 SQL 语句:

alter table 表名 change 旧字段名 新字段名 类型 [约束];

4)删除字段的 SQL 语句:

alter table 表名 drop column 字段名;

5)修改表名的 SQL 语句:

rename table 旧表名 to 新表名;

 结合以上操作举个修改例子:

-- 增加表中的列
alter table tb_user add qq char(10) comment 'QQ号';

-- 修改字段类型
alter table tb_user modify qq char(22);

-- 修改字段名和字段类型
alter table tb_user change qq qq_name char(20);

-- 删除表中的指定的字段
alter table tb_user drop column qq_name;

-- 修改表中的名字
rename table tb_user to tb_user2;
rename table tb_user2 to tb_user;

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1471261.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

leetcode-hot100-双指针

剪枝,减少不必要的计算 283. 移动零 示例 1: 输入: nums [0,1,0,3,12] 输出: [1,3,12,0,0] 示例 2: 输入: nums [0] 输出: [0] 请注意 ,必须在不复制数组的情况下原地对数组进行操作。 第一印象:使用一个辅助数组,同时以…

蓝桥杯-答疑

原题链接:用户登录 答疑 题目描述 有 n 位同学同时找老师答疑。每位同学都预先估计了自己答疑的时间。 老师可以安排答疑的顺序,同学们要依次进入老师办公室答疑。一位同学答疑的过程如下 1.首先进入办公室,编号为 的同学需要 s,…

卖家横扫海外露营市场的机会来了,赛盈分销预测2024年消费者新需求

甲辰龙年开篇,就要迎来国外野营浪潮了,希望点开这篇推送的你,红红火火、热辣滚烫一整年。每年的3月份,海外用户对露营设备的搜索开始迅速增长。今天和大家聊聊露营市场出海的一些布局方向。 全球露营商品的市场规模愈发壮大&#…

Wireshark过滤DNS协议包语法实战

背景 现网DNS服务器发现CPU突增,发现有可能是客户恶意发起的随机子域名扫描,对服务器进行抓包分析,记录下当时的操作。 抓包 执行命令 tcpdump -iany port 53 and host $ip -nnv -w $ip.pcap进行抓包导出到本地,使用Wireshark进…

网站开发--详解Servlet

💕"Echo"💕 作者:Mylvzi 文章主要内容:网站开发–详解Servlet 一.基本介绍 tomcat是Java中开发服务器的重要的一个工具,任何开发的服务器都要部署在tomcat之上,可以说tomcat是所有服务器的底座,为了更好的操作http,to…

网络安全Web Hacking 101笔记,2023年最新整理!

在计算机技术如日中天的今天,Web安全问题也接踵而来。但Web安全却“入门简单精通难”,涉及技术非常多且广,学习阻力很大。 为此今天分享一份94页的《Web Hacking 101》笔记,包含Web安全知识,例如HTML注入、XSS、CSRF、…

MATLAB Function转C代码实战

文章目录 前言1. 准备工作2. 使用MATLAB Coder2.1 确定输入输出的类型2.2 MATLAB Coder过程 3. 代码调整和优化4. 编译和测试5. 性能分析和优化结语 前言 在科学与工程领域,MATLAB(Matrix Laboratory)是一种广泛使用的高级技术计算软件&…

Spring Boot 接口请求日志(基于AOP和自定义注解)

一、需求 在Spring Boot应用中,实现接口请求日志记录功能,要求能够记录包括请求方法、接口路径及请求参数等核心信息,并提供灵活的开关配置。 二、方案概述 采用AOP(面向切面编程)结合自定义注解的方式实现。 具体…

1904_ARM Cortex M系列芯片特性小结

1904_ARM Cortex M系列芯片特性小结 全部学习汇总: g_arm_cores: ARM内核的学习笔记 (gitee.com) ARM Cortex M系列的MCU用过好几款了,也涉及到了不同的内核。不过,关于这些内核的基本的特性还是有些不了解。从ARM的官方网站上找来了一个对比…

《游戏引擎架构》 -- 学习4

资源及文件系统 文件系统 游戏引擎的文件系统API通常提供以下功能: 搜需路径:是含一串路径的字符串,各路径之间以特殊字符(如冒号或分号)分隔,找文件时就会从这些路径进行搜寻。例如在命令行下执行程序&a…

2023年06月CCF-GESP编程能力等级认证Scratch编程一级真题解析

一、单选题(共10题,共30分) 第1题 以下不属于计算机输出设备的有( )。 A:麦克风 B:音箱 C:打印机 D:显示器 答案:A 第2题 点击下面哪个图标可以使舞台区…

真香!NineData SQL开发全面适配 GaiaDB

2 月,新年伊始,NineData 重磅发布,提供了对百度云原生关系型数据库 GaiaDB 的支持。 这一次的发布不仅仅是简单的数据源支持,而是覆盖了整个 SQL 开发能力的重要发布,意味着您已经可以完整地使用 NineData SQL 开发的…

Redis高并发分布锁实战

Redis高并发分布锁实战 问题场景 场景一: 没有捕获异常 // 仅仅加锁 // 读取 stock15 Boolean ret stringRedisTemplate.opsForValue().setIfAbsent("lock_key", "1"); // jedis.setnx(k,v) // TODO 业务代码 stock-- stringRedisTemplate.delete(&quo…

AI时代 编程高手的秘密武器:世界顶级大学推荐的计算机教材

文章目录 01 《深入理解计算机系统》02 《算法导论》03 《计算机程序的构造和解释》04 《数据库系统概念》05 《计算机组成与设计:硬件/软件接口》06 《离散数学及其应用》07 《组合数学》08《斯坦福算法博弈论二十讲》 清华、北大、MIT、CMU、斯坦福的学霸们在新学…

MySQL篇—持久化和非持久化统计信息介绍(第一篇,总共三篇)

☘️博主介绍☘️: ✨又是一天没白过,我是奈斯,DBA一名✨ ✌✌️擅长Oracle、MySQL、SQLserver、Linux,也在积极的扩展IT方向的其他知识面✌✌️ ❣️❣️❣️大佬们都喜欢静静的看文章,并且也会默默的点赞收藏加关注❣…

Spring事务模板及afterCommit存在的坑

大家好,我是墨哥(隐墨星辰)。今天的内容来源于两个线上问题,主要和大家聊聊为什么支付系统中基本只使用事务模板方法,而不使用声明式事务Transaction注解,以及使用afterCommit()出现连接未按预期释放导致的…

科技云报道:黑马Groq单挑英伟达,AI芯片要变天?

科技云报道原创。 近一周来,大模型领域重磅产品接连推出:OpenAI发布“文字生视频”大模型Sora;Meta发布视频预测大模型 V-JEPA;谷歌发布大模型 Gemini 1.5 Pro,更毫无预兆地发布了开源模型Gemma… 难怪网友们感叹&am…

不可错过的Telegram神器:十个实用Telegram机器人介绍

Telegram机器人是基于Telegram平台上的自动化程序,通过Telegram Bot API来与用户交互,执行各种任务,大大拓宽了Telegram这个软件的功能。不只是可以进行简单的自动化任务如提醒服务、天气预报、个人助理,也可以完成复杂的商业行为…

SpringBoot自带的tomcat的最大连接数和最大的并发数

先说结果:springboot自带的tomcat的最大并发数是200, 最大连接数是:max-connectionsaccept-count的值 再说一下和连接数相关的几个配置: 以下都是默认值: server.tomcat.threads.min-spare10 server.tomcat.threa…

基于Pytorch的猫狗图片分类【深度学习CNN】

猫狗分类来源于Kaggle上的一个入门竞赛——Dogs vs Cats。为了加深对CNN的理解,基于Pytorch复现了LeNet,AlexNet,ResNet等经典CNN模型,源代码放在GitHub上,地址传送点击此处。项目大纲如下: 文章目录 一、问题描述二、数据集处理…