【MySQL】数据库的基本操作

1. 对于库的基本操作

(1) 创建数据库

**语法:**create database [IF NOT EXISTS] 数据库名 ;

**[IF NOT EXIT] :**中括号号包含的这个部分为数据库的可选项,在这里IF NOT EXIT代表没有这个和指定数据库名相同的数据库,就创建一个数据库,如果存在就不创建,方括号不要写到代码中。

**本质:**就是在 var / lib / mysql 中创建一个目录。

编码集:

(1)数据库编码集:数据库未来存储数据所使用的编码集。

(2)数据库效验集:支持数据库进行字段比较的编码格式。本质上是读取数据库的编码方式。

在这里对数据库所做的全部操作,都需要保证操作和编码必须是一致的。

(2) 删除数据库

drop database [IF NOT EXISTS] 数据库名 ;

**本质:**就是在 var / lib / mysql 中删除一个目录。一般情况下要做好数据库的备份工作不要误删。

(3) 查看字符集和效验规则

**查看编码集语法:**show variables like 'character_set_database' ;

**查看效验集语法:**show variables like 'collation_database' ;

一般在创建数据库时,如果没有写效验规则,数据库会以配制文件里的效验规则创建数据库。

对于一个数据库来说,效验规则不同,查出来的结果就有可能不同,比如UTF-8_cin 是区分大小写的,而UTF-8_bin 是不区分大小写的。

(4) 查看数据库

(1)查看所有的数据库

语法:show databases;

(2) 查看特定的数据库

查看特定的数据库必须加上 use 选中特定的关键字。

并且可以使用 **show tables;**来查看某个数据库中的所有表

(3) 查看自己处在哪一个数据库

语法:使用 select database()函数来查看

(3) 查看创建数据库时采用的命令

语法:show create database 数据库名

后面的/**/的内容代表着如果数据库的版本大于40100就采用后面的编码模式。

(5) 修改数据库

语法:alter database 数据库名

还可以修改数据库的编码集

(6) 数据库的备份

因为在Linux操作系统下的数据库本质上就是一个目录,所以可不可以采用直接拷贝这个数据库目录的方式进行备份呢?

答案是可以的,但是因为恢复数据库时,可能会出现版本不一致的问题,所以这里最好不要使用直接拷贝的方式来进行备份操作。

一般在进行数据库备份时,会采用mysqldump工具进行备份,语法如下所示。

数据库整体备份:mysqldump -P端口号 -u用户名 -p密码 -B数据库名 > 数据库备份的文件路径

只对其中几张表备份:mysqldump -u用户名 -p 数据库名 表1 表2> 数据库备份的文件路径

备份多个数据库:mysqldump -u用户名 ​-p密码 -B 数据库1 数据库2 ... > 数据库存放路径

注意:如果备份数据库库时没有带-B属性,在恢复数据库时,需要先创建空的数据库再进行还原。

如果不知道端口号是什么可以使用 mysql> show global variables like 'port';

命令进行查看。

(7) 数据库的还原

语法:source 数据库目录的地址

本质上是将被恢复数据库曾经的全部操作,在一个新的数据库中重新进行一遍。

(8) 查看数据库的连接情况

语法:show processlist;

可以查看哪些人连接到了数据库。

2.对于表的基本操作

(1)创建表

语法:

CREATE TABLE 表名(

属性名1 数据类型,

属性名2 数据类型,

);character set 字符集 collate 效验规则 engine 存储引擎;

说明:

character set 为字符集,如果没有指定字符集,则一所在数据库的字符集为准。

collate 效验规则,如果没有指定效验规则,则以数据库的效验规则为准。

演示:

注意:

使用不同的存储引擎创建表的时候,创建出原来的文件个数可能不同,如下图所示,使用innoDB所创建出的文件是两个,而myisam创建出的文件是3个,因为innoDB是将数据和索引放在一起存储的,而myisam是分开存储的。

(2)查看表

(1)查看所在的数据库

语法:select database();

(2)查看该数据库的所有表、

语法:show tables;

(3)查看具体某一张表的信息

语法:desc 表名;(desc 可以理解为describe的简称)

(4)表的具体含义如下图所示

(3)修改表

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

以下是修改表的语法规则:

加属性: ALTER TABLE 表名 ADD 想要添加的属性 数据类型 after 放在那个属性的后面(可不写);

改某属性: ALTER TABLE 表名 MODIfy 想要添加的属性 数据类型 ;

删除某属性: ALTER TABLE 表名 DROP 列名;

修改表的名字: ALTER TABLE 被改表名 rename to 新表名;
修改属性名字: ALTER TABLE 被改表名 name 旧属性名 新属性名 新属性数据类型;

(4)删除表

语法: DROP TABLE 被删除的表名;

注意:不要轻易修改和删除表!!!!

数据库是非常接近底层的,数据库但凡一边所有和数据库相关的代码都需要修改!!!

相关推荐
冒泡的肥皂1 小时前
MVCC初学demo(一
数据库·后端·mysql
.Shu.2 小时前
Redis Reactor 模型详解【基本架构、事件循环机制、结合源码详细追踪读写请求从客户端连接到命令执行的完整流程】
数据库·redis·架构
薛晓刚5 小时前
当MySQL的int不够用了
数据库
SelectDB技术团队5 小时前
Apache Doris 在菜鸟的大规模湖仓业务场景落地实践
数据库·数据仓库·数据分析·apache doris·菜鸟技术
星空下的曙光6 小时前
mysql 命令语法操作篇 数据库约束有哪些 怎么使用
数据库·mysql
小楓12016 小时前
MySQL數據庫開發教學(一) 基本架構
数据库·后端·mysql
染落林间色6 小时前
达梦数据库-实时主备集群部署详解(附图文)手工搭建一主一备数据守护集群DW
数据库·sql
颜颜yan_6 小时前
企业级时序数据库选型指南:从传统架构向智能时序数据管理的转型之路
数据库·架构·时序数据库
lichenyang4536 小时前
管理项目服务器连接数据库
数据库·后端
沙振宇6 小时前
【数据库】通过‌phpMyAdmin‌管理Mysql数据
数据库·mysql