MySQL——数据库基础&&操作

学习MySQL之前,要先配置好相关环境与软件下载,怎么就不展开了:找找网上对应环境下的教程即可

目录

数据库与MySQL

案例使用

MySQL架构

SQL指令分类

储存引擎

库操作

创建数据库

编码集与校验规则

校验规则的影响

删除数据库

数据库的备份与恢复

查看数据库

修改数据库

数据库连接

表操作

创建表

删除表

查看表

修改表


数据库与MySQL

数据库是专家们设计出来的一种方便管理数据的东西;mysql指的是一套给我提供数据存储的网络程序

具体的来讲:数据库一般指的是在磁盘或内存中存储的特定结构组织的数据,将来在磁盘中存储的一套数据方案;而mysql是基于C(client)S(service)模式的网络服务,mysql是客户端,mysqld是服务端;

三者的关系:用户通过mysql语句发起请求,mysqld收到用户的请求后进行处理:在磁盘中对数据库进行操作,处理完将结果返回给用户;在这个过程中用户只是间接对数据库操作,mysqld才是那个直接对数据库操作

但是可能你要说:储存数据用文件就可以了,为什么还要弄个数据库?

一般文件确实提供了数据的储存功能,但是当数据量很大时用户不能很好地进行管理,也就是文件没有提供很好的数据管理能力,而数据库提供了一套对数据的管理方案:你给我字段或者要求(mysql),我帮你处理后给你返回结果(mysqld)

具有一定的数据库水平也是程序员能力的指标之一,也说明了它的重要性

案例使用

在数据库中创建一个新的数据库并创建数据库表,最后把插入的结果打印出来

MySQL架构

MySQL 是一个可移植的数据库,几乎能在当前所有的操作系统上运行,如 Unix/Linux、Windows、Mac 和 Solaris。各种系统在底层实现方面各有不同,但是 MySQL 基本上能保证在各个平台上的物理体系结构的一致性。

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的核心就是插件式存储引擎,支持多种存储引擎

六种储存引擎对比

库操作

创建数据库

在mysql创建新的数据库的过程就是在 /var/lib/mysql 目录下创建新的目录的过程;但你打死也不要就直接在该路径下创建目录,而是应该通过mysql语句来创建~

创建数据库的语句还可以指定创建的数据库是否存在,不存在创建,存在就不创建

下次不要创建出来的数据库时我们就可以使用mysql语句进行删除,本质上也是在 /var/lib/mysql 路径下删除目录

编码集与校验规则

创建数据库时有两个编码集:数据库编码集(字符集)与数据库校验集,编码集是未来储存数据时所采用的编码方式(如utf-8),而校验集则是字段比较时使用的编码,本质上也是读取数据库时所采用的编码方式;数据库无论对数据作如何操作,都必须保证两者的一致性;

两者就类似C语言中:用int a 变量储存某个值;下次我要拿它进行赋值时所用到的变量只能是int 类型而不是其它类型

查看mysql默认的编码集与校验集(是utf8就说明使用操作是支持中文格式)

(我)创建新的数据库时默认就是使用以上两种进行创建操作,你那边可能不一样,因为我在下载完mysql时已经在 /etc/my.cnf 文件中配置过了

如果不想使用默认的编码集与校验集,我们在创建时可以自己来指定

校验规则的影响

但创建数据库时使用的校验规则为:utf8_general_ci 时(不区分大小写),此时在数据库中创建表,创建变量后找'a'时它会把大小写都给我们返回

创建新的数据库使用别的校验规则:utf8_bin(区分大小写),只会把'a'字符返回

删除数据库

不建议直接删除数据库,数据库通常保存着用户数据,删除后里面的全部数据都将被清空,很难再继续恢复,所以删除数据库之前建议先备份;

数据库的备份与恢复

虽然在Linux系统上创建一个数据库是在 /var/lib/mysql 路径上创建一个新目录,进行备份使用复制指令cp就能进行备份,但不建议这么做,这么备份可能由于版本原因在别的系统上导入时有各种报错,推荐使用mysql自带的语句进行数据库的备份与恢复

备份指令

bash 复制代码
mysqldump -P3306 -u root -p 密码 -B 数据库名 > 存储的文件路径

如果要备份多个数据库就直接在数据库名后面再加即可;如果不加 -B 进行备份数据库,后面想恢复时就要先在mysql create 数据库,use 后再执行恢复语句!这也是间接地把数据库名更改的操作

如果备份的是数据库的表,则备份指令如下

bash 复制代码
mysqldump -u root -p 数据库名 表名1 表名2... > 备份文件路径

恢复语句

bash 复制代码
source 文件路径;

查看数据库

修改数据库

主要修改的是数据库的字符集或者校验规则,修改数据库名在老版本下可以修改,但大部分的情况下数据库名都修改不了:避免上层在使用数据库时你把名字给改了,上层找不到数据库而发生报错

数据库连接

想看看数据库有多少人连接

表操作

创建表

创建表之前先要进入指定的数据库后进行创建

其中)后可以指定字符集,校验规则,储存引擎;不指定就使用默认配置的,创建完表的操作就是在对应的数据库目录中创建新文件

删除表

查看表

查看表之前先要确定自己是否在查看表的数据库中,不是就要 use 进入指定数据库中

修改表

对表的修改有以下操作:

表名重命名

表中添加字段

表中删除字段,注意表中原有该删除字段的数据都会被删除,没事时不要轻易修改

表中修改字段时修改的是字段类型

表中修改字段时修改的是字段

以上便是全部内容,有问题欢迎在评论区指正,感谢观看!

相关推荐
�FENG24 分钟前
MYSQL备份与恢复
mysql·备份·xtrabackup
合作小小程序员小小店1 小时前
web安全开发,在线%机器学习异常流量检测系统%开发demo
人工智能·python·mysql·机器学习·sklearn
heart000_11 小时前
MySQL高级查询技巧:分组、聚合、子查询与分页【MySQL系列】
数据库·mysql
凭君语未可2 小时前
MySQL中COUNT(*)、COUNT(1)和COUNT(字段名)的深度剖析与实战应用
数据库·mysql
z人间防沉迷k3 小时前
MySQL事务和索引原理
数据库·笔记·sql·mysql
阿蒙Amon3 小时前
C#数字金额转中文大写金额:代码解析
java·mysql·c#
z人间防沉迷k3 小时前
字符串索引、幻读的解决方法
数据库·sql·mysql
xiaohezi3 小时前
Milvus 向量数据库快速入门(人话版)
数据库
shangjg33 小时前
Kafka ACK机制详解:数据可靠性与性能的权衡之道
java·数据库·分布式·后端·kafka
岁忧3 小时前
LeetCode 高频 SQL 50 题(基础版)之 【聚合函数】部分
数据库·sql·leetcode