mysql基础1——发展起源、数据类型、基础安装

news2024/12/23 9:51:05

文章目录

  • 一、基本了解
    • 1.1 DBMS数据库管理系统
    • 1.2 主流关系型数据库
    • 1.3 数据表概念
    • 1.4 关系型数据库的组成
    • 1.5 数据类型
      • 1.5.1 数值型
        • 1.5.1.1 整数型
        • 1.5.1.2 小数型
      • 1.5.2 字符串型
      • 1.5.3 日期时间型
      • 1.5.4 枚举型
  • 二、yum安装mariadb
  • 三、二进制安装mysql

一、基本了解

前提背景:

  • mariadb是一种关系型数据库,其前身是5.7版本的mysql数据库。
  • 当时mysql数据库因免费开源就迅速火热起来,直接占领了90%的市场,后来被oracle公司收购后,就开始收费,随后原班团队又基于v5.7mysql打造了mariadb,一出来就是10.0版本。
  • 现很多公司使用的都是5.7版本的myql数据库,也有使用10.0版本的mariadb数据库,两个数据库95%的相似。

什么是关系型数据库?

  • 存放表与表之间具有关联关系表的数据库,称之为关系型数据库。
    在这里插入图片描述

1.1 DBMS数据库管理系统

DBMS与RDBMS:

  • DBMS是用于存储和管理数据的软件,可提供对数据的操作(插入,删除、更新),还可以执行定义,创建,修改和控制数据库的功能。它是专门用于创建和维护数据,并使单个业务应用程序能够提取所需的数据。
  • RDBMS关系数据库管理系统(RDBMS)是DBMS系统的高级版本。与DBMS相比,RDBMS系统还允许组织更有效地访问数据。RDBMS是一个软件系统,用于仅存储需要以表格形式存储的数据。在这种系统中,数据以行和列的形式进行管理和存储,这被称为元组和属性。

DBMS概念:

  • 数据库管理系统,简称DBMS。是针对数据库文件及数据进行【统一管理】的【软件系统】。
  • DNMS作用非常强大,既可以识别我们传输的SQL所表达的意思,对数据库里的表数据进行增删改查,又可以对数据进行管控,限制用户对表数据进行操作的权限,还可以进行数据维护等众多功能。
    在这里插入图片描述

1.2 主流关系型数据库

  • 甲骨文Oracle:Oracle数据库是世界上最受欢迎的企业数据库之一,旨在支撑可靠、安全的存储,检索和处理所有形式的数据。常用于金融、医药类传统行业或者是政府部门。
  • 微软SQL Server:SQL Server由世界第一软件提供商MICROSOFT公司推出,是与Oracle、IBM的DB2齐名的企业级商用数据库“三巨头”之一。与其他数据库相比,其操作性和交互性有着很大的优势,常用于ERP系统、商业智能、零售商、餐饮、事业单位等场景。局限性很大,只有运行在windows和Linux系统才能获得最大的性能支撑。
  • mysql、mariadb:是一款安全、跨平台、高效的,并与PHP、Java等主流编程语言紧密结合的数据库系统。是目前运行速度最快的SQL语言数据库之一,开源免费,简单易用,深受互联网行业喜爱。
    在这里插入图片描述

1.3 数据表概念

  • 数据库:用于存储数据的仓库,按照【特定格式】存储的【数据文件】的集合,由若干数据表组成。

  • 表:由若干字段和若干记录组成的二维表格。

  • 字段:数据类型相同的列,表头称为字段名称。

  • 记录:一行记录就是一条数据。

  • 主键:具有唯一标识记录的字段。

  • 约束:向数据表提供的数据要遵守的限制。

    • 主键约束:一个或多个字段的组合,填入的数据必须能在本表中唯一标识本行。且必须提供数据,不能为空,一个表只能存在一个。
    • 一键约束:一个或多个字段的组合,填入的数据必须能在本表中唯一标识本行。允许为空,一个表可以存在多个。
    • 外键约束:一个表中的某字段可填入数据取决于另一个表的主键已有的数据检查性约束。普遍会和主键约束一起使用,用来确保数据的一致性。对于两个具有关联关系的表来说,相关联字段中主键所在的表就是主表(父表),外键所在的表就是从表(子表)。所以外键就是用来建立主表与从表的关联关系,为两个表的数据建立连接,约束两个表中数据的一致性和完整性。

    在这里插入图片描述

1.4 关系型数据库的组成

关系型数据库常见组件:

  • 数据库:database
  • 表:table,由行(row)和列(column)组成
  • 索引:index
  • 视图:view
  • 用户:user
  • 权限:privilege
  • 存储过程:procedure
  • 存储函数:function
  • 触发器:trigger
  • 事件调度器:event scheduler

mysql数据库程序组成:

  • 客户端:若是安装的mariadb,则客户端是mariadb;若是安装的mysql,则客户端是mysql。
    • mysql/mariadb:CLI交互式客户端程序。
    • mysql_secure_installation:安全初始化,强烈建议安装完以后执行此命令。
    • mysqldump:mysql备份工具。
    • mysqladmin:数据备份工具,也可以设置密码。
  • 服务端: 若安装的是mariadb,则服务端是mariadb-server;若是安装的mysql,则服务端是mysqld。

服务器监听的两种socket地址:

  1. ip socket:默认监听在tcp的3306端口,支持远程通信。
  2. unix sock:监听在sock文件上(/tmp/mysql.sock,/var/lib/mysql/mysql.sock),仅支持本地通信,server地址只能是:localhost,127.0.0.1。

1.5 数据类型

1.5.1 数值型

1.5.1.1 整数型

基本了解:

  • 1 Bytes=1字节,磁盘空间大小单位。
  • 每在服务器上存一个8位数的二进制数字,就会占用1字节的磁盘空间,例如:10101101
  • 有符号:signed。
  • 无符号:unsigned。

举例:

  • 年龄字段应该为正整数,所以应该设置成Age int unsigned。

理由:

  • Age INT ,默认设置成有符号的,为Age int signed。但年龄不应该存在负数,所以应该设置成无符号的,为:Age int unsigned。

在这里插入图片描述

1.5.1.2 小数型

  1. float 、double超出精度,会自动进行四舍五入处理。
    • 比如Salary float(10,2),如存入数据为1000.005,则获取数据为1000.01。
  2. decimal精度可达28位,用于应对科学、金融、经纬度等数据精度要求高的场景。
    • 比如Salary decimal(10,2)。

在这里插入图片描述

1.5.2 字符串型

1.常用字符串型。

  1. char是定长字符串,varchar是变长字符串。
    • EmployeeID char(20),存入字符串内容:‘EMP-00001’,依然会占据20个字符的空间。
    • EmployeeID varchar(20),存入字符串内容:‘EMP-00001’,则只会占据9个字符的空间。

在这里插入图片描述

2.文本型。

  1. text无法设置长度,占据空间固定。
    • EmployeeID text ,存入字符串内容:‘EMP-00001’,会占据65535个字符的空间。
    • 所以文本型字符串用的少,更多使用varchar字符串型。

在这里插入图片描述

1.5.3 日期时间型

  1. date类型字段,只能存储日期数据。datetime类型字段,则可以存储日期和时间。
    • JoinedAt date,只能存入日期:‘2022-01-05’。
    • JoinedAt datetime,则可以存入日期和时间,‘2022-01-05 10:10:00’。
  2. datetime和timstamp类型字段,都可以存储日期和时间,主要区别在于存储的范围不同。有时区概念,不常用,一般采用datetime类型。
    在这里插入图片描述

1.5.4 枚举型

  1. 枚举类型作用:限制存入内容只能是固定值,任选其一。
    • Gender enum (‘男’,‘女’)
    • JobPosition enum(‘业务经理’,‘开发人员’,‘顾问’)

在这里插入图片描述

二、yum安装mariadb

三种安装方式:

  • 源代码:编译安装。
  • 二进制格式的程序包:展开至特定路径,并经过简单配置后即可使用。
  • 程序包管理器管理的程序包:
    • rpm安装:OS Vendor操作系统发行商提供;项目官方提供的。
    • deb安装

注意事项:

  1. mariadb与mysql有些不同,mariadb安装后默认没有密码就可直接登录数据库,而mysql安装后有个默认密码,在/var/log/mysql/mysql.log日志中查找该密码,需使用默认密码方能登录数据库。
  2. mariadb安装后需要设置密码,设置的密码是保存在数据库中的某张表里,采用密文方式保存。
  3. mariadb-server是服务端,mariadb是客户端。
  4. 若使用yum源安装mysql,则需要卸载最开始安装的yum源,防止自动升级,卸载命令rpm -e mysql57-community-release。但在公司中一般都是使用二进制安装。

1.yum安装。

yum -y install mariadb mariadb-common mariadb-devel mariadb-server

2.启动服务,并设置开机自启。

systemctl  start mariadb
systemctl  enable mariadb

3.默认无密码,登录数据库。
在这里插入图片描述
4.设置数据库密码为qingjun,此时登录数据库就需要输入密码才能登录。

set password = password('qingjun');

在这里插入图片描述
5.查看数据库内的保存密码

select * from mysql.user\G;

在这里插入图片描述
6.修改数据库密码。

##方式一。
SET password for 'root'@'localhost'=password('123456');

在这里插入图片描述

##方式二。
UPDATE mysql.user SET password=password('999') WHERE user='root';

flush privileges;

在这里插入图片描述

三、二进制安装mysql

  • 二进制包下载官网
  • 二进制安装与yum安装方式不能共存,需要保证环境干净。

配置文件:

  • mysql的配置文件为/etc/my.cnf,可以在多个位置配置,存在优先级。
  • 配置文件查找优先级:/etc/my.cnf ——> /etc/mysql/my.cnf ——> --default-extra-file=/PATH/TO/CONF_FILE ——> ~/.my.cnf

mysql常用配置文件参数:

参数说明
port = 3306设置监听端口
socket = /tmp/mysql.sock指定套接字文件位置
basedir = /usr/local/mysql指定MySQL的安装路径
datadir = /data/mysql指定MySQL的数据存放路径
pid-file = /data/mysql/mysql.pid指定进程ID文件存放路径
user = mysql指定MySQL以什么用户的身份提供服务
skip-name-resolve禁止MySQL对外部连接进行DNS解析
使用这一选项可以消除MySQL进行DNS解析的时间。
若开启该选项,则所有远程主机连接授权都要
使用IP地址方式否则MySQL将无法正常处理连接请求

1.创建系统用户和组。

useradd -r -M -s /sbin/nologin mysql

2.解压安装包,并做软连接。

tar xf mysql-5.7.41-linux-glibc2.12-x86_64.tar
tar zxf mysql-5.7.41-linux-glibc2.12-x86_64.tar.gz -C /usr/local/

cd /usr/local/
ln -s mysql-5.7.41-linux-glibc2.12-x86_64/ mysql
chown -R mysql.mysql mysql*

3.配置环境变量。

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

4.创建数据目录。

mkdir /opt/data
chown -R mysql.mysql /opt/data

5.数据库初始化,注意最后输出的临时密码。

mysqld --initialize --user=mysql --datadir=/opt/data/

6.定义配置文件。

vim /etc/my.cnf 

[mysqld]                        #表示服务端,固定写法
basedir = /usr/local/mysql      #安装目录
datadir = /opt/data             #数据存放位置
socket = /tmp/mysql.sock        #套接字文件存放位置
port = 3306                     #默认端口
pid-file = /opt/data/mysql.pid         #进程文件存放位置
user = mysql                           #那个用户启动服务
skip-name-resolve                      #关闭域名解析域名连接,跳过名称解析

7.配置服务脚本。

cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysqld

在这里插入图片描述
8.启动服务,并设置开机自启。

service mysqld start
chkconfig --add mysqld

在这里插入图片描述
9.使用临时密码登录数据库,设置密码。若缺少依赖包可以是使用whatprovides来查看安装什么包。

yum whatprovides libncurses.so.5

在这里插入图片描述
10.设置免密登录。注意不同的系统用户需家目录

[root@localhost ~]# vim .my.cnf 
[client]
user = root
password = citms

在这里插入图片描述

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Flutter嵌套地狱

override Widget build(BuildContext context) {return Column(children: <Widget>[Container(height: 45,child: Row(children: <Widget>[SizedBox(width: 30,),Icon(Icons.notifications,color: Colors.blue,),SizedBox(width: 30,),Expanded(child: Text(消息中…

华为OD机试真题 Python 实现【计算网络信号】【2023Q2 200分】

一、题目描述 网络信号经过传递会逐层衰减&#xff0c;且遇到阻隔物无法直接穿透&#xff0c;在此情况下需要计算某个位置的网络信号值。 注意&#xff1a; 网络信号可以绕过阻隔物array[m][n]的二维数组代表网格地图&#xff0c;array[i][j]0代表i行j列是空旷位置&#xff…

大众点评搜索基于知识图谱的深度学习排序实践

转子&#xff1a;https://tech.meituan.com/2019/01/17/dianping-search-deeplearning.html 1. 引言 挑战与思路 搜索是大众点评App上用户进行信息查找的最大入口&#xff0c;是连接用户和信息的重要纽带。而用户搜索的方式和场景非常多样&#xff0c;并且由于对接业务种类多…

自学黑客(网络安全),一般人我劝你还是算了吧(自学网络安全学习路线--第十八章 网络监听及防御技术)【建议收藏】

文章目录 一、自学网络安全学习的误区和陷阱二、学习网络安全的一些前期准备三、自学网络安全学习路线一、网络监听概述1、网络监听概念2、相关网络基础 二、监听技术1、局域网中的硬件设备简介2、共享式局域网的监听技术3、交换式局域网的监听技术 三、网络监听工具举例1、Tcp…

聚观早报 | 富士康被起诉;苹果公司股价再创新高

今日要闻&#xff1a;富士康被起诉&#xff1b;苹果公司股价再创新高&#xff1b;微信否认文件传输助手是真人&#xff1b;抖音外卖主攻60元以上套餐&#xff1b;消息称谷歌放弃研发AR智能眼镜 富士康被起诉 6 月 28 日消息&#xff0c;据外媒报道&#xff0c;美国电动卡车初…

服务注册与配置Nacos

服务注册与配置Nacos nacos 介绍nacos 特性nacos 的安装nacos 注册中心注册中心案例注册中心原理nacos服务分级存储模型 nacos 配置中心nacos 配置数据模型nacos 配置管理配置文件优先级nacos 配置持久化 nacos 集群部署 nacos 介绍 nacos 英文全称 Dynamic Naming and Config…

wsl子系统Ubuntu18.04,cuDNN安装

如果觉得本篇文章对您的学习起到帮助作用&#xff0c;请 点赞 关注 评论 &#xff0c;留下您的足迹&#x1f4aa;&#x1f4aa;&#x1f4aa; 本文主要wls子系统Ubuntu18.04安装cuDNN&#xff0c;安装cudnn坑巨多&#xff0c;因此记录以备日后查看&#xff0c;同时&#xff0…

【云原生 | 56】Docker三剑客之Docker Swarm高效使用

&#x1f341;博主简介&#xff1a; &#x1f3c5;云计算领域优质创作者 &#x1f3c5;2022年CSDN新星计划python赛道第一名 &#x1f3c5;2022年CSDN原力计划优质作者 &#x1f3c5;阿里云ACE认证高级工程师 &#x1f3c5;阿里云开发者社区专…

PPT怎么插入视频?3个视频插入方法分享!

Anna是个初入职场的新人&#xff0c;最近要进行工作汇报&#xff0c;需要制作PPT并插入相关的讲解视频。但她对PPT的运用不熟悉&#xff0c;不知道应该如何操作&#xff01;特此来询问应该如何在PPT中插入视频&#xff1f; 在演示文稿中插入视频可以使PPT更加生动有趣。无论是展…

如何克服自动化测试中的壁垒和问题?

随着自动化测试技术的快速发展和普及&#xff0c;自动化测试已经成为各个行业广泛应用的重要测试手段。然而&#xff0c;自动化测试中仍然存在壁垒和问题&#xff0c;这些问题可能对测试效果产生影响&#xff0c;甚至会影响整个项目的进程。在本文中&#xff0c;我们将探讨如何…

JavaScript进阶----《getter 和 setter 是什么》

前言&#xff1a; 这两个属性在学习前端的时候看到过&#xff0c;但是由于项目中没有用到过&#xff0c;所以一直没有细致的了解。今天 review 同事代码的时候&#xff0c;遇到了这个写法&#xff0c;看了半天也不知道如何处理。再不学习真的以后连别人的代码都不知道什么意思了…

报名 | AI驱动下的流程挖掘如何提升企业决策和运营效率?

随着人工智能&#xff08;AI&#xff09;技术的不断发展和普及&#xff0c;其在各个领域的应用也越来越广泛。其中&#xff0c;一项重要的应用就是利用AI技术驱动流程挖掘&#xff0c;以提升企业决策和运营效率。 流程挖掘是一种从事件日志中发现、监控和优化实际业务流程的技…

Elasticsearch 安装

下载安装 elasticsearch下载链接 运行&#xff1a;bin\elasticsearch.bat 设置密码&#xff1a;.\bin\elasticsearch-setup-passwords interactive 这边设置密码遇到一个坑 PS G:\elasticsearch-8.8.1> .\bin\elasticsearch-setup-passwords interactiveFailed to authe…

0基础学习VR全景平台篇 第52篇:高级功能-开场加载!

大家好&#xff0c;欢迎观看蛙色VR官方系列——后台使用课程&#xff01; 本期为大家带来蛙色VR平台&#xff0c;高级功能-开场加载&#xff01; 功能位置示意 一、本功能将用在哪里&#xff1f; 开场加载&#xff0c;指作品制作上线&#xff0c;观看者打开VR漫游作品首先看到…

机器学习技术(一)——python基础超详解

机器学习技术&#xff08;一&#xff09;——python基础超详解 文章目录 机器学习技术&#xff08;一&#xff09;——python基础超详解0、引言1、基础概念**:snake:变量****:snake:注释****:snake:输入 输出** 2、数据类型**:snake:数值类型****:snake:运算符****:snake:字符串…

直播预约 | 邀您共同探讨“云XR技术如何改变元宇宙的虚拟体验”

随着数字化时代的到来&#xff0c;元宇宙成为了人们关注的焦点。它是一个虚拟的世界&#xff0c;融合了现实与虚拟的元素&#xff0c;让人们可以以全新的方式进行交互、创作和体验。 云XR技术是元宇宙建设的重要支撑技术之一&#xff0c;元宇宙需要具备高度真实感、高度交互性…

7DGroup性能实施项目日记6

九月廿三 壬寅年 虎 庚戌月 甲辰日 全国在降温之际 不管如何&#xff0c;今天总算是执行起来了脚本。在配置了性能工具之Jmeter 后置监听器可视化数据逻辑的界面中&#xff0c;看到下图&#xff1a; 显然 TPS 在这个接口中能达到 1500 以上&#xff0c;这对第一次执行来说&am…

最优化--最大似然估计--最优化理论介绍

目录 最大似然估计 概念 最大似然估计原理 应用 最优化理论介绍 最优化问题 迭代求解 最大似然估计 概念 最大似然估计&#xff08;Maximum Likelihood Estimation&#xff0c;MLE&#xff09;是统计学中一种常用的参数估计方法。它基于观测数据&#xff0c;通过寻找…

win11禁止运行脚本的解除方法

win11使用Windows PowerShell执行脚本时&#xff0c;提示本系统上禁止运行脚本 解决办法&#xff08;按照步骤进行&#xff09;&#xff1a; 先以管理员身份运行PowerShell。 命令行输入set-ExecutionPolicy RemoteSigned回车&#xff0c;然后输入Y回车即可。至此问题解决。若…

向量的傅里叶变换

note 若要求矩阵的傅里叶变换&#xff0c;则对每个行或列向量求对应的傅里叶变换。 比如matlab中对矩阵求fft傅里叶变换就是对每个列向量分别求傅里叶变换。 code /*\brief:离散傅里叶变换\param dir:变换方向&#xff0c;-1为傅里叶正变换&#xff0c;1为傅里叶反变换\param…