【MyQSL】库 表—基操
【MyQSL】库 & 表—基操
- 前言
- mysql启动
- 数据库默认路径
- SQL语句_库的基操(db_name:数据库名,table_name:表名)
- 创建 / 删除 / 修改(SQL语句)
- 查看OS默认字符集 / 校验规则(SQL语句)
- 显示数据库(SQL语句)
- 其他常用_警告 / 清屏 / 连接情况(SQL语句)
- 备份 / 还原(先退出mysql,非SQL语句)
- SQL语句_表的基操
- 创建
- 查看表结构(desc table_name;)
- 删除整个表 (drop table table_name;)
- 修改表(add列 / modify列类型 / drop删除列 / rename重命名列名)
前言
mysql启动
sudo systemctl start mysql # 启动mysql
sudo systemctl restart mysql # 重新启动
sudo systemctl status mysql # 查看mysql状态
sudo systemctl stop mysql # 停止
sudo systemctl enable mysql # 设置 MySQL 开机自启动
数据库默认路径
数据库文件(库文件)的默认存储目录通常是:/var/lib/mysql/
每个数据库在该目录下以文件夹形式存在,文件夹名称与数据库名一致
文件夹中包含该数据库的表结构文件(.frm)和数据文件,如.ibd。
SQL语句_库的基操(db_name:数据库名,table_name:表名)
创建 / 删除 / 修改(SQL语句)
- create database db_ name; # 创建名为 db_ name 的数据库
- create database db_ name charset=utf8mb4 collate utf8mb4_general_ci; # 创建并指定数据库的字符集和校验规则
- drop database [if exists] db_ name; # 数据库删除,对应的数据库文件夹被删除,级联删除,里面的数据表全部被删
- alter database db_ name charset=gbk; # 对数据库的修改主要指的是修改数据库的字符集 / 校验规则
查看OS默认字符集 / 校验规则(SQL语句)
- show variables like ‘character_set_database’; #字符集
show variables like ‘collation_database’; # 校验规则
显示数据库(SQL语句)
- show databases; # 展示所有数据库
- select database(); # 查看当前位于数据库,MySQL 终端执行
- show create database db_name;# 显示创建语句,可借助来查看数据库默认字符集
/*!40100 DEFAULT CHARACTER SET utf8mb3 /:这是一个条件注释,只有当 MySQL 版本大于或等于 4.01.00 时才会生效。它指定了数据库的默认字符集为 utf8mb3。
/!80016 DEFAULT ENCRYPTION=‘N’ */:这也是一个条件注释,只有当 MySQL 版本大于或等于 8.00.16 时才会生效。它指定了数据库的默认加密方式为 N(即不加密)。
其他常用_警告 / 清屏 / 连接情况(SQL语句)
- show processlist # 查看连接情况,当前有哪些用户连接到我的MySQL
- show warnings; #查看sql语句警告
- system clear; # MySQL 终端中使用 system 命令调用 Ubuntu 系统的清屏命令
备份 / 还原(先退出mysql,非SQL语句)
-
备份:mysqldump -P3306 -u root -p -B db_ name > D:/db_ name.sql
#备份其实就是把创建这个数据库以及在数据库内进行的一系列操作都备份到文件( D: \ db_ name.sql)中,恢复的时候就再执行以前关于该数据库的操作 -
还原: source D: \ db_ name.sql;
-
备份的不是整个数据库,而是其中的一张表
mysqldump -u root -p db_ name table1_name table_name2 > 存放路径 -
同时备份多个数据库
mysqldump -u root -p -B db_ name1 db_ name2 … > 数据库存放路径
注意:如果备份一个数据库时,没有带上-B参数, 在恢复数据库时,需要先创建空数据库,然后使用数据
库,再使用source来还原;
也就是说未带-B那么备份的文件中至少无create database db_name; 这条语句
SQL语句_表的基操
创建
- create table table_name(
name varchae(20),
age int,
birthday char(30)
) charset=字符集 collate=校验规则 engine=存储引擎;
不同的存储引擎,创建表的文件不一样。
users 表存储引擎是 MyISAM ,在/var/lib/mysql目录中有三个不同的文件,分别是:
users.frm:表结构(mysql5.7版本)
users.MYD:表数据
users.MYI:表索引
查看表结构(desc table_name;)
- desc table_name # 查看表的结构
- show tables; # 展示所有表
- show create table table_name;# 显示创建语句,可借助来查看创建表的细节
删除整个表 (drop table table_name;)
- drop table table_name; #删除
例如:
drop table t1;
修改表(add列 / modify列类型 / drop删除列 / rename重命名列名)
(1). alter table table_name add column1 datatype, column2 datatype… # 增加一列或多列
例如:
alter table table_nmae add age varchar(100) comment ‘图片路径’ after birthday; # 在birthday列后增加age列
(2). alter table table_name modify column1 datatype, column2 datatyp… # 修改一列或多列的 datatype
例如:
alter table table_name modify birthday varchar(50), modify age int; # 将列birthday的类型修改为varcahr,age列类型改为 int
(3). alter table table_name drop column1, drop column2… # 删除表的一列或多列
例如:
alter table table-name drop age, drop birthday; # 删除表的 age 和 birthday 列
(4). alter table table_name1 rename [to] table_name2; # 将表面 1 改为表名 2;to 可省
例如:
alter table age rename to AGE varchar(100); # 新字段需要完整定义