零基础学数据库:MySQL 核心概念解析与 Linux 安装实战指南
作者:本站 来源:本站
2026-05-20 22:48 1345阅读

#数据的基础定义
用于描述客观事物的符号化记录。形式多种多样,包含数字、文本、图像等,数字化后可存储至计算机中#数据库的概念
数据库(Database)本质上是存放数据的仓库,依据特定的数据结构进行组织与存储#数据库管理系统
指专门用于管理和维护数据库的软件系统#数据库服务器、数据库管理系统、数据库、表、记录之间的层级关系
#数据库服务器等同于物理计算机,数据库管理系统是运行在其中的软件,数据库类似文件夹,表如同文件,记录则是文件内的具体内容
#数据库的分类体系
早期阶段:层次式数据库、网络式数据库、关系型数据库
现代主流:关系型数据库和非关系型数据库#关系型数据库详解
1.结构类似于 Excel 电子表格
2.采用结构化查询语言 SQL 进行数据存储与检索
3.代表产品:MySQL 和 Oracle#常见关系型数据库产品
1.Oracle
2.MySQL
3.mariaDB
作为 MySQL 的衍生分支,名称源于创始人 Michael Widenius 女儿 Maria 的名字
4.SQL server
微软出品的大型关系型系统,仅支持 Windows 操作系统
5.Access 数据库
面向初学者的轻量级桌面数据库
6.其他类型:DB2 等#非关系型数据库概述
非关系型数据库即NoSQL数据库(Not Only SQL)
发展背景:为应对web2.0,web3.0时代的高并发与高吞吐挑战而诞生
扩展知识:web2.0:强调以用户为核心,支持上传文件及发布博文等功能#主要种类
1.键值(key-value)存储数据库
典型代表:memcached、redis
2.列存储(column-oriented)数据库
典型代表:Cassandra,HBase
3.文档型(Document-oriented)数据库
典型代表:MongoDB、CouchDB
4.图(graph)数据库#常用非关系型数据库产品
1.Memcached
开源的高性能分布式内存缓存系统
2.redis
基于key-value(键值)架构的存储方案
3.MongoDB
使用C++编写,基于分布式文件存储的开源数据库系统#MySQL 简介
MySQL 是一款关系型数据库管理系统,原由瑞典 MySQL AB 公司开发,现隶属于 Oracle 公司#MySQL 核心特性
1.部署安装简便
2.发展历程悠久,社区生态活跃
3.兼容多种操作系统平台
4.运行性能优异,服务稳定性强
5| 支持多种存储引擎切换#MySQL 版本分类
MySQL 实施双授权策略,划分为社区版和商业版,且各包含四个小版本:Alpha 测试版、Beta 预览版、RC 候选版和 GA 正式版
#商业版与社区版的差异
1.商业版在稳定性方面表现更佳
2.商业版提供官方技术支持等服务,社区版依赖社区互助#版本号说明
#示例:mysql-5.7.29.tar.gz
#首位数字 5:主版本号
#第二位数字 7:发行级别,与主版组合成序列号
#第三位数字 29:该系列的修订版本号#查看当前版本
mysql> select version();
+-----------+
| version() |
+-----------+
| 5.7.29 |
+-----------+
1 row in set (0.00 sec)#SQL 语言概览
SQL,英文全称 structured query language,中文译为结构化查询语言,是对关系型数据库执行定义和操作的语言规范#SQL 语言细分
一:数据查询语言(DQL)
DQL 全称为 data query language,即数据检索语句,功能是从表中提取数据
#实例:查询用户信息
mysql> select user,host from mysql.user;
+---------------+-----------------------+
| user | host |
+---------------+-----------------------+
| root | localhost |
| test2 | 1.1.1.% |
| test | localhost |
+---------------+-----------------------+
4 rows in set (0.00 sec)二:数据操纵语言(DML)
DML 全称 data Manipulation language,命令含 insert,update,delete,分别对应添加、修改和删除表中记录
#实例:删除指定用户
mysql> delete from mysql.user where user='test';
Query OK, 1 row affected (0.02 sec)三:事务处理语言(TPL)
确保 DML 语句影响的表行能及时更新提交
四:数据控制语言(DCL)
DCL 全称 data control language,通过 grant 或 revoke 指令分配权限
五:数据定义语言(DDL)
DDL 全称 data definition language,含 create 和 drop,用于创建或删除数据库及表
六:指针控制语言(CCL)
CCL 全称 cursor control language,命令如 declare cursor,fetch into 和 update where current 用于操作单行数据
#MySQL 部署指南
#一.Linux 环境部署
#1.yum/rpm 包管理器安装
#2.源码常规编译安装
#3.cmake 工具编译安装
#4.二进制免编译安装包部署#此处演示通过 rpm 包方式部署 mysql.5.7
wget http://dev.mysql.com/get/mysql57-community-release-el7-7.noarch.rpm
rpm -qpl mysql57-community-release-el7-7.noarch.rpm #检查下载的 rpm 包内容
rpm -ivh mysql57-community-release-el7-7.noarch.rpm #执行 rpm 包安装
yum install mysql-community-server -y #安装 mysql 服务端#注意:mysql5.7 之后安装完毕会自动生成 root 随机密码,若用 rpm 包,可用 grep "password" /var/log/myqld.log 查找
#1.安装后服务未启动,需先手动启动
[root@db01 ~]#systemctl start mysqld
#2.提取临时密码
[root@db01 ~]# grep "password" /var/log/mysqld.log
2019-05-31T02:35:57.106896Z 1 [Note] A temporary password is generated for root@localhost: 0Hl;Ir.keo!;
mysql> select @@log_error;
+---------------------+
| @@log_error |
+---------------------+
| /var/log/mysqld.log |
+---------------------+
1 row in set (0.00 sec)
#3.调整密码复杂度策略,也可在/etc/my.cnf 设置 validate_password_policy=LOW
mysql> set global validate_password_policy=LOW;
Query OK, 0 rows affected (0.00 sec)
#4.修改 root 密码,或用 update 命令,用户管理部分会详述
mysql> set password for root@localhost = password("guoke123");
Query OK, 0 rows affected, 1 warning (0.00 sec)
mysql> flush privileges;
Query OK, 0 rows affected (0.00 sec)#登录方式说明
1.mysql #直接输入 mysql 默认无需密码
2.mysql -uroot -p #标准交互式输入密码登录
3.mysql -uroot -p"guoke123" #脚本外建议避免明文显示密码以防泄露#登录提示符定制
#默认显示:mysql>,为区分用户或主机,可采用以下方法
#1.临时修改
mysql> prompt \u@mysql \r:\n:\s->
PROMPT set to '\u@mysql \r:\n:\s->'
root@mysql 09:56->#2.永久生效配置
#进入/etc/my.cnf 配置文件添加 mysql 模块,注意位置不在 [mysqld] 内,若在 my.cnf 中添加,可用\\避免转义问题
#1.编辑 mysql 客户端配置
[root@cots3 ~]# vim /etc/my.cnf
[mysql]
prompt=\\u@mysql :\\d\\r:\\m:\\s->
#2.重启服务使配置生效
[root@cots3 ~]# systemctl restart mysqld
#3.重新登录查看效果
[root@cots3 ~]# mysql -uroot -p
Enter password:
root@mysql :(none)09:13:44->use db; #切换数据库
Database changed
root@mysql :db09:13:49-> #此时提示符将变更为 db 库#常用参数释义
# -u:用户名,-d:数据库名,\r:\m:\s 设定时间格式
#prompt 参数详细说明
Option Description
\c 每次发出语句递增的计数器
每执行一条语句计数器加一
\D 当前的完整日期
显示今日完整日期
\d 默认数据库名
显示当前默认库
\h 服务器主机地址
显示连接的主机 IP
\l 当前分隔符 (5.1.12 起新增)
显示语句结束符
\m 当前时间的分钟数
显示分钟字段
\n 换行字符
强制换行
\O 当前月份三字母缩写 (Jan, Feb, …)
显示月份缩写
\o 当前月份数字格式
显示月份数字
\P am/pm
\p 当前 TCP/IP 端口或套接字文件
显示连接端口
\R 当前时间 24 小时制 (0–23)
显示 24 小时时间
\r 当前时间标准 12 小时制 (1–12)
显示 12 小时时间
\S 分号
显示分号符号
\s 当前时间的秒数
显示秒数字段
\t Tab 制表符
插入制表符
\U www.jb51.net
完整账户名 user_name@host_name
显示完整用户主机名
\u 你的用户名
显示当前登录用户
\v 服务器版本号
显示 MySQL 版本
\w 当前星期几三字母缩写 (Mon, Tue, …)
显示星期缩写
\Y 当前年份四位数
显示完整年份
\y 当前年份两位数
显示年份简写
\_ 空格
插入空格
\ 空格 (反斜杠后跟空格)
显示空格
\' 单引号
显示单引号
\" 双引号
显示双引号
\\ 实际“\”反斜杠字符 \\文字“\”反斜杠字符
\x
x,针对上述未列出的任意字符
x,对于上面未列出的任何“x”
上一篇
下一篇
相关阅读