初识MYSQL

目录:

1、表

2、数据库

  2.1数据库管理系统

  2.2数据库系统

  2.3DBMS的工作流程

3、关系型数据库

4、非关系型数据库

5、关系型数据与非数据库的区别

6、mysql

7、安装mysql

数据库MYSQL

 
0

数据(Data)

描述事物的符号记录
包括数字、文字、图形、声音、档案记录等
以"记录"形式按统一的格式进行存储

将不同的记录组织在一起
用来存储具体数据
记录:行
字段(属性):列
以行+列的形式组成了表(数据存储在表中)
关系数据库的表由记录组成,记录由字段组成,宁段由字符或数字组成。它可以供各种用户共享, 具有最小冗余度和较高的数据独立性,它是统一管理的相关数据的集合。
 

数据库

表的集合,是存储数据的仓库
以一定的组织方式存储的相互有关发数据集合
数据库就是表的集合。它是以一定的组织方式存储的相五有关的数据集合

数据库管理系统(DBMS)

0
是实现对数据库资源有效组织、管理和存取的系统软件
数据库的建立和维护功能、数据定义功能、数据操纵功能、数据库的运行管理功能、通信功能
①数据库的建立和维护功能:包括建立数据库的结构和数据的录入与转换、数据库的转储与恢复、数据库的重组与性能监视等功能。
②数据定义功能:包括定义全局数据结构、局部逻辑数据结构、存储结构、保密模式及信息格式等功能。保证存储在数据库中的数据正确、有效和相容,以防止不合语义的错数据被输入或输出。
③数据操纵功能: 包括数据查询统计和数据更新两个方面。
④数据库的运行管理功能: 这是数据库管理系统的核心部分,包括并发控制、存取控制、数据库内部维护等功能。
⑤通信功能: DBMS 与其他软件系统之间的通信,如 Access 能与其他 office组件进行数据交换。
 

数据库系统

数据库系统是1个人机系统,由硬件、OS、数据库、DBMS、应用软件和数据库用户组成(包括数据库管理员)
用户可以通过DBMS或应用程序操作数据库
应用程序是利用DBMS为解决某个具体的管理或数据处理的任务而编制的一系列命令的有序集合。如果应用程序比较完善,能够提供友好的人机界面,并编译成可执行文件发行,使得普通用户不需要具备计算机的专业知识,在较短时间就学会使用,那么就称为数据库应用软件。 navicat
 
常用的数据库应用软件有人事管理、财务管理、图书管理等信息管理软件及各类信息咨询系统等。
数据库管理员 (DatabaseAdministrator,DBA) 负责数据库的更新和备份、数据库系统的维护、用户管理等工作,保证数据库系统的正常运行。DBA一般由业务水平较高、资历较深的人员担任。
需要注意的是数据库、数据库系统、数据库管理系统,甚至数据库表等名词,在日常讨论中通常不严格区别。遇到此情况时,可以根据具体情况,判断出实际所指的是什么。
 

DBMS的工作流程:

0
1>接受应用程序的数据请求和处理请求
2>将用户的数据请求(高级指令) 转换为复杂机器代码(底层指令)
3>实现对数据库的操作
4>从数据库的操作中接受查询结果
5>对查询结果进行处理 (格式转换 )
6>将处理结果返回给用户
 
关系型数据库→大部分都是采用的这个
NOSQL→非关系型数据库(记录键和值/变量)
SQL+NOSQL
 
 
主流数据库公司
0
SQL Server(微软公司产品)
面向Windows操作系统
简单、易用
 
Oracle(甲骨文公司产品)
面向所有主流平台
安全、完善,操作复杂
 
DB2(IBM公司产品)
面向所有主流平台
大型、安全、完善
 
MYSQL(甲骨文公司收购)
免费、开源、体积小

 

关系型数据库

关系数据库系统是基于关系模型的数据库系统
关系模型的数据结构使用简单易懂的二维数据表
关系模型可用简单的“实体-关系”(E-R)图来表示
E-R图中包含了实体(数据对象)关系和属性三个要素
0
所有实体及实体之间联系的集合构成一个关系数据库
关系数据库的存储结构是二维表,在每个二位表中
每一行称为一条记录,用来描述1个对象的信息
每一列称为一个字段,用来描述对象的属性

实体

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

属性

实体所具有的某一特性,一个实体可以有多个属性
如“银行客户”实体集中的每个实体均具有姓名、住址、电话等属性

联系

实体集之间的对应关系称为联系,也称为关系
如银行客户和银行账户之间存在“储蓄”的关系
 

非关系数据库(NOSQL)

非关系数据库也被称作NOSQL (Not Only SQL)
关系型数据库适用于对关系很明确的数据建立模型、定义、存储数据
非关系数据库:存储海量数据,给与“大数据”进行分析,筛选出有价值的部分
存储数据不以关系模型为依据,不需要固定的表格式
非关系型数据库的优点
  • 数据库可高并发读写
  • 对海量数据高效率存储与访问
  • 数据库具有高扩展性与高可用性
常用的非关系数据库:Redis、mongoDB等
 
关系型数据库适用于对关系很明确的数据建立模型、定义、存储数据
非关系数据库:存储海量数据,给与“大数据”进行分析,筛选出有价值的部分
NOSQL不仅仅数据库 还可以缓存数据
键值 键就是变量名 值就是变量值了
引申: redis 持久化方式
以键值存储数据,数据保存在内存中,但会定期将数据写入磁盘(持久化方式)
 

关系型数据与非数据库的区别

关系数据库:
关系数据库结构是二维数据库表,二维表当中每个字段(列) 用来描述对象的一个属性,每个记录(行) 用来描述一个对象的信息 (完整信息) ,关系数据库写到哪里也就是存储在硬盘当中 读写系统就会受到的IO限制或者瓶颈
 
其他:
关系型数据库最典型的数据结构是表,由二维表及其之间的联系所组成的一个数据组织
优点:
1、易于维护:都是使用表结构,格式一致:
SOL语言通用,可用于复杂查询
2、使用方便:SQL语言 通用,可以用于复杂查询
3、复杂操作: 支持SQL,可用于一个表以及多个表之间非常复杂的查询。
缺点:
1、读写性能比较差,尤其是海量数据的高效率读写
2、固定的表结构,灵活度稍欠;
3、高并发读写需求,传统关系型数据库来说,硬盘I/0是一个很大的瓶颈
 
非关系型数据库(NoSQL)
MongoDB、Redis(内存数据库/缓存数据库) k-v键值对、与之类似的Memcache,K-V键值对
redis-memecache对比
相同点: 存储高热数据(在内存中高速运行 )
不同点: redis可以做持久化保存,可以存储对象
非关系型数据库严格上不是一种数据库,应该是一种数据结构化存储方法的集合,可以是文档或者键值对等
优点:
1、格式灵活:存储数据的格式可以是key,value形式、文档形式、图片形式等等,文档形图片形式等等,使用灵活,应用场景广泛,而关系型数据库则只支持基础类型。
2、速度快: nosql可以使用硬盘或者随机存储器作为载体,而关系型数据库只能使用硬盘
3、高扩展性
4、成本低: nosql数据库部署要简单,基本都是开源软件。
 
缺点:
1、不提供sql支持,学习和使用成本较高;
2、无事务处理;
3、数据结构相对复杂,复杂查询方面稍欠。
4、很多数据写在内存中
 

MYSQL

一款深受欢迎的开源关系型数据库
Oracle旗下产品
遵守GPL协议,可以免费使用与修改
特点:
性能卓越、服务稳定
开源、无版权限制、成本低
多线程、多用户
基于C/S架构
安全可靠
 
有商业和社区版
区别:商业版更稳定,有服务。社区没有,遵从GPL可以免费使用
日志
数据库日志文件用于备份,恢复,故障定位、分析是最核心的部分
 
 
 
优点:易于维护,使用方便(sql语言方便),复杂操作(支持sql语言)
缺点:
1、读写性能较差
2、缺乏灵活性
3、高并发读写需求,会遇到IO瓶颈
 
show databases查看数据库信息
use mysql; (切换数据库)
show tables 看表
describe user; 描述字段
filed字段名称 tpye数据类型 null是否为空 key主键 extra是否扩展
select * from user;查询表的内容 \G
 

安装Mysql

 
yum -y install gcc gcc-c++ ncurses ncurses-devel bison cmake
useradd -s /sbin/nologin mysql
tar zxvf mysql-5.7.17.tar.gz -C /opt
tar zxvf boost_1_59_0.tar.gz -C /usr/local/
mv /usr/local/boost_1_59_0 /usr/local/boost
cd /opt/mysql-5.7.17/
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_EXTRA_CHARSETS=all
-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=/usr/local/boost
-DWITH_SYSTEMD=1
make && make install
useradd -s /sbin/nologin mysql
chown -R mysql:mysql /usr/local/mysql/
chown mysql:mysql /etc/my.cnf
vim /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
auto-rehash
[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
bind-address = 0.0.0.0
skip-name-resolve
max_connections=2048
default-storage-engine=INNODB
max_allowed_packet=16M
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
设置环境变量
echo "PATH=$PATH:/usr/local/mysql/bin" >> /etc/profile
source /etc/profile
cd /usr/local/mysql/bin/
./mysqld
--initialize-insecure
--user=mysql
--basedir=/usr/local/mysql
--datadir=/usr/local/mysql/data
cp /usr/local/mysql/usr/lib/systemd/system/mysqld.service /usr/lib/systemd/system/
systemctl daemon-reload
systemctl start mysqld.service
systemctl enable mysqld
netstat -anpt | grep 3306
#给root账号设置密码
mysqladmin -u root -p password "123456"
————》直接回车
posted @ 2022-11-23 18:54  七分人格  阅读(54)  评论(0编辑  收藏  举报