01 MySQL数据库基础

本文详细介绍了如何在Linux上安装MySQL 8.0.26,包括数据库基础概念、SQL分类、基本操作如连接、创建、删除数据库,以及对数据表的管理、备份和字符集处理。此外,还涵盖了校验规则、数据表操作和数据库安全等内容。
摘要由CSDN通过智能技术生成

MySQL的安装请看如下文章:
Linux 安装Mysql(图文教程)
2021MySql-8.0.26安装详细教程(保姆级)


一、数据库基础

1.1. 什么是数据库

存储数据用文件就可以了,为什么还要弄个数据库?文件保存数据有以下几个缺点:

  1. 文件的安全性问题。
  2. 文件不利于数据查询和管理。
  3. 文件不利于存储海量数据。
  4. 文件在程序中控制不方便。

数据库存储介质:

  1. 磁盘。
  2. 内存。

为了解决上述问题,专家们设计出更加利于管理数据的东西——数据库,它能更有效的管理数据。

MySQL是一个守护进程:
在这里插入图片描述

在这里插入图片描述

1.2. 服务器,数据库,表关系

  • 所谓安装数据库服务器,只是在机器上安装了一个数据库管理系统程序,这个管理程序可以管理多个数据库,
  • 一般开发人员会针对每一个应用创建一个数据库。
  • 为保存应用中实体的数据,一般会在数据库中创建多个表,以保存程序中实体的数据。
    数据库服务器、数据库和表的关系如下:
    在这里插入图片描述

在这里插入图片描述


二、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。

三、数据库的基本操作

3.1. 连接MySQL

mysql -u [用户名] --h [连接的ip地址] -P[端口号] -p [密码];
如果没有写 -h默认是连接本地。
如果没有写 -P默认是连接3306端口号

退出只需要输入quit或者exit即可。

3.2. 查看数据库

show databases;
在这里插入图片描述

3.3. 使用具体的数据库、查看数据表

use [数据库名];
在这里插入图片描述

3.4. 创建数据库

create database (if not exists) [数据库名](create_specification);
()为可选项。

create_specification:
 [DEFAULT] character set charset_name
 [DEFAULT] collate collation_name

如果系统没有test3的数据库,则创建一个使用utf8字符集,并附带校验规则的test3数据库,如果有则不创建。
在这里插入图片描述

创建数据库以后,就会在对应的目录下创建对应的数据库目录,之后创建的表都会保存在这个目录下。

在这里插入图片描述

3.5. 删除数据库

drop database (if exists) [数据库名];
在这里插入图片描述

执行删除之后的结果:

  • 数据库内部看不到对应的数据库。
  • 对应的数据库文件夹被删除,级联删除,里面的数据表全部被删。

3.6. 查看当前所在的数据库

select database();
在这里插入图片描述

3.7. 查看已经创建好的数据库的创建语句

show create database [数据库名];
在这里插入图片描述

4.1以上的版本默认字符集为latin1,如果想修改默认字符集,可以修改/etc/my.cnf的配置文件:

[mysqld]
#不需要密码直接登录
skip-grant-tables
port=3306
#运行最大连接数
max_connections=200
#运行连接失败的次数。这也是为了防止有人从该主机试图攻击数据库系统
max_connect_errors=10
#服务端使用的字符集默认为utf-8
character-set-server=utf8
[mysql]
#客户端使用的字符集默认为utf8
default-character-set=utf8
[client]
#客户端默认端口号为3306
port=3306

3.8. 查看当前字符集

show variables like '%character%';
在这里插入图片描述

在这里插入图片描述

创建数据库的时候,尽量将数据的字符集设置成utf8。

3.9. 修改数据库

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

alter database [数据库名称] (alter_spacification)
alter_spacification: 
[DEFAULT] character set charset_name 
[DEFAULT] collate collation_nam

在这里插入图片描述

3.10. 字符集不匹配导致乱码

在这里插入图片描述


四、校验规则对数据库的影响

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

show collation
在这里插入图片描述

在这里插入图片描述

校验规则影响了用户对数据查询的排序以及是否对大小写敏感。

不同字符集有不同的校对规则
每一个字符集都有一个默认的校对规则 ,比如:uft8默认为utf8_general_ci。

_后缀为_bin:区分大小写
_后缀为_ ci:不区分大小写

五、对数据表的操作

5.1. 查看表

show tables;
在这里插入图片描述

5.2. 创建表

create table [表的名称] (列的名称 列的类型,.....,) character set 字符集 collate 校验规则 engine 存储引擎;
在这里插入图片描述

5.3. 查看表字段

desc [表名称]

在这里插入图片描述

  • Field:字段名称。
  • Type:字段类型。
  • Null:value是否可以为NULL。
  • Key:索引类型。
  • Default:默认值。
  • Extra:额外属性。

5.4. 删除表和表的列

drop table [表名称];删除整张表。
alter table [表名称] drop[字段的名称];,删除表的某一列,该列的数据也随之删除。

5.5. 新增列

alter table [表名称] add[新增列的名称] [字段的类型] after [字段名称(在谁后面新增);]

**加粗样式**

5.6. 修改列的类型

alter table [表名称] modify[字段名称][字段的类型]
在这里插入图片描述

5.7. 表的重命名

alter table [表名称] rename to [重命名后的名字]
在这里插入图片描述

5.8. 列的重命名

alter table [表名称] change [字段名] [修改后的名称] [字段属性]
在这里插入图片描述

5.9. 插入数据

增加数据:
1.全列增加 insert into [表名称] values(表字段对应的值)
		
2.指定列进行插入 insert into[表名称] (表中列的名称,...) values(指定表字段对应的值...)
		
3.一次性插入多行数据 
insert into[表名称] (表中列的名称,...) values(指定表字段对应的值...),(指定表字段对应的值...)
insert into [表名称] values(表字段对应的值),(表字段对应的值)

在这里插入图片描述


六、数据库备份

6.1. 数据库的备份

mysqldump -p[端口(3306)] -u[用户] -p[密码] -B[数据库名称(可以有多个)] > [文件]将数据库重新备份,重定向到某个文件之中。

在这里插入图片描述

把我们整个创建数据库,建表,导入数据的语句都装载temp.sql这个文件中。

还原这个数据库,只需要source 文件名;即可。
在这里插入图片描述

6.2. 数据表的备份

如果只是一个数据库中的若干个表,可以用下面的命令:
mysqldump -u[用户] -p[密码] 数据库名称 表名称1 表名称2 > [文件]

恢复也是同样的操作。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

今天也要写bug、

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值