MySQL数据库详解

MSQL数据库详解

  • 1.数据库大致介绍
    • 1.1.数据库
    • 1.2为什么需要数据库
    • 1.3数据库的分类
    • 1.4什么是关系型数据库(MySQL)
  • 2.MySQL信息介绍
  • 3.为什么会使用MySQL
  • 4.MySQL中的数据类型与java对比
  • 5.MySQL中的创建用户
  • 6.MySQL的四大引擎
    • 6.1四大引擎的概念与特点
    • 6.2MyISAM存储引擎概念与特点
    • 6.3 InnoDB存储引擎概念与特点
    • 6.4 Memory存储引擎概念与特点
    • 6.5 Archive存储引擎概念与特点
  • 7.DDL数据定义
    • 7.1库的创建与管理
    • 7.2表的创建与管理
    • 7.3.常见的六大约束
      • 7.3.1详解表格
      • 7.3.2脚本样式
    • 7.4表格的标识列
      • 7.4.1概念与特点
  • 8.MySQL的安装步骤(MySql是有两个版本进行安装的)
    • 8.1安装版本(这里以图片步骤教大家安装)
    • 8.2压缩版本(仅供参考)
    • 8.3可视化工具
  • 9.对于MySQL数据库的一个思维导图
  • 10.总结

1.数据库大致介绍

1.1.数据库

  • 简单来说,所谓的数据库就是存储数据的容器,而且是永久存储的。

1.2为什么需要数据库

存储数据
MySQL数据库详解_第1张图片

1.3数据库的分类

在实际项目开发中,数据库一共分为两大类:①关系型数据库 ②非关系型数据

非关系型数据库
Redis、MongoDB
关系型数据库 数据库名称
小型数据库 微软Access
中型数据库 DB2、MySQL、SQL Server
大型数据库 Oracle

1.4什么是关系型数据库(MySQL)

通过一种“关系”去管理实体信息,实体信息之间的联系。

关系:实际上就是一张表,有列,还有行。可以进行关联

2.MySQL信息介绍

MySQL是一个关系型数据库管理系统,由瑞典 MySQL AB 公司开发,目前属于 Oracle 旗下公司。MySQL 流行的关系型数据库管理系统,在 WEB 应用方面 MySQL 是好的 RDBMS (Relational Database Management System,关系数据库管理系统) 应用软件之一。MySQL 是一种关联数据库管理系统。

3.为什么会使用MySQL

这里列举了6点,有些是我通过查取资料所获知

  • 1、mysql性能卓越,服务稳定,很少出现异常宕机。
  • 2、mysql开放源代码且无版权制约,自主性及使用成本低。
  • 3、mysql历史悠久,社区及用户非常活跃,遇到问题,可以寻求帮助。
  • 4、mysql软件体积小,安装使用简单,并且易于维护,安装及维护成本低。
  • 5、mysql品牌口碑效应,使得企业无需考虑就直接用之,lamp,lnmp流行架构。
  • 6、mysql支持多种操作系统,提供多种API接口,支持多种开发语言,特别对流行的PHP语言有很好的支持。

4.MySQL中的数据类型与java对比

数值类型 Java MySQL
整型 byte tinyint
short smallint
int int
long bigint
浮点型 float float
double double
字符串类型 String 定长char() ;可变长varchar()
时间日期 date date/time/datetime

5.MySQL中的创建用户

图片详解(这里使用的是可视化工具对数据库进行一个操作,可视化工资具体操作步骤在后面有操作步骤)
MySQL数据库详解_第2张图片
代码块(仅供参考)

--创建用户   'tiedan'@'%' ---->用户名     'tiedan123'---->密码  
GRANT ALL PRIVILEGES ON *.* TO 'tiedan'@'%' IDENTIFIED BY 'tiedan123' WITH GRANT OPTION

--创建一个zz账号,这个账号只能看到tiedan数据库,并且这个数据库中的表操作只有查询跟修改
GRANT SELECT,UPDATE
	ON tiedan.*
	TO 'ZZ'@'localhost'
	IDENTIFIED BY 'ZZ123'

6.MySQL的四大引擎

四大引擎的特点有些事翻阅资料,参考所获知(仅供参考)

6.1四大引擎的概念与特点

功能 MYISAM Memory InnoDB Archive
存储限制 256TB RAM 64TB None
支持事务 NO NO Yes No
支持全文索引 Yes No No No
支持数索引 Yes Yes Yes No
支持哈希索引 No Yes No No
支持数据缓存 No N/A Yes No
支持外键 No No Yes No

6.2MyISAM存储引擎概念与特点

概念:
MyISAM 基于 ISAM 的存储引擎,并对其进行扩展。它是在Web、数据存储和其他应用环境下最常使用的存储引擎之一。MyISAM 拥有较高的插入、查询速度,但不支持事务。
特点:

  1. 不支持事务、不具备AICD特性(原子性、一致性、分离性、永久性)。
  2. 表级别锁定形式(更新数据时锁定整个表、这样虽然可以让锁定的实现成本很小但是同时大大降低了其并发的性能)。
  3. 读写相互阻塞(不仅会在写入的时候阻塞读取、还会在读取的时候阻塞写入、但是读取不会阻塞读取)。
  4. 只会缓存索引(myisam通过key_buffer_size来设置缓存索引,提高访问性能较少磁盘IO的压力、但是只缓存索引、不缓存数据)。
  5. 读取速度快、占用资源比较少。
  6. 不支持外键约束、只支持全文检索。
  7. 是MySQL5.5.5版本之前的默认存储引擎。

6.3 InnoDB存储引擎概念与特点

概念:
事务型数据库的首选引擎,支持ACID事务,支持行级锁定。InnoDB是为处理巨大数据量时的最大性能设计。InnoDB存储引擎完全与MySQL服务器整合,InnoDB存储引擎为在主内存中缓存数据和索引而维持它自己的缓冲池。InnoDB存储它的表&索引在一个表空间中,表空间可以包含数个文件(或原始磁盘分区)。
特点:

  1. 支持事务,支持4个事务隔离级别,支持多版本读。
  2. 行级锁定(更新时一般是锁定当前行),通过索引实现,全表扫描仍然会是表锁,注意间隙锁的影响。
  3. 读写阻塞与事务隔离级别相关。
  4. 具有非常高效的缓存特性:能缓存索引,也能缓存数据。
  5. 整个表和主键以Cluster方式存储,组成一个平衡树。
  6. 支持分区,表空间,类似oracle数据库。

6.4 Memory存储引擎概念与特点

概念:
内存表把表结构存放到磁盘上,而把数据放在内存中
特点:

  1. 使用表级锁,虽然内存访问快,但如果频繁的读写,表级锁会成为瓶颈
  2. 只支持固定大小的行。Varchar类型的字段会存储为固定长度的Char类型,浪费空间
  3. 不支持TEXT、BLOB字段。当有些查询需要使用到临时表(使用的也是MEMORY存储引擎)时,如果表中有TEXT、BLOB字段,那么会转换为基于磁盘的MyISAM表,严重降低性能
  4. 由于内存资源成本昂贵,一般不建议设置过大的内存表,如果内存表满了,可通过清除数据或调整内存表参数来避免报错

6.5 Archive存储引擎概念与特点

概念:
对表数据进行压缩,节省空间
特点:

  1. 只支持insert和select操作(insert into新增 select 查询)
  2. 压缩比率非常高
  3. 锁机制虽然为行锁,但是本身并不支持事务,设计的目的是为了提供高速的插入和索引功能
  4. 支持的索引,仅仅为auto_increment!即仅仅当该列为auto_increment时才支持索引,否则不支持任何形式的索引

7.DDL数据定义

7.1库的创建与管理

//库的创建
1.语法
create database [if not exists] 库名

例如创建一个名字为tiedan的库:
create database IF NOT EXISTS tiedan

2.库的修改(一般用不上)
RENAME DATABASE tiedan TO  新库名

更改库的字符集(一般用不上)
ALTER DATABASE tiedan CHARACTERM SET gbk

3.库的删除
DROP DATABASE IF EXISTS tiedan

7.2表的创建与管理

1.表的创建
语法:
create table 表名(
	列名 列的类型【(长度) 约束】,
	列名 列的类型【(长度) 约束】,
	列名 列的类型【(长度) 约束】

)

例如创建一张名为tiedan的表:
create table tiedan(
	id INT,  --编号
	bname VARCHAR(20),  --名称
	price DOUBLE,  --价格
	publishDate DATETIME   --日期

)

2.表的修改
语法:
alter table 表名 add|drop|modify|change column 列名 【列类型 约束】

例如:
修改列名
ALTER TABLE  tiedan CHANGE COLUMN publishDate pubDate DATETIME

修改列的类型或者约束
ALTER TABLE tiedan MODIFY COLUMN pubdate TIMESTAMP

添加新列
ALTER TABLE author ADD COLUMN annual DOUBLE

删除列
ALTER TABLE tiedan DROP COLUMN annual

修改表名
ALTER TABLE author RENAME TO tiedan_author

表的删除
DROP TABLE IF EXISTS tiedan_author
SHOW TABLES

通用写法
DROP TATABASE IF EXISTS 旧库名
CREATE DATABASE 新库名

DROP TABLE IF EXISTS 旧表名
CREATE TABLE 表名()

表的复制
INSERT INTO author VALUES
(1,'ASDA','d')
(2,'ASDA','d')
(3,'ASDA','d')
(4,'ASDA','d')

复制表结构+数据
CREATE TABLE COPY2

只复制表的部分数据
CREATE TABLE COPY3
SELECT ID,AU_NAME
FROM AUTHOR
WHERE NATION='asda'

7.3.常见的六大约束

7.3.1详解表格

名称 解释
NOT NULL 非空,用于保证该字段的值不能为空
DEFAULT 默认,用于保证该字段有默认值 比如性别
PRIMARY KEY 主键,用于保证该字段的值具有唯一性,并且非空,比如学号,员工编号
UNIQUE 唯一,用于保证该字段的值具有唯一性,可以为空比如座位号
CHECK 检查约束 (MySQL中不支持) 比如年龄或性别
FOREIGN KEY 外键,用于限制两个表的关系,用于保证该字段的值必须来自于主表的关联列的值

7.3.2脚本样式

CREATE TABLE TIEDAN(
	ID INT PRIMARY KEY,//主键
	NAME VARCHAR(20) NOT NULL UNIQUE,//非空约束
	SEX CHAR(1) CHECK(SEX='男' OR SEX='女'),//检查约束
	SEAT INT UNIQUE,//唯一约束
	AGE INT DEFAULT 18,//默认约束
	MAJ INT REFERENCES MAJO(ID) //外键
)

7.4表格的标识列

7.4.1概念与特点

概念:
可以不用手动插入的值,系统提供默认的序列值

特点:

  1. 标识列不需要和主键搭配,只要求是个key
  2. 一个表只能有一个标识列
  3. 标识猎德类型只能是数值型
  4. 标识列可以通过SET AUTO_INCREMENT_INCREMENT=3设置步长,也可以通过手动插入值,设置起始值

8.MySQL的安装步骤(MySql是有两个版本进行安装的)

安装版本与解压版本我上传百度云盘,欢迎大家下载使用
下载链接
点击跳转下载
提取码是:6ohf

8.1安装版本(这里以图片步骤教大家安装)

第一步打开安装
MySQL数据库详解_第3张图片
大家按如图所示一步一步操作
MySQL数据库详解_第4张图片
MySQL数据库详解_第5张图片
这里安装后会自动跳出另一个安装窗口
MySQL数据库详解_第6张图片
MySQL数据库详解_第7张图片

MySQL数据库详解_第8张图片
MySQL数据库详解_第9张图片
MySQL数据库详解_第10张图片
MySQL数据库详解_第11张图片
MySQL数据库详解_第12张图片
安装版本的到这一步,通过cmd.exe文件进行查询,就是安装成功了

8.2压缩版本(仅供参考)

  1. 在我上面发的下载地址,将压缩版本的下载好,然后解压到一个文件夹
  2. 再打开,里面有一个记事本教程
  3. 按照教程第一步配置环境变量
  4. 然后再创建一个ini文件
  5. 然后通过管理员打开cmd.exe文件
  6. 安装记事本中的步骤一步一步操作下来
  7. 一定要细心细心,特别是环境变量配置那里,一个小错误都可能安装失败!

ini文件详解(这里仅供翻译,使用记事本文件现将文件的里面的复制进去,然后再修改后缀)
这里所写的仅供参考

[mysqld]
//设置3306端口
port=3306
//设置mysql的安装目录
basedir=F:\\mysql-8.0.15-winx64   # 切记此处一定要用双斜杠\\,单斜杠我这里会出错,不过看别人的教程,有的是单斜杠。自己尝试吧
//设置mysql数据库的数据的存放目录
datadir=F:\\mysql-8.0.15-winx64\\Data   # 此处同上
//允许最大连接数
max_connections=200
//允许连接失败的次数。这是为了防止有人从该主机试图攻击数据库系统
max_connect_errors=10
//服务端使用的字符集默认为UTF8
character-set-server=utf8
//创建新表时将使用的默认存储引擎
default-storage-engine=INNODB
//默认使用“mysql_native_password”插件认证
default_authentication_plugin=mysql_native_password
[mysql]
//设置mysql客户端默认字符集
default-character-set=utf8
[client]
//设置mysql客户端连接服务端时默认使用的端口
port=3306

8.3可视化工具

为了方便大家下载操作,我将这个可视化工具也提交云盘,欢迎大家进行下载使用(仅供学习参考)
安装版本与解压版本我上传百度云盘,欢迎大家下载使用
点击跳转云盘进行下载
提取码:1l54

  • 安装完成后由于mysql是在cmd。exe命令中运行,或者本身自带的一个exe文件运行
  • 然后就出现了一个可视化工具

MySQL数据库详解_第13张图片
就是这个软件可以对数据库进行连接操作,让我们在使用的时候变得更加方便,更加舒适

打开之后就可以创建连接(功能个人感觉蛮全面的)
MySQL数据库详解_第14张图片

  1. 然后选择MySQL去进行一个连接操作
  2. (这个都是中文版都很明了)
  3. 先进行一个测试连接,成功了就可以直接确定,然后进行使用了.
    MySQL数据库详解_第15张图片
    连接成功后就可对数据库的数据进行一个操作
    MySQL数据库详解_第16张图片

9.对于MySQL数据库的一个思维导图

10.总结

1.对数据库中的运行过程要清楚
2.数据类型的调用与创建要仔细
3.对于数据的增删改查sql语句要熟练使用

欢迎大家观看,有什么不足之处欢迎大家指正!
MySQL数据库详解_第17张图片

你可能感兴趣的:(mysql,mysql)