MYSQL操作库

目录

数据库操作

创建数据库

数据库编码集

删除数据库

修改数据库

库的备份与恢复

查看数据库连接情况

数据库表操作

创建表

查看表

修改表结构

删除表


数据库操作

创建数据库

创建数据库的语法如下:

sql 复制代码
create database [if not exists] db_name [create_specification [,
create_specification] ...]

create_specification:
    [default] character set charset_name
    [default] collate collation_name

character为编码集,collate为设置校验集。

如下所示:

同时查看/var/lib/mysql文件,发现多了一个目录:

创建数据库的本质,是在/var/lib/mysql创建一个目录,也可以通过在/var/lib/mysql目录中新建文件夹来创建数据库,不过这样不推荐。

使用数据库可以用use db_name指令,若要查看用户当前处在哪一个数据库下,可以使用select database()指令;查看数据库创建时的指令为show create database db_name。

数据库编码集

创建数据库的时候,有两个编码集,一个是数据库编码集,一个是数据库校验集。

数据库编码集对应存储数据的编码集,数据库校验集用来支持数据库进行字段比较使用的编码,本质也是一种读取数据库中数据的采用的编码格式。数据库无论对数据做任何操作,都必须保证操作和编码必须是编码一致的。

查看系统默认支持的编码集,命令如下:

sql 复制代码
show variables like 'character_set_database';

查看系统默认支持的校验集命令,如下:

sql 复制代码
show variables like 'collation_database';

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

sql 复制代码
show charset;

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

sql 复制代码
show collation;

删除数据库

删除数据库的命令如下:

sql 复制代码
drop database [if exists] db_name;

删除数据库,本质就是删除对应的目录。

修改数据库

修改数据库的命令如下:

sql 复制代码
alter database db_name
[alter_specification [,alter_specification]...]

库的备份与恢复

数据库备份的命令如下:

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

示例如下所示:

查看对应的sql文件,如下所示:

注意,如果备份一个数据库时,没有带上-B参数,在恢复数据库时,需要先创建空数据库,然后使用数据库,再进行还原。

恢复数据库的指令如下:

bash 复制代码
source 数据库备份存储的文件路径;

如果要备份数据库中的几张表,命令如下:

sql 复制代码
mysqldump -u root -p 数据库名 表名1 表名2 > 数据库备份存储的文件路径

如果要备份多个数据库,命令如下:

sql 复制代码
mysqldump -u root -p -B 数据库名1 数据库名2 ... > 数据库存放路径

查看数据库连接情况

sql 复制代码
show processlist

如下所示:

数据库表操作

创建表

数据库创建表的操作语法如下:

sql 复制代码
create table [if not exists] table_name (
    field1 datatype [comment '对应的描述'],
    field2 datatype [comment '对应的描述'],
    field3 datatype [comment '对应的描述']
) [character set 字符集 collate 校验规则 engine 存储引擎];

示例如下:

查看对应的数据库文件:

我们发现,不同的存储引擎,对应的文件个数也不一样。

查看表

查看数据库中的表命令如下:

sql 复制代码
show tables;

如果要查看某一个表的详细信息,命令如下:

sql 复制代码
desc tablename;

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

sql 复制代码
show create table tablename \G;

其中'\G'代表格式化显示,将不需要的符号去掉。

修改表结构

修改表的命令如下:

sql 复制代码
alter table old_tablename rename to new_tablename;

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);

alter table tablename change old_columnname new_columnname datatype;

修改相关属性列,是通过直接覆盖来实现的。

删除表

删除表的命令如下:

sql 复制代码
drop table table_name
相关推荐
Cx330❀6 小时前
【MySQL基础】一文吃透“表的约束”:从 Null/Default 到主外键的终极安全法则
linux·服务器·数据库·c++·mysql·安全
c238566 小时前
第二篇:《测试指挥官:可视化单题自测框架(含 assert 实操)》
java·数据库·c++·算法·安全性测试
大阳光男孩6 小时前
Spring Boot 整合 Debezium 实现 MySQL 增量数据监听(嵌入式版)
spring boot·后端·mysql
我科绝伦(Huanhuan Zhou)6 小时前
MySQL极端场景数据丢失防护:从Crash-Safe到异地备份
数据库·mysql
辞旧 lekkk6 小时前
【Redis初阶】常见数据类型
开发语言·数据库·c++·redis·学习·缓存·bootstrap
明志数科7 小时前
人形机器人格斗场景下的技术挑战:动力学控制、感知融合与实时决策
网络·数据库
酉鬼女又兒7 小时前
零基础入门 DeepSeek V4 Pro API 开发:从环境搭建、消息格式规范到翻译函数实战、少样本提示、多轮对话聊天机器人与常见报错全流程详解指南
大数据·网络·数据库·人工智能·macos·机器人·github
笨蛋不要掉眼泪7 小时前
MySQL架构揭秘:MVCC解决读一致性问题
数据库·mysql·架构
Navicat中国8 小时前
开发者入门:无服务器数据库
数据库·云原生·serverless·navicat
whn197710 小时前
如何避免以root用户执行达梦
数据库