mysql 数据库 基本介绍

一  数据

(一)数据是什么

描述事物的符号记录

包括数字,文字、图形、图像、声音、档案记录气

以“记录”形式按统一的格式进行存储

(二)数据的分类

1,结构化的数据

即有固定格式和有限长度的数据。例如填的表格就是结构化的数据,国籍:中华人民共和国,民族:汉,性别:男,这都叫结构化数据

2,非结构化的数据

非结构化的数据越来越多,就是不定长、无固定格式的数据,例如网页,有时候非常长,有时候几句话就没了;例如语音,视频都是非结构化的数据

3,半结构化数据

比如:XML或者HTML的格式的数据

二   数据库管理系统

(一)DBMS 是什么

是实现对数据库资源有效组织、管理和存取的系统软件
具有数据库的建立和维护功能、数据定义功能、数据操纵功能、数据库的运行管理功能、通信功能

(二)数据库系统

是一个人机系统由硬件、OS、数据库、DBMS、应用软件和数据库用户组成

用户可以通过DBMS或应用程序操作数据库

(三)DBMS  工作模式

1>接受应用程序的数据请求和处理请求

2>将用户的数据请求(高级指令)转换为复杂机器代码(底层指令)

3>实现对数据库的操作
4>从数据库的操作中接受查询结果

5>对查询结果进行处理(格式转换)

6>将处理结果返回给用户

三   数据库发展历史

(一)第一代数据库

自20世纪60年代起,第一代数据库系统问世

是层次模型与网状模型的数据库系统

为统一管理和共享数据提供了有力的支撑

(二)第二代数据库

20世纪70年代初,第二代数据库--关系数据库开始出现

20世纪80年代初,IBM公司的关系数据库系统DB2问世,开始逐步取代层次与网状模型的数据库,成为行业主流

到目前为止,关系数据库系统仍占领数据库应用的主要地位

(三)第三代数据库

自20世纪80年代开始,适应不同领域的新型数据库系统不断涌现面向对象的数据库系统,实用性强、适应面广
20世纪90年代后期,形成了多种数据库系统共同支撑应用的局面一些新的元素被添加进主流数据库系统中
例如,Oracle支持的“关系-对象”数据库模型

就是把 关系和 非关系结合

为什么要这样?  

为关系型数据库 遇到高并发 处理不过来

非关系型数据库 拖底

(四)时序 数据库

(天气预报)

四  关系数据库

(一)关系数据库简介

关系数据库系统是基于关系模型的数据库系统

关系模型的数据结构使用简单易懂的二维数据表(理解为行加列)

关系模型可用简单的“实体-关系”(E-R)图来表示

E-R图中包含了实体(数据对象)、关系和属性三个要素

(二)实体  属性 联系

1,实体

也称为实例,对应现实世界中可区别于其他对象的“事件”或事物
如银行客户、银行账户等

2,属性

实体所具有的某一特性,一个实体可以有多个属性

如“银行客户”实体集中的每个实体均具有姓名、住址、电话等属性

3,联系

实体集之间的对应关系称为联系,也称为关系

如银行客户和银行账户之间存在“储蓄”的关系

所有实体及实体之间联系的集合构成一个关系数据库

(三) 关系数据库表格

1, 关系数据库结构

关系数据库的存储结构是二维表格

在每个二维表中

每一行称为一条记录,用来描述一个对象的信息

每一列称为一个字段,用来描述对象的一个属性

2  关系型数据库应用

关系型数据库应用举例
Oracle,MySQL12306用户信息系统
SQLServer、Sybase淘宝账号系统
Informix、access联通手机号信息系统
DB2、FoxPRO银行用户账号系统
PostgreSQL
 
网站用户信息系统

(四) 主流数据库介绍

1,SQL Server(微软公司产品)

面向Windows操作系统
简单、易用

2,Oracle(甲骨文公司产品)

面向所有主流平台
安全、完善,操作复杂

3,DB2(IBM公司产品)

面向所有主流平台
安全、完善,大型

4,MySQL(甲骨文公司收购)

免费、开源、体积小

5,postgrsql 数据库

五    非关系数据库介绍

(一)非关系数据库简介

非关系数据库也被称作NoSQL(Not OnlySQL)

存储数据不以关系模型为依据,不需要固定的表格式

(二)非关系数据库优点

数据库可高并发读写

对海量数据高效率存储与访问

数据库具有高扩展性与高可用性

(三)常用的非关系数据库

Redis、mongoDB等

六   关系型数据库和非关系型数据库 对比

(一)关系型数据库

关系型数据库最典型的数据结构是表,由二维表及其之间的联系所组成的一个数据组织

数据在硬盘

优点:
1、易于维护:都是使用表结构,格式一致;
2、使用方便:SQL语言通用,可用于复杂查询;
3、复杂操作:支持SQL,可用于一个表以及多个表之间非常复杂的查询。
缺点:
1、读写性能比较差,尤其是海量数据的高效率读写;
2、固定的表结构,灵活度稍欠;
3、高并发读写需求,传统关系型数据库来说,硬盘I/O是一个很大的瓶颈。

(二)非关系型数据库

非关系型数据库严格上不是一种数据库,应该是一种数据结构化存储方法的集合,可以是文档或者键值对等。

数据在内存

优点:

1、格式灵活:存储数据的格式可以是key,value形式、文档形式、图片形式等等,文档形式、
图片形式等等,使用灵活,应用场景广泛,而关系型数据库则只支持基础类型。
2、速度快:nosql可以使用硬盘或者随机存储器作为载体,而关系型数据库只能使用硬盘;
3、高扩展性;
4、成本低:nosql数据库部署简单,基本都是开源软件。

缺点:

1、不提供sql支持,学习和使用成本较高;
2、无事务处理;

yum -y install gcc gcc-c++ cmake bison bison-devel zlib-devel libcurl-devel libarchive-devel boost-devel   ncurses-devel gnutls-devel libxml2-devel openssl-devel libevent-devel libaio-devel


3、数据结构相对复杂,复杂查询方面稍欠。

(三)redis 和其他非关系型数据库(MongoDB)区别

相同点:存储高热数据(在内存中高速运行)
不同点:redis可以做持久化保存,可以存储对象

七   安装 mysql

编译安装

1,安装相关依赖包

yum -y install gcc gcc-c++ cmake bison bison-devel zlib-devel libcurl-devel libarchive-devel boost-devel   ncurses-devel gnutls-devel libxml2-devel openssl-devel libevent-devel libaio-devel

2,下载并解压缩源码包

tar xf  mysql-boost-5.7.20.tar.gz

[root@localhost opt]#cd mysql-5.7.20/
cmake \
-DCMAKE_INSTALL_PREFIX=/usr/local/mysql \
-DMYSQL_UNIX_ADDR=/usr/local/mysql/mysql.sock \
-DSYSCONFDIR=/etc \
-DSYSTEMD_PID_DIR=/usr/local/mysql \
-DDEFAULT_CHARSET=utf8  \
-DDEFAULT_COLLATION=utf8_general_ci \
-DWITH_INNOBASE_STORAGE_ENGINE=1 \
-DWITH_ARCHIVE_STORAGE_ENGINE=1 \
-DWITH_BLACKHOLE_STORAGE_ENGINE=1 \
-DWITH_PERFSCHEMA_STORAGE_ENGINE=1 \
-DMYSQL_DATADIR=/usr/local/mysql/data \
-DWITH_BOOST=boost \
-DWITH_SYSTEMD=1
#############模块解释#####################
-DCMAKE_INSTALL_PREFIX=/usr/local/mysql \
#指定mysql的安装路径
-DMYSQL_UNIX_ADDR=/usr/local/mysql/mysql.sock \
#指定mysql进程监听套接字文件(数据库连接文件)的存储路径
-DSYSCONFDIR=/etc \
#指定配置文件的存储路径
-DSYSTEMD_PID_DIR=/usr/local/mysql \
#指定进程文件的存储路径
-DDEFAULT_CHARSET=utf8  \
#指定默认使用的字符集编码,如utf8
-DDEFAULT_COLLATION=utf8_general_ci \
#指定默认使用的字符集校对规则
-DWITH_INNOBASE_STORAGE_ENGINE=1 \
#安装INNOBASE存储引擎
-DWITH_ARCHIVE_STORAGE_ENGINE=1 \
#安装ARCHIVE存储引擎
-DWITH_BLACKHOLE_STORAGE_ENGINE=1 \
#安装BLACKHOLE存储引擎
-DWITH_PERFSCHEMA_STORAGE_ENGINE=1 \
#安装FEDERATED存储引擎
-DMYSQL_DATADIR=/usr/local/mysql/data \
#指定数据库文件的存储路径
-DWITH_BOOST=boost \
#指定boost的路径,
-DWITH_SYSTEMD=1
#生成便于systemctl管理的文件
#############模块解释#####################

3,make 
make install

4,数据库目录进行权限调整

chown -R mysql:mysql /usr/local/mysql/

5,调整配置文件

vi /etc/my.cnf   把原来内容都删掉

[client]
port = 3306
default-character-set=utf8
socket = /usr/local/mysql/mysql.sock

[mysql]
port = 3306
default-character-set=utf8
socket = /usr/local/mysql/mysql.sock

[mysqld]
user = mysql
basedir = /usr/local/mysql
datadir = /usr/local/mysql/data
port = 3306
character_set_server=utf8
pid-file = /usr/local/mysql/mysqld.pid
socket = /usr/local/mysql/mysql.sock
server-id = 1

sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER,NO_AUTO_VALUE_ON_ZERO,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,PIPES_AS_CONCAT,ANSI_QUOTES

解释: 

NO_ENGINE_SUBSTITUTION
如果需要的存储引擎被禁用或未编译,那么抛出错误。不设置此值时,用默认的存储引擎替代,并抛出一个异常
STRICT_TRANS_TABLES
在该模式下,如果一个值不能插入到一个事务表中,则中断当前的操作,对非事务表不做限制
NO_AUTO_CREATE_USER
禁止:GRANT创建密码为空的用户
NO_AUTO_VALUE_ON_ZERO
mysql中的自增长列可以从o开始。默认情况下自增长列是从1开始的,如果你插入值为0的数据会报错
NO_ZERO_IN_DATE
mysql数据库不允许插入零日期,插入零日期会抛出错误而不是警告
ERROR_FOR_DIVISION_BY_ZERO
在INSERT或UPDATE过程中,如果数据被零除,则产生错误而非警告。默认情况下数据被零除时MysQL返回NULL
IPES_AS_CONCAT
将"||"视为字符串的连接操作符而非或运算符,这和oracle数据库是一样的,
ANSI QUOTES
启用ANSI QUOTES后,不能用双引号来引用字符串,因为它被解释为识别符

6 改变属主 属组

chown mysql:mysql /etc/my.cnf

7,设置环境变量

echo 'PATH=/usr/local/mysql/bin:/usr/local/mysql/lib:$PATH' >> /etc/profile
echo 'export PATH' >> /etc/profile
source /etc/profile

8,初始化数据库

cd /usr/local/mysql/

bin/mysqld \
--initialize-insecure \
--user=mysql \
--basedir=/usr/local/mysql \
--datadir=/usr/local/mysql/data

cp usr/lib/systemd/system/mysqld.service /usr/lib/systemd/system/

9,数据库开启自启、 关闭、状态

systemctl enable mysqld
systemctl start mysqld
systemctl stop mysqld
systemctl status mysqld
netstat -anpt | grep 3306

10 设置Mysql密码

mysqladmin -u root -p password

#开始初始密码为空  回车即可   然后输入新密码

11  登录数据库

mysql -u root -p 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/472030.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

01_Kubernetes基础

Kubernetes为什么叫K8S:因为K和S之间有8个字母 为什么需要K8S 对于云计算来说有自己的交互标准 Paas的下一代标准就是容器化,容器的集群化有没有很好的方案?有需求就会有产品,这个产品就叫做资源管理器。 首先是Apache的MESOS&…

Linux虚拟主机默认隐藏文件,如何开启显示

收到一位用户反馈他买了Hostease Linux虚拟主机,想要知道主机默认隐藏文件如何开启。据悉目前大部分主机提供商出售的Linux虚拟主机带的都是cPanel面板,因此开启隐藏文件操做需要进入到cPanel面板。操做步骤如下: 1.首先需要先登陆cPanel面板…

深度强化学习03价值学习

Q*类似于先知,知道动作的后果 价值学习是得到一个近似的价值函数

【Linux】Linux安装软件---软件包管理器 yum

主页:醋溜马桶圈-CSDN博客 专栏:Linux_醋溜马桶圈的博客-CSDN博客 gitee:mnxcc (mnxcc) - Gitee.com 目录 1.Linux中安装软件 1.1 源代码安装 1.2 rpm包安装 1.3 yum安装 1.3.1 举例 1.3.2 图示yum下载安装 2.Linux系统的生态 如何选…

如何构建Docker自定义镜像

说明:平常我们使用Docker运行各种容器,极大地方便了我们对开发应用的使用,如MySQL、Redis,以及各种中间件,使用时只要拉镜像,运行容器即可。本文介绍如何创建一个Demo,自定义构建一个镜像。 开…

酷开科技聚焦大屏端数据研究,构建酷开系统深度挖掘大屏商业价值

中国所有的彩色大屏中,智能电视规模已经过半,OTT平台的数据价值越发引起人们关注。作为OTT行业的头部代表,酷开科技一直聚焦大屏端数据研究,目前已经形成一套基于大屏指数的智慧营销体系,让OTT大屏的数字营销化水平实现…

开源工具专题-02 Confluence企业级wiki

开源工具专题-02 Confluence企业级wiki 注: 本教程由羞涩梦整理同步发布,本人技术分享站点:blog.hukanfa.com 转发本文请备注原文链接,本文内容整理日期:2024-3-20 csdn 博客名称:五维空间-影子&#xf…

使用libdivsufsort库构建后缀数组

libdivsufsort是一个C语言库,用于构建后缀数组(Suffix Array)以及执行与后缀数组相关的操作。后缀数组是一种数据结构,用于有效地解决字符串处理问题,如字符串匹配、最长公共子串等。这个库的目标是提供高效、可移植和易于使用的后缀数组实现。 https://github.com/y-256…

我的自建博客之旅06之Mrdoc

这个是我折腾笔记项目的最后一篇文章了,这个项目是类似于语雀的文档笔记项目,因为我当初想找一个既可以当做笔记,又可以作为团队文档分享的笔记,除了语雀,就发现了这个项目。 这个开源项目的界面或者文档组织方式其实是我最喜欢的,但是我后来放弃它的原因是它的后台编辑逻…

Android StateLayout状态页

文章目录 Android StateLayout状态页概述源码使用源码下载 Android StateLayout状态页 概述 StateLayout(状态页)包含:加载中页面,错误页面,空页面,内含状态默认页面,支持自定义页面。 源码 …

提高WhatsApp营销效果:如何在WhatsApp上增加打开率和提高转化率?

提高WhatsApp营销效果:如何在WhatsApp上增加打开率和提高转化率? WhatsApp是一款广受欢迎的社交应用程序,不仅可以用于个人通讯,也可以用于企业营销。许多企业已经开始在WhatsApp上进行营销活动,但是如何提高营销效果…

极佳文件备份工具支持独占文件备份

1 指定备份的文件夹或者分区盘符 或者子文件夹dir1;dir2;dir3; 2 指定备份到哪里 例如disk1 E分区内的backup文件夹 3 指定备份周期 每日几点几分备份,每周几 几点几分备份 或者 间隔几时几分备份 4 备份模式 单向 将数据源文件夹 完整复制到 目标文件夹, 包括正…

JavaScript高级(十八)---进程和线程,宏任务和微任务

进程和线程 进程(process):计算机已经运行的程序,是操作系统管理程序的一种方式,我们可以认为,启动一个应用程序,就会默认启动一个进程(也可能是多个进程)。 线程&…

【现代C++】移动语义和右值引用

现代C中的移动语义和右值引用是C11引入的重要特性,旨在优化资源管理和提升性能。这些特性允许资源的转移而非复制,特别是对于临时对象和大型对象。 1. 右值引用 右值引用是对临时对象的引用,它允许你修改临时对象。使用&&来声明右值…

阿里云效flow流水线构建时内存不足

云效flow流水线构建时内存不足 报错截图 咨询阿里云后建议自己搭建私有化集群 https://help.aliyun.com/document_detail/201868.html?spm5176.2020520104.0.0.481b3f1bw2Mr1v 搭建地址 打开流水线,只有管理员和拥有者才能看到这个菜单 注意:构建集群…

【数组、字符串】算法例题

每个题的【方法1】是自己的思路,【其他方法】是力扣上更优的解题思路 目录 一、数组、字符串 1. 合并两个有序数组 ① 2. 移除元素 ① 3. 删除有序数组中的重复项 ① 4. 删除有序数组中的重复项 II ② 5. 多数元素 ① 6. 轮转数组 ② 7. 买卖股票的最佳时机…

[leetcode] 45. 跳跃游戏 II

文章目录 题目描述解题方法贪心java代码复杂度分析 题目描述 给定一个长度为 n 的 0 索引整数数组 nums。初始位置为 nums[0]。 每个元素 nums[i] 表示从索引 i 向前跳转的最大长度。换句话说,如果你在 nums[i] 处,你可以跳转到任意 nums[i j] 处: 0…

【二分查找】算法例题

目录 十八、二分查找 114. 搜索插入位置 ① √- 115. 搜索二维矩阵 ② 116. 寻找峰值 ② √- 117. 搜索旋转排序数组 ② 118. 在排序数组中查找元素的第一个和最后一个位置 ② √ 119. 寻找寻钻排序数组中的最小值 ② 120. 寻找两个正序数组的中位数 ③ 136. 直线上最多…

MTLAB 批量下载 脑医学图像数据集BrainWeb: Simulated Brain Database

MTLAB 批量下载 脑医学图像数据集BrainWeb: Simulated Brain Database BrainWeb数据集的网址:https://brainweb.bic.mni.mcgill.ca/brainweb/ 1. 了解 BrainWeb: Simulated Brain Database 这是一个模拟大脑数据的数据库(SBD,Simulated Br…

京师心智心理健康测评系统 MyReport.ashx 信息泄露漏洞复现

0x01 产品简介 京师心智心理健康测评系统由心理学专家指导研发,使用先进的测试方法,通过一系列的数据处理将人的心理特征数量化,以此来衡量个体心理因素水平以及心理差异,帮助开展标准化心理健康工作。 0x02 漏洞概述 京师心智…