• 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/mysqlMySQL数据库的数据目录路径。在默认情况下,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,如果查出某个用户不是你正常登录的,很有可能是数据库被人入侵了。

  • 相关阅读:
    记一次 .NET 某工控软件 内存泄露分析
    安卓常见设计模式7------适配器模式(Kotlin版)(RecycleView adapter 模板代码)
    自动化技术-图像识别
    教程一 Energy 构建简单的Windows、Linux、MacOSX桌面应用
    AWS无服务器 应用程序开发—第八章 计算服务(AWS Lambda)
    Postgresql在linux环境下以源码方式安装
    80. UE5 RPG 实现UI显示技能冷却进度功能
    探究map为什么不能遍历的同时进行增删操作
    Android:事件分发机制(二)
    二维码智慧门牌管理系统升级解决方案:查询功能大提升,让地址查找变得轻松便捷!
  • 原文地址:https://blog.csdn.net/JJR_YZ/article/details/132668508