当前位置:   article > 正文

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

走进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,今天的分享就到这里啦,我们下期见^_^,需要获取镜像包,也可以私聊博主哦

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/羊村懒王/article/detail/432873
推荐阅读
相关标签
  

闽ICP备14008679号