MySQL对数据库和表进行DDL命令的操作代码

 更新时间:2024年07月18日 09:43:46   作者:风君子吖  
DDL(Data Definition Language),是数据定义语言的缩写,它是SQL(Structured Query Language)语言的一个子集,用于定义或修改数据库的结构,本文给大家介绍了MySQL对数据库和表进行DDL命令的操作,需要的朋友可以参考下

一、什么是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;

在这里插入图片描述

一旦删除表,该表的数据将全部被清空,所以需要谨慎!

以上就是MySQL对数据库和表进行DDL命令的操作代码的详细内容,更多关于MySQL数据库和表DDL的资料请关注脚本之家其它相关文章!

相关文章

  • 小型Drupal数据库备份以及大型站点MySQL备份策略分享

    小型Drupal数据库备份以及大型站点MySQL备份策略分享

    为了防止web服务器出现故障而引起的数据丢失,数据库备份显得非常重要,以免出现重大损失。本文分析研究一下小型的Drupal站的备份策略以及大型站点的mysql备份策略
    2014-11-11
  • MySQL用户账户管理和权限管理深入讲解

    MySQL用户账户管理和权限管理深入讲解

    这篇文章主要给大家介绍了关于MySQL用户账户管理和权限管理的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2018-12-12
  • MySQL中字段的实际长度的实现示例代码

    MySQL中字段的实际长度的实现示例代码

    MySQL字段的存储长度不仅取决于数据类型,还受字符编码和存储内容的影响,CHAR和VARCHAR字段可以使用LENGTH()和CHAR_LENGTH()函数获取长度信息,下面就来具体介绍一下
    2024-09-09
  • Express项目中操作MySQL的步骤

    Express项目中操作MySQL的步骤

    本文详细介绍了如何在Express项目中操作MySQL数据库,包括安装配置、连接数据库、执行SQL语句以及处理查询结果等关键步骤,感兴趣的朋友跟随小编一起看看吧
    2025-02-02
  • MySQL入门(四) 数据表的数据插入、更新、删除

    MySQL入门(四) 数据表的数据插入、更新、删除

    这篇文章主要介绍了mysql数据库中表的插入、更新、删除非常简单,但是简单的也要学习,细节决定成败,需要的朋友可以参考下
    2018-07-07
  • 深入浅出讲解MySQL的并行复制

    深入浅出讲解MySQL的并行复制

    这篇文章主要给大家介绍了关于MySQL并行复制的相关资料,文中通过示例代码介绍的非常详细,对大家学习或使用mysql具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2018-08-08
  • Xtrabackup使用指南 InnoDB数据备份工具

    Xtrabackup使用指南 InnoDB数据备份工具

    Xtrabackup是一个对InnoDB做数据备份的工具,支持在线热备份(备份时不影响数据读写),是商业备份工具InnoDB Hotbackup的一个很好的替代品
    2011-10-10
  • mysql select语句操作实例

    mysql select语句操作实例

    这篇文章主要介绍了mysql select语句操作实例,本文给出了ORDER BY查询、GROUP BY查询、LIMIT查询、UNION等语句的实例,需要的朋友可以参考下
    2014-12-12
  • MySQL4 File ‘c:\mysql\share\charsets\?.conf’ not found (Errcode: 22)的解决方法

    MySQL4 File ‘c:\mysql\share\charsets\?.conf’ not found (Errc

    File ‘c:\mysql\share\charsets\?.conf’ not found (Errcode: 22) Character set ‘#33′ is not a compiled character set and is not specified in the ‘c:\mysql\share\charsets\Index’ file
    2013-08-08
  • mysql 优化日记

    mysql 优化日记

    mysql 优化日记 使用mysql的朋友可以参考下,大家知道如果mysql优化与没优化性能会相差不少呢。
    2009-07-07

最新评论