【MySQL】数据库基础和库的操作

什么是数据库?

用文件保存数据有几个缺点:文件的安全性问题,不利于查询和管理,不利于存储海量数据,不方便用程序控制。

为解决以上问题,设计出更利于管理数据的东西------数据库。

所谓安装数据库服务器,只是在机器上安装了一个数据库管理系统程序,这个程序可管理多个数据库。为保存应用中的数据,一般会在数据库中创建多个表。

数据库服务器、数据库和表的关系如下:

MySQL :通常指 数据库管理系统 (DBMS),也就是管理数据库的软件
DB :指 MySQL 里的某一个具体数据库
表 :数据库里面真正存数据的结构
SQL分类
DDL(data definition language):数据定义语言,用来维护存储数据的结构。

代表指令:create,drop,alter
DML(data manipulation language):数据操纵语言,用来对数据进行操作。DML中单独分出一个DQL,数据查询语言,代表指令:select
DCL(data control language):数据控制语言,主要负责权限管理和事务。代表指令:grant,revoke,commit
存储引擎 :数据库管理系统如何存储数据,如何为数据建立索引和如何更新,查询数据等技术的实现方法。

MySQL的核心是插件式存储引擎,支持多种存储引擎。

bash 复制代码
show engines;

库的操作

创建数据库

bash 复制代码
create database [if not exists] db_name [charset=?][collate=?]

\[\]是可选项

charset=?:指定数据库采用的字符集

collate=?:指定数据库字符集的校验规则

字符集和校验规则

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

bash 复制代码
show variables like 'character_set_database';
show variables like 'collation_database';

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

bash 复制代码
show charset;

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

bash 复制代码
show collation;


校验规则对数据库的影响

不区分大小写:

创建两个数据库,校验规则分别使用utf8_ general_ ci和utf8_ bin:

其中一个校验规则区分大小写,一个不区分。
操纵数据库:

查看数据库:

复制代码
show databases;

显示创建语句:

复制代码
show create databases db_name;

/*!40100 default... */ 不是注释,表示当前mysql版本大于4.01版本,就执行这句话.
修改数据库

bash 复制代码
alter database db_name [charset=?][collate=?]

对数据库的修改主要指的是修改数据库的字符集,校验规则。

例:将test1 数据库字符集改成 gbk

数据库删除

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

结果:对应的数据库文件夹被删除,级联删除,里面的数据表全部被删。
备份和恢复

备份:

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

例:

bash 复制代码
mysqldump -P 3306 -u root -p123456 -B test1 > test1.sql

还原:

bash 复制代码
mysql>source test1.sql(文件路径和文件名)

如果备份的不是整个数据库,而是其中的一张表,怎么做?

bash 复制代码
mysqldump -u root -p 数据库名 表名1 表名2 > D:/mytest.sql

同时备份多个数据库:

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

查看连接情况

bash 复制代码
show processlist
相关推荐
高山有多高1 分钟前
【Linux笔记】线程同步与互斥
linux·笔记
星间都市山脉8 分钟前
RecoveryUI 圆角屏安全边距配置及代码调用链
android·java·linux·windows·ubuntu
rest102410 分钟前
对主从复的理解
linux
wdfk_prog10 分钟前
Wi-Fi Direct 源码分析(09):从 P2P_CONNECT 到 GO Negotiation 完成
运维·服务器·ubuntu·golang·asp.net·p2p·wifi-direct
忆挽篱笙歌11 分钟前
linux开发工具
linux·运维·ubuntu
jyOverQ12 分钟前
MySQL 崩溃以后怎么恢复数据?redo log、undo log 与 Crash Recovery
数据库·mysql
打工仔折腾 AI15 分钟前
多台服务器日志分散难查?用Promtail+Loki+Grafana搭建集中检索平台
服务器·人工智能·后端·python·性能优化·django·grafana
盟道科技18 分钟前
电商小程序购物车系统设计:缓存与数据库双写一致性实战
数据库·缓存·小程序
java1234_小锋19 分钟前
【技术专题】Mysql8 数据库 - Mysql8 客户端sqlyog安装以及配置
数据库·sqlyog
奇牙coding23 分钟前
Codex C接 配置教程:的 字段从迁移时必须写完整后缀,填旧值或省略 会静默回退默认模型
java·c语言·数据库·ai