数据库mysql-对数据库和表的DDL命令

文章目录

  • 一、什么是DDL操作
  • 二、数据库编码集和数据库校验集
  • 三、使用步骤
    • 对数据库的增删查改
      • 1.创建数据库
      • 2.进入数据库
      • 3.显示数据库
      • 4.修改数据库
        • mysqldump
      • 5.删除数据库
    • 对表的增删查改
      • 1.添加/创建表
      • 2.插入表内容
      • 3.查看表
        • 查看所有表
        • 查看表结构
        • 查看表内容
      • 4.修改表
        • 修改表的名字
        • 修改表的结构
          • 对表结构的增加
          • 对表结构的其中一列属性进行修改
          • 对表结构的其中一列改名并修改属性
          • 对表结构的删除
        • 删除表


一、什么是DDL操作

DDL(Data Definition Language),是数据定义语言的缩写,它是SQL(Structured Query Language)语言的一个子集,用于定义或修改数据库的结构。DDL主要包括创建(CREATE)、修改(ALTER)、删除(DROP)等操作。

二、数据库编码集和数据库校验集

数据库编码集就是当对数据库内容进行存储时,采用怎样的编码格式来存储。
数据库校验集就是当对数据库内容进行读取时,采用怎样的编码格式来读取。

所以,为了保证数据库在读取数据时,不会产生乱码,我们就需要让数据库的编码集和校验集进行对应,比如说用utf8的格式进行存储,那么也必须使用utf8的格式进行读取!

如何查看自己的mysql支持怎样的编码集和校验集?
show charset; 查看编码集
show collation; 查看校验集

如何查看当前的默认的编码集和校验集?
show variables like 'character_set_database';
show variables like 'collation_database';
在这里插入图片描述

三、使用步骤

对数据库的增删查改

1.创建数据库

现在我要创建一个名为test的数据库,应该怎么创建呢?

  1. create database test; 这是最简单的写法。
  2. create database if not exists test; 加上if not exists 表示如果不存在该数据库才创建。
  3. create database if not exists test charset=utf8mb3 collate=utf8mb3_general_ci; 加上charset=utf8mb3,让该数据库默认采用utf8mb3的编码集格式,collate=utf8mb3_general_ci让该数据库默认采用utf8mb3_general_ci的编码集格式。这里的charset=utf8mb3还可以写成 character set utf8mb3;collate=utf8mb3_general_ci还可以写成collate utf8mb3_general_ci。

当我们创建一个数据库之后,我们可以在/var/lib/mysql路径下找到对应的数据库目录。

2.进入数据库

use database_name;
在这里插入图片描述
进入了这个数据库,我们才能再对数据库中的表进行增删查改。

3.显示数据库

show databases;
在这里插入图片描述
如何查看我当前所在的数据库?
select database();
在这里插入图片描述

4.修改数据库

对数据库进行修改只能修改其字符编码集和字符校验集。
alter database test charset=gbk collate=gbk_chinese_ci;
在这里插入图片描述
SELECT DEFAULT_CHARACTER_SET_NAME, DEFAULT_COLLATION_NAME
FROM information_schema.SCHEMATA
WHERE SCHEMA_NAME = DATABASE();

那有没有修改数据库名字的操作呢? 以前有,但是被移除了,因为不安全!
如果想要修改数据库的名字,应该使用mysqldump进行备份!

首先这里需要插入一个前备知识。
当输入show create database test;
在这里插入图片描述
需要注意的是,这里的/*!40100 DEFAULT CHARACTER SET gbk / /!80016 DEFAULT ENCRYPTION=‘N’ */并不是注释,而是可变选项!

所以这个指令是什么意思? 这个指令是告诉我们如果要创建一个test数据库,需要输入怎样的指令。


mysqldump

mysqldump是一个bash命令,并不是mysql命令,这个命令程序在安装mysql的时候也顺带安装上了。
我们如果要将某个数据库进行备份,就可以使用这个命令。

我们先在test库先创建一个表,并插入一些内容以便等会看实验现象。

在这里插入图片描述

此时我们再退出数据库,并进入一个空目录下,执行命令
mysqldump -P 3306 -u root -p -B test >./test.sql
再使用ls就可看到,此目录多出一个test.sql的文件。
我们可以打开文件,看文件的内容是什么。
在这里插入图片描述

如果细心观察就可以看出这就是一串创建数据库、创建表并插入数据的mysql指令。
所以,mysqldump的备份其实是备份“指令”。

那么怎么导入这个文件为我们创建数据库呢?
再登录我们的mysql,将我们的test数据库删掉。
输入source /home/fengjunziya/test/lesson37_mysqltest/test.sql;
在这里插入图片描述
它就为我们执行了那个文件的命令,也就达到了备份导入的作用。

可是怎么修改数据库名字呢?
首先在使用mysqldump命令时不能加上-B
mysqldump -P3306 -uroot -p test > test.sql
在这里插入图片描述
这时我们就可以看到文件内的并没有创建数据库的指令。
所以我们在使用source导入的时候,就需要先创建一个数据库(新名字)再进行导入。

create database hello; 创建hello数据库
use hello; 进入hello数据库
source /home/fengjunziya/test/lesson37_mysqltest/test.sql; 导入文件指令
select database(); 查看当前所在数据库
select * from user; 查看user表中的数据内容
在这里插入图片描述
最后也是被拷贝进来了。

5.删除数据库

删除数据库很简单,但是一旦删除数据库,该数据库内的数据将全部被清空,所以需要谨慎!

drop database database_name;

需要注意的是,对于数据库而言,不论是修改还是删除,都是有风险的行为,因为我们的数据库一般都是直接与上层服务连接,一旦修改数据库的名字,或者删除数据库都可能会造成上层服务出现问题!


对表的增删查改

1.添加/创建表

创建表的格式怎么写呢?
create table table_name(...);
1.
还可以加入 if not exists
在这里插入图片描述
还可以加入comment 添加描述
在这里插入图片描述
再复杂点还可以指定字符编码集、字符校验集还有存储引擎
在这里插入图片描述

2.插入表内容

insert into table_name values (...), (...), ... ;
在这里插入图片描述
insert是下一章的DML操作,这里大家先接触一下。

3.查看表

查看所有表

show tables;
在这里插入图片描述

查看表结构

desc table_name;
在这里插入图片描述

在这里插入图片描述

查看表内容

select * from table_name;
在这里插入图片描述
select也是下一章的DML命令。

4.修改表

修改表的名字

alter table table_name rename (to) new_name;
在这里插入图片描述

修改表的结构
对表结构的增加

如果要对表原有的结构再加一栏。
alter table table_name add newfield type;

在这里插入图片描述
alter table teachers add birthday varchar(20) after gender; after gender代表是在gender后面加一栏。

对表结构的其中一列属性进行修改

alter table table_name modify field_name type;
在这里插入图片描述

对表结构的其中一列改名并修改属性

alter table table_name change field_name newfield_name type;

在这里插入图片描述

对表结构的删除

alter table table_name drop field_name;
在这里插入图片描述

删除表

drop table table_name;
在这里插入图片描述
一旦删除表,该表的数据将全部被清空,所以需要谨慎!

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

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

相关文章

SpringBootWeb 篇-入门了解 Swagger 的具体使用

🔥博客主页: 【小扳_-CSDN博客】 ❤感谢大家点赞👍收藏⭐评论✍ 文章目录 1.0 Swagger 介绍 1.1 Swagger 和 Yapi 的使用场景 2.0 Swagger 的使用方式 2.1 导入 knife4j 的 maven 坐标 2.2 在配置类中加入 knife4j 相关配置 2.3 设置静态资源…

oracle控制文件详解以及新增控制文件

文章目录 oracle控制文件1、 控制文件包含的主要信息如下:2、查看目前系统的控制文件信息,主要是查看相关的字典视图 oracle新增控制文件 oracle控制文件 控制文件是一个很小的二进制文件(10MB左右),含有数据库结构信息,包括数据…

Open3D 点云Kmeans聚类算法

目录 一、概述 1.1算法介绍 1.2实现步骤 二、代码实现 三、实现效果 3.1原始点云 3.2聚类后点云 前期试读,后续会将博客加入该专栏,欢迎订阅Open3D与点云深度学习的应用_白葵新的博客-CSDN博客 一、概述 1.1算法介绍 聚类是一种将数据集分组的方…

Next.js的静态生成和服务端渲染,你搞懂了吗?

Next.js的静态生成和服务端渲染,你搞懂了吗? 嘿,各位前端小伙伴们!今天咱们来聊聊Next.js中那令人又爱又恨的静态生成(Static Generation)和服务端渲染(Server-side Rendering)。这…

双语|如何给教授/教职员发送电子邮件

斯坦福大学提出建议,指导学生如何给教授或者教职员发送电子邮件,这些建议对于访问学者、博士后及联合培养博士也很适用,故知识人网小编用双语对照的形式进行节选转发。 Whether youre writing a professor to ask for an extension or to loo…

多平台支持,制作的电子画册随时随地都可以查看

​在数字化的时代背景下,电子画册以其便捷的传播方式、丰富的视觉表现形式,赢得了大众的喜爱。它不仅能够在个人电脑上展现,还能通过智能手机、平板电脑等多种移动设备随时随地被访问和浏览。这种跨平台的支持,使得无论你身处何地…

高精度定位与AI技术的深度融合——未来智慧世界的钥匙

引言在当今迅速发展的科技时代,精确定位和人工智能(AI)技术正在快速推动各领域的创新与变革。高精度定位结合AI技术所产生的融合效应,正在加速智慧城市、智能驾驶、智能物流以及许多其他领域的实现。这篇文章将详细探讨高精度定位…

基于Java技术的校园台球厅人员与设备管理系统

你好呀,我是计算机学姐码农小野!如果有相关需求,可以私信联系我。 开发语言:Java 数据库:MySQL 技术:SpringBoot框架 工具:Eclipse、Navicat、Maven 系统展示 首页 用户注册界面 球桌信息…

C++基础编程100题-023 OpenJudge-1.4-03 奇偶数判断

更多资源请关注纽扣编程微信公众号 http://noi.openjudge.cn/ch0104/03/ 描述 给定一个整数,判断该数是奇数还是偶数。 输入 输入仅一行,一个大于零的正整数n。 输出 输出仅一行,如果n是奇数,输出odd;如果n是偶…

Twelve Labs:专注视频理解,像人类一样理解视频内容

在当今数字化世界中,视频已成为人们获取信息和娱乐的主要方式之一。 AI视频生成领域的竞争也很激烈,Pika、Sora、Luma AI以及国内的可灵等,多模态、视频生成甚至也被视为大模型发展的某种必经之路。然而,与文本生成相比&#xff…

深入解析发生 OOM 的三大场景

深入解析 OOM 的三大场景 什么是 OOM?一、堆内存溢出 ( Heap OOM )原因分析解决方案 二、栈内存溢出(Stack OOM)原因分析解决方案 三、方法区内存溢出(Metaspace OOM)原因分析解决方案 在Java应用程序开发中&#xff0…

记录一次Nginx的使用过程

一、Docker安装配置nginx 1.拉取镜像 docker pull nginx2.创建挂载目录 启动前需要先创建Nginx外部挂载目录文件夹 主要有三个目录 conf:配置文件目录log:日志文件目录html:项目文件目录(这里可以存放web文件) 创建挂…

oslo_i18n学习小结

背景 代码均为开源代码 基于yoga版本,需要对openstack某服务做翻译,了解到oslo_i18n有翻译功能,配置oslo_i18n来给组件进行翻译 用法 用法 每个服务自己会带一个i18n.py的文件,如果要对日志进行翻译,从i18n导入_&…

逆变-TI视频课笔记

目录 1、全桥逆变 1.1、全桥逆变SPWM仿真 2、半桥逆变 2.1、本课小结 3、多重逆变(间接的“交-直-交-直”变流) 3.1、多电平逆变的目的 3.2、单逆变桥 3 电平控制时序 3.3、大功率设备的功率因数 3.4、本课小结 视频链接:文字…

Zed 编辑器发布了原生 Linux 版本

由 Rust 编写、GPU 加速的 Zed 文本编辑器终于提供了正式的 Linux 原生版本!在过去的几个月里,Zed 的 Linux 支持取得了长足的进步,现在已经进入了更正式的阶段。 今天,这款由前 Atom 开发人员创建的现代开源代码编辑器现在在 Li…

vue vite+three在线编辑模型导入导出

文章目录 序一、1.0.0版本1.新增2.编辑3.导出4.导入 二、2.0.0版本1. 修复模型垂直方向放置时 模型会重合4. 修复了导出导入功能 现在是1:1导出导入5. 新增一个地面 视角看不到地下 设置了禁止编辑地面 地面设置为圆形6. 新增功能 可选择基本圆形 方形 圆柱形等模型以及可放置自…

网络 闲聊

闲谈 闲话 网络安全——>网络空间安全 网络空间:一个由信息基础设备组成互相依赖的网络 继:海、陆、空、天、的第五大空间 信息安全的一个发展: 通信保密阶段---计算机安全---信息系统安全---网络空间安全 棱镜门事件 棱镜计划&…

Java中的Set系列集合超详解

Set List是有序集合的根接口,Set是无序集合的根接口,无序也就意味着元素不重复。更严格地说,Set集合不包含一对元素e1和e2 ,使得e1.equals(e2) ,并且最多一个空元素。   使用Set存储的特点与List相反:元素…

腾讯云如何设置二级域名?

什么是二级域名? 例如我已申请的域名为: test.com //顶级域名 现在我开发的应用要部署到二级域名: blog.test.com 1、打开腾讯云控制台的我的域名,然后点击解析 2、在我的解析页面点击添加记录,然后需注意红色方框处…

生物素标记的柚皮苷探针;Biotin-Naringin

生物素标记的柚皮苷探针(Biotin-Naringin)是一种结合了生物素(Biotin)和柚皮苷(Naringin)特性的化合物,它在有机合成及药物化学技术领域具有重要意义。以下是对该探针的详细解析: 一…