MySQL数据库详解

1.数据库大致介绍

1.1.数据库

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

1.2为什么需要数据库

存储数据
在这里插入图片描述

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对比

数值类型JavaMySQL
整型bytetinyint
shortsmallint
intint
longbigint
浮点型floatfloat
doubledouble
字符串类型String定长char() ;可变长varchar()
时间日期datedate/time/datetime

5.MySQL中的创建用户

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

--创建用户   '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四大引擎的概念与特点

功能MYISAMMemoryInnoDBArchive
存储限制256TBRAM64TBNone
支持事务NONOYesNo
支持全文索引YesNoNoNo
支持数索引YesYesYesNo
支持哈希索引NoYesNoNo
支持数据缓存NoN/AYesNo
支持外键NoNoYesNo

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安装版本(这里以图片步骤教大家安装)

第一步打开安装
在这里插入图片描述
大家按如图所示一步一步操作
在这里插入图片描述
在这里插入图片描述
这里安装后会自动跳出另一个安装窗口
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
安装版本的到这一步,通过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文件运行
  • 然后就出现了一个可视化工具

在这里插入图片描述
就是这个软件可以对数据库进行连接操作,让我们在使用的时候变得更加方便,更加舒适

打开之后就可以创建连接(功能个人感觉蛮全面的)
在这里插入图片描述

  1. 然后选择MySQL去进行一个连接操作
  2. (这个都是中文版都很明了)
  3. 先进行一个测试连接,成功了就可以直接确定,然后进行使用了.
    在这里插入图片描述
    连接成功后就可对数据库的数据进行一个操作
    在这里插入图片描述

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

在这里插入图片描述

10.总结

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

欢迎大家观看,有什么不足之处欢迎大家指正!
在这里插入图片描述

  • 3
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值