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

 🔥博客主页: 【小扳_-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.hqwc.cn/news/492239.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

误操作引发分区危机?数据恢复实战指南!

一、误分区遭遇数据危机 在使用电脑或存储设备的过程中,我们都可能遭遇一个令人头疼的问题——不小心分区了。这通常是由于用户的误操作、软件故障或硬件故障导致的。一旦遭遇误分区,原本存储的重要数据可能会变得难以访问,甚至面临丢失的风…

力扣技巧题:丢失的数字

先排后找可以让结果更简单 int cmp(const void* a, const void* b){return *(int*)a - *(int*)b; } int missingNumber(int* nums, int numsSize){qsort(nums, numsSize, 4, cmp);for(int i0; i<numsSize; i){if(nums[i] i){continue;}else{return i;}}return numsSize; }…

Nginx----高性能的WEB服务端(二)

一、高级配置 1、网页的状态页 基于nginx 模块 ngx_http_stub_status_module 实现&#xff0c;在编译安装nginx的时候需要添加编译参数 --with-http_stub_status_module&#xff0c;否则配置完成之后监测会是提示语法错误注意: 状态页显示的是整个服务器的状态,而非虚拟主机的…

测试C#使用ViewFaceCore实现图片中的人脸遮挡

基于ViewFaceCore和DlibDotNet都能实现人脸识别&#xff0c;准备做个遮挡图片中人脸的程序&#xff0c;由于暂时不清楚DlibDotNet返回的人脸尺寸与像素的转换关系&#xff0c;最终决定使用ViewFaceCore实现图片中的人脸遮挡。   新建Winform项目&#xff0c;在Nuget包管理器中…

飞天使-k8s知识点22-kubernetes实操7-ingress

文章目录 ingress环境准备准备service和pod验证效果 https 代理效果 ingress 在 Kubernetes 中&#xff0c;Ingress 是一种 API 对象&#xff0c;它管理外部访问集群内部服务的规则。你可以将其视为一个入口&#xff0c;它可以将来自集群外部的 HTTP 和 HTTPS 路由到集群内部的…

算法沉淀——动态规划之路径问题(leetcode真题剖析)

算法沉淀——动态规划之路径问题 01.不同路径02.不同路径 II03.珠宝的最高价值04.下降路径最小和05.最小路径和06.地下城游戏 01.不同路径 题目链接&#xff1a;https://leetcode.cn/problems/unique-paths/ 一个机器人位于一个 m x n 网格的左上角 &#xff08;起始点在下图…

KubeSphere 镜像构建器(S2I)服务证书过期解决方案

目前 KubeSphere 所有 3.x.x 版本&#xff0c;如果开启了 DevOps 模块并使用了镜像构建器功能&#xff08;S2I&#xff09;都会遇到证书过期问题。 解决方法 已开启 DevOps 模块 下载这个更新 S2I 服务证书压缩包&#xff0c;上传到任一可以访问 K8s 集群的节点&#xff1b; …

一键解锁本地大型语言模型!Ollama框架让你轻松运行Gemma

想要在本地运行大型语言模型吗&#xff1f; Ollama框架提供了这样的机会。 这个框架是专为在Docker容器中部署LLM而设计的&#xff0c;简化了部署和管理流程。 安装Ollama后&#xff0c;你只需执行一条命令&#xff0c;即可在本地运行开源大型语言模型。 它将模型权重、配置…

数据可视化基础与应用-01-数据可视化概述

总结 本系列是数据可视化基础与应用的第02篇&#xff0c;主要介绍数据可视化概述&#xff0c;包括数据可视化的历史&#xff0c;原理&#xff0c;工具等。 认识大数据可视化 数据是什么 信息科学领域面临的一个巨大挑战是数据爆炸。据IDC Global DataSphere统计&#xff0c…

LeetCode 第一题: 两数之和

文章目录 第一题: 两数之和题目描述示例 解题思路Go语言实现 - 一遍哈希表法C实现算法分析 排序和双指针法Go语言实现 - 排序和双指针法C算法分析 暴力法Go语言实现 - 暴力法C算法分析 二分搜索法Go语言实现 - 二分搜索法C算法分析 第一题: 两数之和 ‍ 题目描述 给定一个整…

JS基础之常用调试语句

JS基础之常用调试语句 目录 JS基础之常用调试语句打印控制台consolelog日志级别error错误信息warn警告级别 警告框alert输入框prompt 打印控制台console log日志级别 <script>let name "张三"console.log(name) </script>error错误信息 <script&g…