当前位置: 首页 > news >正文

MySQL——2、库的操作和表的操作

库的操作和表的操作

  • 1、创建和删除数据库
  • 2、字符集和校验规则
  • 3、校验规则对数据库的影响
  • 4、操纵数据库
  • 5、库的备份与恢复
  • 6、表的操作

1、创建和删除数据库

在这里插入图片描述

首先进入数据库,我们可以使用show dabatases; 查看数据库列表:
在这里插入图片描述

创建一个名为d1的数据库:create database d1;
在这里插入图片描述
根据第一篇文章所讲,我们创建一个数据库,本质上就是在/var/lib/mysql目录下创建一个目录文件。

删除名为d1的数据库:drop database d1;
另外,我们可以使用system clear;进行清屏,效果类似于Linux下的clear命令。

在这里插入图片描述
删除数据库,本质上就是将/var/lib/mysql下的目录删除掉。


2、字符集和校验规则

创建数据库的时候,有两个编码集:
1、数据库编码集——数据库未来存储数据的编码。
2、数据库校验集——支持数据库进行字段比较使用的编码,本质也是一种读取数据库中数据采用的编码格式。
数据库无论对数据做任何操作,都必须保证操作和编码必须是编码一致的。

查看系统默认字符集以及校验规则:

show variables like 'character_set_database';
show variables like 'collation_database';

在这里插入图片描述
可以看到默认采用的数据库字符编码为utf8mb3,采用的字符校验规则编码为utf8mb3_general_ci。

查看数据库支持的字符集:

show charset;

查看数据库支持的字符校验规则:

show collation;

创建数据库并设置编码为utf8mb3:

create database if not exists d2 charset=utf8mb3;
create database if not exists d3 character set utf8mb3;

在这里插入图片描述
if not exists可带可不带,如果带了不存在就会创建数据库,如果已经存在就不会创建。

创建字符集为utf8mb3,并带检验规则为utf8mb3_general_ci的数据库:
在这里插入图片描述

创建字符集为gbk,并带校验规则为gbk_chinese_ci的数据库:
在这里插入图片描述


3、校验规则对数据库的影响

创建数据库,我们不指定字符集,默认就是utf8mb3。下面我们创建两个数据库,采用默认的字符集,设置不同的校验规则,第一个数据库test1校验规则为utf8mb3_general_ci,第二个为utf8mb3_bin。第一个校验规则是不区分大小写的,第二个是区分大小写的,在我们后面实验可以看出来。

首先创建test1数据库,校验规则为utf8mb3_general_ci,并插入一些数据:
在这里插入图片描述

下面试着查看一下person表的所有数据:
在这里插入图片描述

创建test2数据库,校验规则为utf8mb3_bin,并插入一些数据:
在这里插入图片描述

下面我们进行查询:
在这里插入图片描述
后面跟where子句,查询name为a的信息。这是在test2数据库下的,字符校验规则为utf8mb3_bin,是区分大小写的,因此只查出了一行信息。下面我们切到数据库test1,其字符检验规则为utf8mb3_general_ci,是不区分大小写的,我们同样查看一下:
在这里插入图片描述
由于不区分大小写,所以查出了a和A。

下面我们再对person表进行排序输出,首先是test1:
在这里插入图片描述
默认使用order by排序,排的是升序,再加上不区分大小写,所以结果如图所示。
接着我们切换test2继续看看:

在这里插入图片描述
由于test2区分大小写,而大写字母的ASCII码值是小于小写字母的ASCII码值的,所以排序结果如图。


4、操纵数据库

1、删除某个数据库:
在这里插入图片描述

2、查看数据库:
在这里插入图片描述

确认自己是在哪个数据库:select database();
在这里插入图片描述

查看创建数据库时的命令:show create database db_name;
在这里插入图片描述

3、修改数据库:
在这里插入图片描述
比如修改test2数据库的字符集为gbk,校验规则为gbk_chinese_ci:
在这里插入图片描述


5、库的备份与恢复

5.1、库的备份
在这里插入图片描述

5.2、库的恢复
在这里插入图片描述

下面我们将test1数据库备份到/home/zzy/MySQL目录下:
在这里插入图片描述

删除test1数据库并进行source还原:
在这里插入图片描述

5.3、注意事项:
在这里插入图片描述

5.4、查看连接情况:
在这里插入图片描述
在这里插入图片描述


6、表的操作

6.1、创建表
在这里插入图片描述

下面看样例:
在这里插入图片描述
首先来看创建表的语法,属性名后面跟数据类型,数据类型我们会在下一篇进行讲解,comment后面跟对该列属性的描述信息,最后我们还可以设置字符集、校验规则、存储引擎。我们创建的users表的存储引擎为M有ISAM,查看对应数据库目录下的文件,发现有两个文件.MYD和.MYI,MyISAM是将数据库索引和数据分开存储的。

在这里插入图片描述
创建表user2,采用的存储引擎为InnoDB,我们发现数据库目录下只创建了一个文件。我们也可以不写字符集、校验规则、存储引擎,默认会采用数据库的。

在这里插入图片描述
直接创建表user3,我们发现默认采用的就是InnoDB的存储引擎,因为之前我们在配置了mysqld.cnf文件。


6.2、查看表结构
首先是查看数据库中有哪些表:show tables;
在这里插入图片描述

然后是查看表结构:
在这里插入图片描述

在这里插入图片描述

还可以查看创建表时的详细信息:

show create table user1;
show create table user1 \G**

在这里插入图片描述


6.3、修改表
在项目实际开发中,经常修改某个表的结构,比如字段名字,字段大小,字段类型,表的字符集类型,表的存储引擎等等。我们还有需求,添加字段,删除字段等等。这时我们就需要修改表。

ALTER TABLE tablename ADD (column datatype [DEFAULT expr][,column datatype]...);
ALTER TABLE tablename MODIfy (column datatype [DEFAULT expr][,column datatype]...);
ALTER TABLE tablename DROP (column);

修改表名:
在这里插入图片描述
将表名修改为user:rename to中的to可以省略。
在这里插入图片描述

插入一些数据:
在这里插入图片描述
表明后面跟括号,括号里面可以写要插入的列。或者直接不写,表示要插入所有列。

下面我们添加一列属性:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
我们添加了一列属性image_path用来存储用户的头像路径,添加在birthday后面。由于历史数据不存在,所以我们查询表信息的时候,这一列就是NULL。

下面我们对一列属性字段进行修改:
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
我们在查看创建表的信息,我们发现name这一列之前是有comment描述的,现在就没有了,所以修改时是直接覆盖的。

删除某一列属性:
在这里插入图片描述
在这里插入图片描述

不修改表名,而是修改某一列的名称:下面将name这一列修改为xingming
在这里插入图片描述


6.4、删除表
在这里插入图片描述
在这里插入图片描述

http://www.xdnf.cn/news/481807.html

相关文章:

  • 割点与其例题
  • 管理工具导入CSV文件,中文数据乱码的解决办法。(APP)
  • 从类的外部访问静态成员:深入理解C#静态特性
  • C语言编程中的时间处理
  • 【学习笔记】机器学习(Machine Learning) | 第七章|神经网络(1)
  • Vue3中setup运行时机介绍
  • MyBatis—动态 SQL
  • 网安面试经(1)
  • MySQL8.x新特性:与mysql5.x的版本区别
  • SpringBoot--Bean管理详解
  • 3D生成新突破:阶跃星辰Step1X-3D开源,可控性大幅提升
  • python + flask 做一个图床
  • ThinkPad X250电池换电池芯(理论技术储备)
  • windows系统中下载好node无法使用npm
  • STM32控制电机
  • duxapp 2025-03-29 更新 编译结束的复制逻辑等
  • MySQL的触发器
  • ubuntu 20.04 更改国内镜像源-阿里源 确保可用
  • 适合学校使用的桌面信息看板,具有倒计时、桌面时钟、课程表、天气预报、自动新闻联播、定时关机、消息通知栏、随机点名等功能。
  • CMU-15445(4)——PROJECT#1-BufferPoolManager-Task#2
  • 【软件工程】符号执行与约束求解缺陷检测方法
  • MySQL性能优化
  • RAG-MCP:基于检索增强生成的大模型工具选择优化框架
  • Cross-Site Scripting(XSS)
  • AT9850B—单北斗导航定位芯片
  • 【leetcode】94. 二叉树的中序遍历
  • 逻辑回归(二分类)
  • Linux的日志管理
  • 青少年ctf平台应急响应-应急响应2
  • 在vue3中使用Cesium的保姆教程