【MySQL 系列】MySQL 起步篇
MySQL 是一个开放源代码的、免费的关系型数据库管理系统。在 Web 开发领域,MySQL 是最流行、使用最广泛的关系数据库。MySql 分为社区版和商业版,社区版完全免费,并且几乎能满足全部的使用场景。由于 MySQL 是开源的,我们还可以根据自己的需求,定制开发自己的特定版本。
文章目录
- 1、MySQL 简介
- 1.1、数据库介绍
- 1.2、MySQL 简介
- 1.3、MySQL 版本
- 2、安装 MySQL 数据库
- 3、连接 MySQL 数据库
- 3.1、使用 MySQL 命令行客户端
- 3.2、使用 Navicat 连接 MySQL
- 4、MySQL 示例数据库
- 4.1、Employees 示例数据库
- 4.2、World 示例数据库
- 4.3、Sakila 示例数据库
1、MySQL 简介
MySQL 是一个数据库管理系统。如果我们要了解 MySQL 是什么,我们首先需要了解什么是数据库。
1.1、数据库介绍
顾名思义,数据库就是存档某些数据的仓库。但是这个仓库不是一个实体仓库,也不存储实体物品,而是存放数据。比如我们常见的:
- 我们在大型超市购物时,我们购买的商品的价格和折扣等信息就存在一个数据库中。
- 我们手机上的联系人信息是一个列表,这个列表数据也存在一个数据库中。
- 电子商务网站中的商品的库存和价格信息也存在于服务器的数据库中。
- 汽车 4S 店的服务客户的记录信息也会存储在一个数据库中。
可以说,在现在的信息化系统中,数据库无处不在。
数据库是一个以某种有组织的方式存储的数据集合。当人们收集了大量的数据后,应该把它们保存起来进一步的处理,进一步地抽取有用的信息。现在人们借助计算机和数据库技术科学地保存了大量的数据,以便更好地利用这些数据资源。
1.2、MySQL 简介
MySQL 是一个开放源代码的、免费的关系型数据库管理系统,由瑞典 MySQL AB 公司开发,目前属于 Oracle 公司。
MySQL 官网:https://www.mysql.com/
在 Web 开发领域,MySQL 是最流行、使用最广泛的关系数据库。
目前 MySQL 被广泛地应用在 Internet 上的大中小型网站中。由于其体积小、速度快、总体拥有成本低,尤其是开放源码这一特点,许多中小型网站为了降低网站总体拥有成本而选择了 MySQL 作为网站数据库。
MySQL 的海豚标志的名字叫 “sakila”,它是由 MySQL AB 的创始人从用户在 “海豚命名” 的竞赛中建议的大量的名字表中选出的。获胜的名字是由来自非洲斯威士兰的开源软件开发者 Ambrose Twebaze 提供。根据 Ambrose 所说,Sakila 来自一种叫 SiSwati 的斯威士兰方言,也是在 Ambrose 的家乡乌干达附近的坦桑尼亚的 Arusha 的一个小镇的名字。
2008 年 1 月 16 日 MySQL AB 被 Sun 公司收购。而 2009 年,SUN 又被 Oracle 收购。就这样如同一个轮回,MySQL 成为了 Oracle 公司的另一个数据库项目。
MySQL 是数据库的一种,具有数据库的通用特征,同时,比起其他类型的数据库,它还具有自己鲜明的特点。
MySQL 是一个小型的开源的关系型数据库管理系统。与其他大型数据库管理系统例如 Oracle、DB2、SQL Server 等相比,MySQL 规模小,功能有限,但是它体积小、速度快、成本低,且它提供的功能对稍微复杂的应用已经够用,这些特性使得 MySQL 成为世界上最受欢迎的开放源代码数据库。
MySQL 是一种开放源代码的关系型数据库管理系统(RDBMS),MySQL 数据库系统使用最常用的数据库管理语言——结构化查询语言(SQL)进行数据库管理。
由于 MySQL 是开放源代码的,因此任何人都可以在 General Public License 的许可下下载并根据个性化的需要对其进行修改。MySQL 因为其速度、可靠性和适应性而备受关注。大多数人都认为在不需要事务化处理的情况下,MySQL 是管理内容最好的选择。
1.3、MySQL 版本
针对不同的用户,MySQL 分为两个不同的版本:
- MySQL 社区版:该版本完全免费,并且几乎能满足全部的使用场景。由于 MySQL 是开源的,我们还可以根据自己的需求,定制开发自己的特定版本;
- MySQL 企业版服务器:为企业提供数据库应用,支持 ACID 事务处理,提供完整的提交、回滚、崩溃恢复和行政锁定功能。需要付费使用,官方提供技术支持。
对绝大多数应用而言,MySQL 社区版都能满足。
MySQL 可以在 UNIX、Linux、Windows 等各种平台上运行。并且不管是服务器还是桌面版本的 PC,都可以安装 MySQL,并且 MySQL 在各个平台都很可靠且速度快。
如果您开发网站或 Web 应用程序,MySQL 是一个不错的选择。MySQL 是 LAMP 堆栈的重要组件。 LAMP 网站架构是目前国际流行的 Web 框架, 其中包括 Linux、Apache、MySQL 和 PHP。
2、安装 MySQL 数据库
下载 MySQL 前往MySQL官网(https://dev.mysql.com/downloads/)下载适用于您操作系统的 MySQL 安装包。
安装 MySQL 按照安装包提示,安装 MySQL 数据库,并根据需要进行配置。
- 在 Windows 上安装 MySQL
- 在 MacOS 上安装 MySQL
- 在 CentOS 上安装 MySQL
- 在 Ubuntu 上安装 MySQL
3、连接 MySQL 数据库
当我们安装好 MySQL 服务器后,就可以使用任何客户端程序(例如 mysql 命令行客户端和 Navicat)连接到 MySQL 服务器。
命令行不需要安装额外的程序,图形界面的程序更易于使用。我们可以根据自己的实际情况选择使用命令行程序还是图形界面的客户端连接到 MySQL 服务器。
3.1、使用 MySQL 命令行客户端
mysql 命令行客户端位于 MySQL 安装文件夹的 bin 目录中,打开 cmd / 终端 命令行窗口,使用命令导航到 MySQL 服务器 bin 目录下,使用以下命令连接到 MySQL 服务器:
./mysql -u root -p
-u root
意味着使用 root
用户连接到 MySQL 服务器; -p
指示 mysql
提示输入密码。
然后根据提示输入 root
帐户的密码,并按下回车键。验证通过后,显示以下输出代表进入了 MySQL 控制台:
mysql>
链接成功后,使用 SHOW DATABASES
显示当前服务器中的所有数据库:
mysql> show databases;
+--------------------+
| Database |
+--------------------+
| information_schema |
| mysql |
| performance_schema |
| sakila |
| sys |
| world |
+--------------------+
6 rows in set (0.00 sec)
至此,使用 MySQL 命令行客户端成功连接到了 MySQL 服务器,并查询了所有的服务器。
3.2、使用 Navicat 连接 MySQL
Navicat 是一款功能强大的数据库管理工具,具有直观的用户界面和丰富的功能。使用 Navicat 连接数据库需要按照以下步骤操作:
步骤一、下载和安装 Navicat:打开你的 Web 浏览器,访问 Navicat 的官方网站,在官方网站上找到并下载适合你操作系统的 Navicat版本(Windows、macOS、Linux);
步骤二、启动 Navicat:完成安装后,双击 Navicat 图标启动该程序;
步骤三、创建数据库连接:在 Navicat 的起始页面,点击「连接」按钮或在顶部菜单栏选择「连接」,然后选择你要连接的数据库类型(例如 MySQL、PostgreSQL、SQL Server 等);
在「新连接」对话框中,输入连接数据库所需的信息,包括:
- 连接名:可任意命名,以方便识别这个连接。
- 主机名/IP地址:数据库服务器的主机名或IP地址。
- 端口:数据库服务器的通信端口,默认情况下MySQL使用3306。
- 用户名:连接数据库的用户名。
- 密码:连接数据库的密码。
- 数据库:连接的数据库名称,如果需要连接特定数据库,请填写该字段。
步骤四、测试连接,输入完连接信息后,点击“测试连接”按钮,确保连接信息填写正确。如果一切正常,点击「确定」保存这个连接。
步骤五:连接数据库,在 Navicat 主界面选择你刚刚创建的连接,双击该连接或点击「连接」按钮。成功连接后,你将能够查看数据库中的表格和其他对象,并可以执行相应的数据库管理操作。
4、MySQL 示例数据库
MySQL 官方提供了多个示例数据库,在MySQL的学习、开发和实践中具有非常重要的作用,能够帮助初学者更好地理解和应用 MySQL 的各种功能和特性。
官方示例数据库地址:https://dev.mysql.com/doc/index-other.html
4.1、Employees 示例数据库
Employees 数据库:这是一个非常大的数据集,包含了 6 张表,总共有 400 万条数据记录,可以用于测试和验证 MySQL 的性能和处理大数据量的能力。 数据集包含了员工、职位、部门等信息,以及一套测试和验证用的脚本和 SQL 语句。
Employees 数据库下载地址:https://github.com/datacharmer/test_db
首先,通过上述地址进行下载,下载后修改 employees.sql 文件,将相关的 source
语句相关文件目录修改为压缩包文件解压后的绝对地址:
vi employees.sql
---
SELECT 'LOADING departments' as 'INFO';
# 修改为绝对地址(source 后的都要修改)
source load_departments.dump ;
...
接下来,进入 MySQL 后使用 source
命令执行 employees.sql:
-- 需要修改为 employees.sql 所在的绝对地址
source employees.sql ;
等待数秒后即全部导入成功。
mysql> USE employees ;
Database changed
mysql> SHOW TABLES;
+----------------------+
| Tables_in_employees |
+----------------------+
| current_dept_emp |
| departments |
| dept_emp |
| dept_emp_latest_date |
| dept_manager |
| employees |
| salaries |
| titles |
+----------------------+
8 rows in set (0.01 sec)
4.2、World 示例数据库
MySQL 官方网站提供的示例数据库 world Database,包含了一个关于国家、城市和语言的实际数据集。该数据库包含了以下三个表:
- country:该表包含了全球所有国家的信息,包括国家名称、首都、人口、面积、所属洲别等信息;
- city:该表包含了世界各国的城市信息,包括所属国家、城市名称、人口等信息;
- countrylanguage:该表包含了全球各国语言的信息,包括所属国家、语言名称、官方语言等信息。
通过这三个表之间的连结和查询,可以实现各种复杂的跨表查询功能,例如根据某个国家的首都查询该国家的语言、或者查询某个语言在全球范围内被哪些国家使用等等。
world Database 提供了一个非常实用的数据集,可以帮助开发人员更好地理解 MySQL 的查询语句、表关联和查询优化等概念。同时,通过该数据集,用户还可以编写实际的 SQL 查询语句以及应用程序,提高自己的 MySQL 编程技能。
4.3、Sakila 示例数据库
Sakila 示例数据库是使用最广泛的示例数据库之一,也是最好的示例数据库之一。Sakila 示例数据库最初由 MySQL AB 文档团队的前成员 Mike Hillyer 开发。它旨在提供一个标准模式,可用于书籍、教程、文章等中的示例演示。
Sakila 数据库为 DVD 租赁商店业务建模,其中包含影片、演员、影片与演员关系等内容,以及连接影片、商店和租赁业务的中央库存表。
作为最好的示例数据库之一,Sakila 数据库已经被移植 PostgreSQL, Oracle, DB2, SQLite 等平台。
相关文章:

【MySQL 系列】MySQL 起步篇
MySQL 是一个开放源代码的、免费的关系型数据库管理系统。在 Web 开发领域,MySQL 是最流行、使用最广泛的关系数据库。MySql 分为社区版和商业版,社区版完全免费,并且几乎能满足全部的使用场景。由于 MySQL 是开源的,我们还可以根…...

C++的成员初始化列表
C的成员构造函数初始化列表:构造函数中初始化类成员的一种方式,当我们编写一个类并向该类添加成员时,通常需要某种方式对这些成员变量进行初始化。 建议应该在所有地方使用成员初始化列表进行初始化 成员初始化的方法 方法一: …...

为什么TikTok视频0播放?账号权重提高要重视
许多TikTok账号运营者都会遇到一个难题,那就是视频要么播放量很低,要么0播放!不管内容做的多好,最好都是竹篮打水一场空!其实你可能忽略了一个问题,那就是账号权重。下面好好跟大家讲讲这个东西!…...

element---tree树形结构(返回的数据与官方的不一样)
项目中要用到属性结构数据,后端返回的数据不是官方默认的数据结构: <el-tree:data"treeData":filter-node-method"filterNode":props"defaultProps"node-click"handleNodeClick"></el-tree>这是文档…...

Spring Boot工程集成验证码生成与验证功能教程
🌟 前言 欢迎来到我的技术小宇宙!🌌 这里不仅是我记录技术点滴的后花园,也是我分享学习心得和项目经验的乐园。📚 无论你是技术小白还是资深大牛,这里总有一些内容能触动你的好奇心。🔍 &#x…...

Bert Encoder和Transformer Encoder有什么不同
前言:本篇文章主要从代码实现角度研究 Bert Encoder和Transformer Encoder 有什么不同?应该可以帮助你: 深入了解Bert Encoder 的结构实现深入了解Transformer Encoder的结构实现 本篇文章不涉及对注意力机制实现的代码研究。 注:…...

外汇天眼:频繁交钱却无法出金,只因误入假冒HFM惨成冤大头!
在外汇市场上这么久了,天眼君总结出了一个不争的事实,但凡是不给出金或者以各种理由拒绝出金的平台一定有问题!想必不管是在外汇天眼还是其他地方,大家总是能看到一些外汇交易者投诉自己向平台申请出金需要缴纳各种费用࿰…...

Linux-信号3_sigaction、volatile与SIGCHLD
文章目录 前言一、sigaction__sighandler_t sa_handler;__sigset_t sa_mask; 二、volatile关键字三、SIGCHLD方法一方法二 前言 本章内容主要对之前的内容做一些补充。 一、sigaction #include <signal.h> int sigaction(int signum, const struct sigaction *act,struc…...

STM32 | STM32时钟分析、GPIO分析、寄存器地址查找、LED灯开发(第二天)
STM32 第二天 一、 STM32时钟分析 寄存器:寄存器的功能是存储二进制代码,它是由具有存储功能的触发器组合起来构成的。一个触发器可以存储1位二进制代码,故存放n位二进制代码的寄存器,需用n个触发器来构成 在计算机领域&#x…...

Python常用语法汇总(一):字符串、列表、字典操作
1. 字符串处理 print(message.title()) #首字母大写print(message.uper()) #全部大写print(message.lower()) #全部小写full_name "lin" "hai" #合并字符串print("Hello, " full_name.title() "!")print("John Q. %s10s&qu…...

Token的奥秘--一起学习吧之token
Token,在计算机科学中,是一个用于表示数据或一段数据的单位。它通常用于加密、身份验证、令牌化等场景,以确保数据的安全性和完整性。在编程语言中,Token通常是指代一段代码或数据的最小单元,例如一个变量、一个操作符…...

FlinkCDC快速搭建实现数据监控
引入依赖 <project xmlns"http://maven.apache.org/POM/4.0.0" xmlns:xsi"http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation"http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"><modelV…...

应急布控球远程视频监控方案:视频监控平台EasyCVR+4G/5G应急布控球
随着科技的不断发展,应急布控球远程视频监控方案在公共安全、交通管理、城市管理等领域的应用越来越广泛。这种方案通过在现场部署应急布控球,实现对特定区域的实时监控,有助于及时发现问题、快速响应,提高管理效率。 智慧安防视…...

3.6 C语言和汇编语言混合编程 “每日读书”
在一些嵌入式场合,我们经常看到C程序和汇编程序相互调用,混合编程,如在ARM启动代码中,系统上电首先运行的是汇编代码,等初始化好内存堆栈环境之后,才会跳到C程序中执行,对嵌入式软件进行优化时&…...

利用“定时执行专家”循环执行BAT、VBS、Python脚本——含参数指定功能
目录 一、软件概述 二、VBS脚本执行设置 三、触发器设置 四、功能亮点 五、总结 在自动化办公和日常计算机任务管理中,定时执行脚本是一项非常重要的功能。今天,我将为大家带来一款名为“定时执行专家”的软件的评测,特别是其定时执行VB…...

【算法集训】基础算法:模拟
一、基本理解 顾名思义,就是题目要求做什么,代码中就跟着做就可以。 二、题目练习 1252. 奇数值单元格的数目 根据题目要求列出如下代码。需要注意填充列和行的时候注意下标。 int oddCells(int m, int n, int** indices, int indicesSize, int* in…...

基于SSM的房客源信息管理系统设计与实现
目 录 摘 要 I Abstract II 引 言 1 1 相关技术 3 1.1 SSM框架 3 1.2 Vue框架 3 1.3 ECharts 3 1.4 JQuery技术 3 1.5 本章小结 4 2系统分析 5 2.1 需求分析 5 2.2 非功能需求 8 2.3 本章小节 8 3 系统设计 9 3.1 系统总体设计 9 3.1.1 系统体系结构 9 3.1.2 系统目录结构 9 3…...

常见数据类型
目录 数据类型 字符串 char nchar varchar varchar2 nvarchar 数字 number integer binary_float binary_double float 日期 date timestamp 大文本数据 大对象数据 Oracle从入门到总裁:https://blog.csdn.net/weixin_67859959/article/details/135209645 数…...

基于vue的联通积分商城数据可视化APP设计与实现
目 录 摘 要 I Abstract II 引 言 1 1 前端技术介绍 3 1.1 前端开发语言 3 1.1.1 HTML5 3 1.1.2 CSS3 3 1.1.3 JavaScript 3 1.2 MVVM开发模式 4 1.3 Vue框架 4 1.4 Axios技术 5 1.5 ECharts 5 1.6 数据库技术 5 1.7 本章小结 6 2 前端开发的分析 7 2.1 功能性需求分析 7 2.2 …...

2024年flink面试真题(一)
(北京)taskManager和slot、task的关系 ? (北京)flink状态太大怎么解决 ? (北京 flink提交方式和运行模式 ? (北京) 怎么提交的实时任务,有多少Job Manager? &…...

Java面试挂在线程创建后续,不要再被八股文误导了!创建线程的方式只有1种
线程创建之源 OK!咱们闲话少叙,直接进入正题,回顾一下通过实现Runnable接口,重写run方法创建线程的方式,真的可以创建一个线程吗?来看下面这段demo。 【代码示例1】 public class Test implements Runnab…...

JavaEE面试题
一、String面试题 1、String s1 "123"; 和 String s2 new String("123");的区别 在Java中,"String s1 "123";"和"String s2 new String("123");"这两行代码有一些重要的区别: "…...

探索macOS上的最佳MySQL客户端工具
在数据库管理和开发的世界里,选择一个高效、功能全面的客户端工具对于提升工作效率至关重要。尤其对于使用 macOS 的开发者来说,一个好的 MySQL 客户端不仅可以简化数据库操作,还能提供强大的数据分析和管理功能。本文将介绍几款适用于 macOS…...

[Android] MediaPlayer SDK API glance
参考: https://developer.android.com/reference/android/media/MediaPlayer 如何使用MediaPlayer SDK: https://developer.android.com/media/platform/mediaplayer 概述: 音视频的 playback。创建 MediaPlayer 的线程必须和调用 SDK 接口…...

原始手写helloworld并打jar包允许
1.创建文件夹test统一在其中操作 2.创建hello.java文件 【hello.txt改属性为hello.java】并在里面添加代码 public class hello {public static void main(String[] args) {System.out.println("hello world");} } 注意:类名与文件名一致 然后运行…...

maven 的安装与配置(Command ‘mvn‘ not found)修改配置文件后新终端依旧无法识别到 mvn 命令
下载 maven 安装包 wget https://dlcdn.apache.org/maven/maven-3/3.9.4/binaries/apache-maven-3.9.4-bin.tar.gz 解压 apache-maven-3.9.4-bin.tar.gz tar -zxvf apache-maven-3.9.4-bin.tar.gz 找到文件解压到的位置,由于解压时我们没有指定路径,因…...

Pycharm无法粘贴外部文本问题
Pycharm无法粘贴外部文本问题 百度找了好多是因为安装了vim,最后发现是因为pycharm粘贴框存在了很多内容导致 操作方法: 1、清理所有缓存的复制内容 ctrlshiftV 可以看到编译器所有缓存下来的复制文本 2、ctrlA然后delete 解决:此时再复…...

学习Java的第四天
目录 一、if选择结构 1、基本if选择结构 语法结构: 流程图: 示例: 2、if-else 选择结构 语法结构: 流程图: 示例: 3、多重if选择结构 语法结构: 流程图: 示例:…...

【Javaweb】【瑞吉外卖】登录功能plus--拦截器filterinterceptors实现
上手第二天,做到登录拦截器部分 需求:完成目标是,只有在登录的情况下才想让其访问后端,没有登录禁止访问,并且让其跳转。 这里有一个比较好的思想是:后端程序要主要需要考虑的是拦截接口,不能让…...

关于 Runes 协议及「公开铭刻」发行机制的拓展讨论
撰文:MiX 编辑:Faust,极客 web3 2024 年 3 月 2 日,Runes 生态基础设施项目 Rune alpha 的创始人,在 Github 的公开议题中,与 Runes 协议创始人 Casey 展开了讨论,双方对如何拓展 Runes 协议的…...