【MySQL】数据库和表的操作

目录

🌈前言🌈

[📁 数据库的操作](#📁 数据库的操作)

[📂 创建数据库](#📂 创建数据库)

[📂 字符集和校验规则](#📂 字符集和校验规则)

[📂 删除数据库](#📂 删除数据库)

[📂 修改数据库](#📂 修改数据库)

[📂 查看数据库](#📂 查看数据库)

[📂 备份和还原数据库](#📂 备份和还原数据库)

[📁 表的操作](#📁 表的操作)

[📂 创建表](#📂 创建表)

[📂 查看表](#📂 查看表)

[📂 修改表](#📂 修改表)

[📂 删除表](#📂 删除表)

[📁 总结](#📁 总结)


🌈前言🌈

本期【MySQL】内容主要讲解关于数据库和表的相关操作,包括增删查改等内容,才外拓展讲解关于字符集的有关内容。

📁 数据库的操作

📂 创建数据库

sql 复制代码
create database [if not exists] 数据库名 [charset] [collate];

上面代码中[ ]内的为可选项。

if not exists:表示如果没有就创建,如果有就不创建。

charset:表示设定该数据库的编码集。

collate:表示设定该数据库的校验集。

下面介绍什么是编码集和校验集,如何在创建时设定它们,以及编码集和校验集对数据库的影响。

📂 字符集和校验规则

数据库中有两个字符集,分别是编码集和校验集。

编码集定义了数据库中存储字符的方式,例如UTF-8。

校验集决定了字符如何进行比较和排序,例如utf8_general_ci等。

sql 复制代码
查看数据库支持的编码集和校验集
show variables like 'character_set_database';
show variables like 'collation_database';

我们号创建一个数据库时,校验集分别采用utf8_general_ci (不区分大小写)和 utf8_bin(区分大小写)时,对数据库的影响。

sql 复制代码
create database test1 collate utf8_general_ci;

create database test2 collate utf8_bin;

//都插入 a A b B
insert into person values('a');
insert into person values('A');
insert into person values('b');
insert into person values('B');

以上我们可以看出采用不同校验集对数据库的影响,设定数据库时编码集和校验集必须采用相同的字符集。

📂 删除数据库

sql 复制代码
drop database [if not exists] 数据库名;

删除数据库后,数据库内部看不对应的数据库,对应数据库文件夹被删除,级联删除,里面的数据表全部删除。

📂 修改数据库

sql 复制代码
alter database 数据库名 [charset] [collate];

//例如
 alter database mytest charset=gbk;

修改数据库主要是修改数据库的编码集和校验集。

📂 查看数据库

sql 复制代码
//查看数据库
show databases;

//显示创建数据库的语句
show create database 数据库名;

数据库名字的反引号``,是为了防止使用的数据库名刚好是关键字。

/*!40100 default.... */ 这个不是注释,表示当前mysql版本大于4.01版本,就执行这句话。

📂 备份和还原数据库

sql 复制代码
//备份指令
mysqldump -P3306 -u root -p 密码 -B 数据库名 > 数据库备份存储的文件路径

//还原指令
source 路径;

要注意的是备份指令不是在MySQL中执行的,还原source才要在MySQL中执行。

我们首先进去到保存数据库备份文件路径下,使用备份指令备份相关数据库。

我们在MySQL中执行删除数据库指令,我们在通过还原指令还原出原来的数据库。

📁 表的操作

📂 创建表

sql 复制代码
create table 表名(
                列名 数据类型,
                ...) character set 字符集 collate 校验规则 engine 存储引擎;

character set:设定编码集,如果没有指定编码集,以所在数据库的编码集为准。

collate:设定校验集,如果没有指定校验规则,以所在数据库的校验集为准。

举个例子,我们创建一个表结构,有如下几个列:

sql 复制代码
create table users (
id int,
name varchar(20) comment '用户名',
password char(32) comment '密码是32位的md5值',
birthday date comment '生日'
) character set utf8 engine MyISAM;

📂 查看表

sql 复制代码
desc 表名;

📂 修改表

修改表,我们可以修改表中的相关列,比如插入新的列,修改某列的数据类型,删除列。

sql 复制代码
//添加新的一列
alter table 表名 add 字段名 数据类型;

//修改某列的属性
alter table 表名 modify 字段名 数据类型;

//删除某列
alter table 表名 drop 字段名;

//修改列名
alter table 表名 change 字段名 新字段名 数据类型; ---新的字段需要完整定义 

//修改表名
alter table 表名 rename 新表名

📂 删除表

sql 复制代码
drop table 表名;

📁 总结

以上就是本期【MySQL】相关内容,主要介绍了数据库和表的操作,它们之中有很多类似之处,很多地方只需要将database和table转换即可。

如果感觉本期内容对你有帮助,欢迎点赞,关注,收藏Thanks♪(・ω・)ノ

相关推荐
你的微笑,乱了夏天25 分钟前
linux centos 7 安装 mongodb7
数据库·mongodb
远游客071327 分钟前
centos stream 8下载安装遇到的坑
linux·服务器·centos
马甲是掉不了一点的<.<27 分钟前
本地电脑使用命令行上传文件至远程服务器
linux·scp·cmd·远程文件上传
jingyu飞鸟28 分钟前
centos-stream9系统安装docker
linux·docker·centos
工业甲酰苯胺36 分钟前
分布式系统架构:服务容错
数据库·架构
超爱吃士力架1 小时前
邀请逻辑
java·linux·后端
独行soc2 小时前
#渗透测试#漏洞挖掘#红蓝攻防#护网#sql注入介绍08-基于时间延迟的SQL注入(Time-Based SQL Injection)
数据库·sql·安全·渗透测试·漏洞挖掘
White_Mountain2 小时前
在Ubuntu中配置mysql,并允许外部访问数据库
数据库·mysql·ubuntu
Code apprenticeship2 小时前
怎么利用Redis实现延时队列?
数据库·redis·缓存
百度智能云技术站2 小时前
广告投放系统成本降低 70%+,基于 Redis 容量型数据库 PegaDB 的方案设计和业务实践
数据库·redis·oracle