Mysql数据库基础

目录

一、什么是数据库

1.1连接服务器

1.2mysql客户端和服务端

二、Mysql的配置和简单使用

2.1mysql配置

2.2mysql简单使用的演示

2.3 SQL分类

三、Mysql库的操作

3.1库的创建和删除

①库创建删除的本质

②字符集和校验规则

 3.2校验规则对数据库的影响

3.3操纵数据库

①显示创建语句

②修改数据库

四、数据库的备份和恢复

4.1备份

4.2恢复

4.3注意事项

一、什么是数据库

通常存储数据使用文件即可,为什么还要有数据库呢?

文件保存数据有以下几个缺点:

·文件的安全性问题

·文件不利于数据查询和管理

·文件不利于存储海量数据

·文件在程序中控制不方便

而为了解决上述问题,数据库应运而生。数据库一般指的是在磁盘或者内存中存储的特定结构组织的数据---将来在磁盘上存储的一套数据库方案

1.1连接服务器

输入:

mysql   -h  127.0.0.1   -P 3306   -u   root  -p

-h:要连接的主机, 127.0.0.1是本地环回

-P:要连接的端口号,默认是3306端口

-u:user 要使用的用户

-p:password

quit:退出mysql。

去掉 -h 默认连接本地已搭建好的mysql服务

去掉 -P:不连接自定义的端口。而是采用3306的默认端口号。

所以一般要连接mysql,只需要这样的指令: mysql -u root -p

1.2mysql客户端和服务端

输入:

which mysql  : 查询mysql对应的客户端路径

which mysqld :查询mysql对应的服务端路径

mysql是数据库服务的客户端;

mysqld是数据库服务的服务器端。

mysql的本质是一套提供数据存取服务的网络程序。

二、Mysql的配置和简单使用

2.1mysql配置

输入:

vim  /etc/my.cnf  查看mysql配置,其中datadir配置是默认数据库存储文件的路径

datadir = /var/lib/mysql 是MySQL数据库的数据目录路径。在默认情况下,MySQL数据库会将其数据文件存储在/var/lib/mysql目录中。这个目录包含了数据库中的所有数据文件,例如表数据,日志文件等。

2.2mysql简单使用的演示

使用mysql建立一个数据库,建立一张表结构,插入一些数据。

mysql中操作时,可以同时对比一下mysql在Linux中是如何表现的。

输入:

show databases; 

 

 mysql中查看当前已创建的数据库使用指令: show databases;

输入:

use database_name

使用哪个数据库需要使用use加上数据库名称,即可使用对应的数据库。

这段指令的意义是:在数据库hellomysql中创建一个student的表。其中表中有三列。name列,存储数据最大字符数为32字节。age列,存储数据大小为int。gender列,存储数据最大字符数为2字节

注:varchar 是一种在数据库中用于存储可变长度字符数据的数据类型。它可以存储任意长度的字符数据,但是会占用与存储的实际数据长度相等的存储空间。与之相对的是char数据类型,它会存储固定长度的字符数据。使用varchar 数据类型可以节省存储空间,因为它只会占用实际存储的字符数据所需的空间

此时,在hellomysql目录中就建立了这些文件。

 

 

输入:

select  * from table_name; 

从表中筛选信息。 

输入:

system clear 

它是类似于Linux中命令行中输入clear一样的,具有清屏的效果。

输入:

show engines \G;

查看当前mysql支持的存储引擎。存储引擎是数据库管理系统如何存储数据,如何为存储的数据建立索引和如何更新、查询数据等技术的实现方法。

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

这其中,最常用的是innoDBMylSAM

2.3 SQL分类

* DDL [ Data Definition Language ] 数据定义语言,用来维护存储数据的结构

代表指令: create,drop,alter

* DML [ Data Manipulation Language ] 数据操纵语言,用来对数据进行操作

代表指令: insert,delete,update

        # DML中又单独分了一个DQL,数据查询语言,代表指令:select

* DCL [ Data Control Language ] 数据控制语言,主要负责权限管理和事务

代表指令 : grant, revoke, commit

三、Mysql库的操作

3.1库的创建和删除

①库创建删除的本质

drop database db_name;

创建数据库:create database db_name; -- 本质就是在/var/lib/mysql 中创建一个目录

删除数据库:drop database db_name; 本质就是在/var/lib/mysql删除已创建的目录

 虽说在Linux上也能创建删除mysql数据库,但是不建议这么去做。

②字符集和校验规则

创建数据库的时候,有两个编码集:

1. 数据库编码集(charset)  --- 数据库未来存储数据

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

查看系统默认字符集以及校验规则:
show variables like 'character_set_database';

show variables like 'collation_database';

当我们创建数据库时,默认编码集是utf8,默认校验集是utf8_general_ci.

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

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

不同的编码规则对应相应的校验规则。

如果要指定数据库编码规则,需要在创建时带上选项:

第二种写法:

创建数据库时,指明编码集和校验集。

 3.2校验规则对数据库的影响

        不区分大小写:创建一个数据库,校验规则使用utf8_general_ci[不区分大小写]。

上面的指令之前就已经讲述,不必多言。没有说明的是select *from person;这是一个查询语句,用于从名为"person"的表中检索(或选择)所有的数据行。通常,* 表示用于所有字段。所以这个查询语句的意思是,从表"person"中选择所有的字段和数据行。

插入采用的是存储规则,而提取采用的是校验规则。

从person表中提取name等于'a'的列。发现'a'和'A'都被提取出来。说明当前表采用的校验规则是不区分大小写的。

        

        数据库test2则区分大小写,采用utf8_bin的校验规则。

那么从表person中筛选列name='a'是不会筛选出来'A'的。

区分大小写默认排序的:

 

不区分大小写默认排序的:

 

3.3操纵数据库

①显示创建语句

show create database 数据库名;

说明:

*MYSQL建议我们关键字使用大写,但是不是必须的。

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

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

②修改数据库

 

修改数据库test2的编码规则为gbk,校验规则为gbk_chinese_ci;

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

四、数据库的备份和恢复

4.1备份

语法:

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

注意,备份不是在MySQL中执行的,而是在Linux中操作的。

示例:

打开test1.sql文件,查看里面的内容,不仅存储数据库内的有效信息,而且把我们历史上的有效操作也存储了下来。

4.2恢复

我们现在有了备份文件,删除test1数据库后,如何恢复呢?备份是在Linux中备份,而恢复则是在MySQL中恢复。

操作:
source  备份文件的路径

此时就会把我们创建test1数据库的过程跑一边。因为我们的备份文件中不仅有数据还有有效操作。

 

4.3注意事项

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

#  mysqldump  -u root -p 数据库名  表名1 表名2  > D:/mytest.sql 

        同时备份多个数据库

#  mysqldump  -u root -p -B 数据库名1  数据库名2  ...  > 数据库存放路径

查看连接情况

语法:

show processlist

可以查看当前有哪些用户连接到我们的MySQL,如果查出某个用户不是你正常登录的,很有可能是数据库被人入侵了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值