走进MySQL:从认识到入门(针对初学者)

一,引言

       MySQL是一款久负盛名且广泛应用的关系型数据库管理系统,自1995年Michael Widenius和David Axmark在瑞典和芬兰发起研发以来,其发展历程可谓辉煌且深远。作为开源软件的代表,MySQL以其卓越的成本效益、高性能及高可靠性赢得了全球范围内的大量企业和开发者青睐。在2008年,MySQL AB被Sun Microsystems收购,后又随着Sun并入Oracle麾下,进一步巩固了其在数据库市场的重要地位。

二,MySQL 的主要特点和优势

MySQL之所以备受推崇,主要原因在于:

  1. 成本优势:作为开源软件,MySQL提供免费使用和修改的权利,大大降低了企业及个人用户的初期投入和运维成本。

  2. 性能高效:MySQL经过长期迭代优化,执行速度快,能有效应对大数据量和高并发场景,满足各类应用程序的数据处理需求。

  3. 高度可靠:诸多知名大公司和高流量网站均选择MySQL作为其核心数据管理工具,足见其在处理关键业务数据方面的稳定性和可靠性。

  4. 易用性强:MySQL安装配置便捷,界面友好,适合各层次的开发者快速上手,并提供了丰富的文档和支持资源。

 三,Mysql的架构

       尽管早期MySQL曾因功能相对有限受到一定批评,但随着时间推移,MySQL不断推出的新版本持续增强了其功能特性,逐步缩小与其他高级DBMS的差距。

       从架构分类上看,DBMS可分为共享文件系统和客户机-服务器两种模式。其中,MySQL属于后者,这类系统适用于大型项目和关键任务环境。在客户机-服务器架构中,MySQL服务器软件负责所有数据的访问和处理,运行在专用的数据库服务器上,确保数据安全和高效操作。而客户端软件则充当用户与服务器之间的交互接口,无论是MySQL自带的工具,还是诸如Perl、ASP、ColdFusion、JSP、PHP等脚本或编程语言,都可以作为客户端向MySQL服务器发送查询请求、获取处理结果。

      这种结构的优势在于,用户无需直接接触底层数据文件,所有的数据访问、处理过程都被封装在服务器端进行,从而实现数据的安全隔离和高效利用。因此,要使用MySQL,用户需具备对运行MySQL服务器软件的计算机的访问权限,并通过合适的客户端工具或编程语言与其进行交互,实现数据的增删改查等各种操作。

四,如何安装Mysql5.7

      MySQL是一种流行的关系型数据库管理系统,适用于各种应用场景。以下将介绍如何在CentOS系统上安装MySQL 5.7,并进行简单的配置。

步骤一:关闭防火墙

确保系统安全性设置不会阻碍MySQL服务的安装和运行。首先,关闭并禁用防火墙:

sudo systemctl stop firewalld
sudo systemctl disable firewalld

如果不想关闭防火墙则可以参考以下配置:

直接放行开放3306端口命令(生产环境使用)
firewall-cmd --zone=public --add-port=3306/tcp --permanent
firewall-cmd --reload

步骤二:临时关闭 SELinux

为了简化安装过程,临时关闭SELinux:

sudo sed -i 's/enforcing/disabled/g' /etc/selinux/config
sudo setenforce 0

步骤三:清理可能存在的Mariadb配置

避免与MySQL产生冲突,清理可能存在的Mariadb配置:

sudo rpm -e --nodeps $(rpm -qa | grep mariadb)

步骤四:下载并安装MySQL软件仓库

下载并安装MySQL社区版的RPM软件仓库:

wget http://dev.mysql.com/get/mysql57-community-release-el7-11.noarch.rpm    

sudo yum -y install mysql57-community-release-el7-11.noarch.rpm

步骤五:导入MySQL的GPG公钥

导入MySQL的GPG公钥以验证软件包完整性:

wget https://repo.mysql.com/RPM-GPG-KEY-mysql-2022 --no-check-certificate

sudo rpm --import  RPM-GPG-KEY-mysql-2022

步骤六:安装MySQL服务器

借助已安装的仓库,安装MySQL服务器:

sudo yum -y install mysql-server

步骤七:启动MySQL服务并检查状态

启动MySQL服务并检查其运行状态:

sudo systemctl start mysqld.service

sudo systemctl status mysqld.service

步骤八:提取临时密码并重设root密码

提取MySQL生成的临时密码,并使用该密码登录MySQL进行初始化配置:

temp_password=$(grep 'temporary password' /var/log/mysqld.log | awk '{print $NF}')

mysql --connect-expired-password -u root -p"$temp_password" <<- EOF ALTER USER 'root'@'localhost' IDENTIFIED BY 'Huawei@123'; SET PASSWORD FOR 'root'@'localhost' = PASSWORD('Huawei@123'); GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'Huawei@123' WITH GRANT OPTION; EOF

上面这段命令是用来在 MySQL 数据库中进行一系列的操作。首先,它连接到 MySQL 数据库,并使用之前提取的临时密码作为认证信息。然后,它执行以下操作:

  1. 修改 root 用户的密码为 'Huawei@123',以确保安全性和访问权限。
  2. 授予 root 用户对所有数据库的所有权限,并且允许 root 用户将权限授予其他用户。

至此,MySQL 5.7 已在 CentOS 系统上成功安装并完成了初步配置。您现在可以使用新的 root 密码登录并管理MySQL数据库了。

五,Mysql的基本操作

       每个MySQL安装都有一个名为mysql 的简单命令行实用程序。这 个实用程序没有下拉菜单、流行的用户界面、鼠标支持或任何类似的东西。接下来让我们一个有趣的例子来学习一下Mysql的基本操作吧

步骤一,登录Mysql

通过root账户接入到数据库,默认的端口是3306

[root@mysql ~]# mysql -u root -p
Enter password:
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 10
Server version: 5.7.19 MySQL Community Server (GPL)

Copyright (c) 2000, 2017, Oracle and/or its affiliates. All rights reserved.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql>

mysql 命令行实用程序是使用最多的实用程序之一,它对于快速测试和执行脚本非常有价 值。

步骤二,创建数据库和表

首先,我们创建一个名为 company 的数据库,并在其中创建一个 employees 表。数据库是用来存储数据的容器,而表是数据库中组织数据的方式。

CREATE DATABASE IF NOT EXISTS company;
USE company;

CREATE TABLE IF NOT EXISTS employees (
    id INT AUTO_INCREMENT PRIMARY KEY,
    name VARCHAR(100) NOT NULL,
    department VARCHAR(100) NOT NULL,
    position VARCHAR(100),
    salary DECIMAL(10, 2)
);

  • CREATE DATABASE IF NOT EXISTS company;:创建一个名为 company 的数据库。IF NOT EXISTS 部分表示如果数据库已经存在,则不再创建。
  • USE company;:选择使用 company 数据库。
  • CREATE TABLE IF NOT EXISTS employees (...);:创建一个名为 employees 的表。IF NOT EXISTS 部分表示如果表已经存在,则不再创建。表中定义了 idnamedepartmentpositionsalary 五个字段。

    步骤三,插入数据

 然后,我们向 employees 表中插入一些示例数据。这些数据包含了员工的姓名、部门、职位和薪水信息。

INSERT INTO employees (name, department, position, salary) VALUES
('John Doe', 'IT', 'Software Engineer', 60000.00),
('Jane Smith', 'HR', 'HR Manager', 70000.00),
('Michael Johnson', 'Finance', 'Accountant', 55000.00),
('Emily Davis', 'Marketing', 'Marketing Specialist', 65000.00);

  • INSERT INTO employees ...:将数据插入到 employees 表中。
  • VALUES (...), (...), ...:指定要插入的值。每个括号内部表示一条要插入的数据记录。

 步骤四,查询数据 

我们可以查询 employees 表中的所有员工信息。

SELECT * FROM employees;

  • SELECT * FROM employees;:从 employees 表中选择所有列的数据。* 表示所有列。

步骤五,更新数据

假设 John Doe 被提升为 IT 部门的经理,我们需要更新他的职位信息。

UPDATE employees SET position = 'IT Manager' WHERE name = 'John Doe';

  • UPDATE employees ...:更新 employees 表中的数据。
  • SET position = 'IT Manager':设置 position 字段的值为 'IT Manager'
  • WHERE name = 'John Doe':指定更新条件,只更新姓名为 'John Doe' 的员工的数据。

 步骤六,删除数据

假设 Emily Davis 离职了,我们可以从 employees 表中删除她的信息。

DELETE FROM employees WHERE name = 'Emily Davis';

  • DELETE FROM employees ...:从 employees 表中删除数据。
  • WHERE name = 'Emily Davis':指定删除条件,只删除姓名为 'Emily Davis' 的员工的数据。

步骤七,查询与筛选

让我们查询所有薪水大于 60000 的员工。

SELECT * FROM employees WHERE salary > 60000;

  • SELECT * FROM employees ...:从 employees 表中选择所有列的数据。
  • WHERE salary > 60000:指定条件,只选择薪水大于 60000 的员工。

 步骤八,排序与限制数据

让我们按照薪水降序标题二排列并显示前两名员工。

SELECT * FROM employees ORDER BY salary DESC LIMIT 2;

  • ORDER BY salary DESC:按照薪水降序排列结果。
  • LIMIT 2:限制结果只显示前两条记录。

 步骤九,统计数据

让我们统计每个部门的员工数量。

SELECT department, COUNT(*) AS total_employees FROM employees GROUP BY department;

  • SELECT department, COUNT(*) AS total_employees ...:从 employees 表中选择部门和员工数量,并对部门进行分组统计。COUNT(*) 统计每个部门的员工数量。

步骤十, 数据分组与聚合

让我们统计每个部门的平均薪水。

SELECT department, AVG(salary) AS average_salary FROM employees GROUP BY department;
  • AVG(salary) AS average_salary:计算每个部门的平均薪水,并将结果命名为 average_salary
  • GROUP BY department:按照部门进行分组,以便对每个部门进行统计。

步骤十一,数据删除与批量操作 

假设 Lisa Taylor 和 David Lee 都离职了,让我们删除他们的信息。

DELETE FROM employees WHERE name IN ('Lisa Taylor', 'David Lee');

  • DELETE FROM employees ...:从 employees 表中删除数据。
  • WHERE name IN ('Lisa Taylor', 'David Lee'):指定删除条件,删除姓名为 'Lisa Taylor' 或 'David Lee' 的员工的数据。

通过以上操作,我们完成了一个完整的案例,涵盖了数据库的创建、表的设计、数据的插入、查询、更新、删除、条件筛选、排序、统计、多表查询、数据联合等多种操作。这样的案例展示了 MySQL 数据库的丰富功能和灵活性。 

六,结论

         综上所述,MySQL凭借其开源、低成本、高性能、高度可靠和易于使用的特性,在全球范围内吸引了无数开发者和企业的关注。通过详细的安装步骤和基本操作示例,初学者不仅能够成功在CentOS系统上部署MySQL 5.7,还能够在实践中掌握数据库创建、数据操作、查询分析等一系列基础技能。

      然而,MySQL的强大之处远不止于此。随着对MySQL更深入的探索,你会发现它在数据安全、事务处理、性能调优、集群部署等方面同样表现出色。对于初学者来说,这只是迈向数据库技术殿堂的第一步。未来,你可以通过学习更复杂的SQL查询、索引策略、存储过程、触发器等功能,进一步提升数据库管理水平,并将其应用到实际项目开发与运维工作中。

      在此鼓励每一位初学者积极拓展知识领域,熟悉MySQL的更多高级特性,并结合实际需求灵活运用。同时,时刻关注MySQL社区的最新动态和技术更新,紧跟数据库技术发展的步伐,不断提升自身的技术实力和竞争力。希望本文提供的入门指南能够为你的MySQL学习之旅打开一扇窗,引领你在数据管理的世界里自信前行,创造出更多的价值与可能。

OK,今天的分享就到这里啦,我们下期见^_^,需要获取镜像包,也可以私聊博主哦

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

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

前端实现自动获取农历日期:探索JavaScript的跨文化编程

&#x1f31f; 前言 欢迎来到我的技术小宇宙&#xff01;&#x1f30c; 这里不仅是我记录技术点滴的后花园&#xff0c;也是我分享学习心得和项目经验的乐园。&#x1f4da; 无论你是技术小白还是资深大牛&#xff0c;这里总有一些内容能触动你的好奇心。&#x1f50d; &#x…

【ELK】ELK企业级日志分析系统

搜集日志&#xff1b;日志处理器&#xff1b;索引平台&#xff1b;提供视图化界面&#xff1b;客户端登录 日志收集者&#xff1a;负责监控微服务的日志&#xff0c;并记录 日志存储者&#xff1a;接收日志&#xff0c;写入 日志harbor&#xff1a;负责去连接多个日志收集者&am…

YOLOv5 / YOLOv7 / YOLOv8 / YOLOv9 / RTDETR -gui界面-交互式图形化界面

往期热门博客项目回顾&#xff1a;点击前往 计算机视觉项目大集合 改进的yolo目标检测-测距测速 路径规划算法 图像去雨去雾目标检测测距项目 交通标志识别项目 yolo系列-重磅yolov9界面-最新的yolo 姿态识别-3d姿态识别 深度学习小白学习路线 AI健身教练-引体向上…

云服务器环境web环境搭建之JDK、redis、mysql

一、Linux安装jdk&#xff0c;手动配置环境 链接: https://pan.baidu.com/s/1LRgRC5ih7B9fkc588uEQ1whttps://pan.baidu.com/s/1LRgRC5ih7B9fkc588uEQ1w 提取码: 0413 tar -xvf 压缩包名 修改配置文件/etc/profile 二、安装redis环境 方案一&#xff1a; Linux下安装配置r…

Python基于大数据的微博的舆论情感分析,微博评论情感分析可视化系统,附源码

博主介绍&#xff1a;✌Java徐师兄、7年大厂程序员经历。全网粉丝13w、csdn博客专家、掘金/华为云等平台优质作者、专注于Java技术领域和毕业项目实战✌ &#x1f345;文末获取源码联系&#x1f345; &#x1f447;&#x1f3fb; 精彩专栏推荐订阅&#x1f447;&#x1f3fb; 不…

前端开发攻略---Vue实现防篡改水印的效果。删除元素无效!更改元素属性无效!支持图片、元素、视频等等。

1、演示 2、水印的目的 版权保护&#xff1a;水印可以在图片、文档或视频中嵌入作者、品牌或版权所有者的信息&#xff0c;以防止未经授权的复制、传播或使用。当其他人使用带有水印的内容时&#xff0c;可以追溯到原始作者或版权所有者&#xff0c;从而加强版权保护。 身份识…

idea工具使用Tomcat创建jsp 部署servlet到服务器

使用tomcat创建jsp 在tomcat官网中下载对应windows版本的tomcat文件 Apache Tomcat - Welcome! 解压到系统目录中&#xff0c;记得不要有中文路径 新建一个java项目 点击右上角 点击加号 找到Tomcat Service的 Local 点击右下角的Fix一下&#xff0c;然后ok关闭 再重新打开一…

【深度学习】多层感知机与卷积神经网络解析

引言&#xff1a; 在人工智能的宏伟画卷中&#xff0c;深度学习如同一笔瑰丽而深邃的色彩&#xff0c;为这幅画增添了无限的生命力和潜能。作为支撑这一领域核心技术的基石&#xff0c;多层感知机&#xff08;MLP&#xff09;和卷积神经网络&#xff08;CNN&#xff09;在模仿人…

文件上传【2】--靶场通关

1.前端禁用js绕过 上传文件&#xff0c;进行抓包&#xff0c;没有抓到&#xff0c;说明这里的验证是前端js验证跳出的弹窗 禁用js后&#xff0c;php文件上传成功。 2.文件上传.htaccess 上传png木马后连接不上 代码中存在.htaccess&#xff0c;判断此时应该就是需要用到.htac…

数据治理专家岗位的能力模型

数据治理专家的角色要求其具备全方位的专业素养与技能&#xff0c;不仅要有深厚的业务理解与数据技术功底&#xff0c;还需展现出卓越的领导力、团队协作与沟通能力&#xff0c;以驱动组织内部数据治理工作的高效运行与持续优化。以下是对数据治理专家各项能力的深入解读&#…

windows SDK编程 --- 第一个程序

一、基础知识 1.Unicode 和 ANSI 在 Windows 编程中&#xff0c;Unicode 和 ANSI 是两种不同的字符编码方法&#xff0c;它们用于定义如何在计算机中表示和存储字符数据。 ANSI ANSI&#xff08;American National Standards Institute&#xff09;编码是一种基于单字节的字符…

spring boot集成logback到mysql 8

spring boot集成logback到mysql 8 依赖数据库准备创建log日志用户&#xff0c;并创建数据库执行建表sql 配置文件bugbug 1&#xff1a;Failed to instantiate type ch.qos.logback.classic.db.DBAppenderbug信息&#xff1a;解决&#xff1a; bug2: DBAppender cannot function…