MySQL数据库概述

本文涉及的产品
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云数据库 RDS MySQL,高可用系列 2核4GB
简介: MySQL数据库概述

SQL的特点

(1)功能一体化


(2)高度非过程化


(3)面向集合的操作方式


(4)两种使用方式:命令行和嵌入到其他宿主语言(如Java等)方式


(5)简洁易学


(6)大大减轻了用户的负担,并有利于提高数据独立性


(7)非关系数据模型采用的是面向记录的操作方式,操作对象是一条记录。而SQL采用集合操作方式,其查找对象查找结果都是数据的集合,每次插入删除更新操作的对象也是数据的集合。这种操作方式极大的提高了数据操作的效率。


(8)SQL语言可以直接以命令方式与数据库进行交互,也可以作为嵌入式语言嵌入到其他程序设计语言(如Java、C等)中,并且两种不同使用方式中SQL语言的语法结构基本上是一致的。


SQL的组成部分


1.png


常见的数据库应用系统


银行系统

医学诊断系统

网站系统(购物、影视、小说、新闻…)

超市管理系统

图书馆管理系统

天气预报

交通、旅馆预订


接下来我们看一张数据


                                                       ××班期末考试成绩单

2.png


讲到这里,可能大家还没明确数据库到底是个什么样子?让我们来看几个实际的例子。从我们上小学开始,每学期期末都会看到类似这样的成绩单。


如果把这张成绩单保存在计算机中,就可以看做一个数据库。


我们再往下看一个由多张表组成的数据库,一个简单的图书管理系统的后台数据库,有三张表:图书表、读者表、借阅情况表。


3.png


数据库中的二维表特点

(1)每一张表都有一个名字;

(2)表中每一列也都有一个名字,放在最上方一行当中;

(3)表中每一列的数据类型都是相同的;

(4)表格当中的每一列都不可以继续分解,是最小的数据单元。


数据库基本概念

数据库(Database,简称DB)

简单而言,目前常用的关系数据库是由一系列有内部联系的特定二维表格构成的。

严格的定义:数据库是保存在计算机内的、有组织的、可共享的数据集合。


数据库的3个性质:


(1)保存在计算机内:

对于上面的成绩单,如果没有保存在计算机中,而是以书面的形式印刷出来,锁在保险柜中,那么它不能称作数据库,充其量只能称为一个小型资料库。


(2)数据有组织:

仅仅有大量的数据还不能构成数据库,要知道保存大量数据的目的在于对数据进行处理,从中得到我们想要的内容。如果数据库中的数据组织无序,那么就很难对其进行快速的操作处理。


(3)数据可共享:

随着互联网的普及,我们能够接收到的信息越来越多,可以说是“足不出户,便可知晓天下事”,这得益于互联网的数据共享性,数据库也是如此。

比如说上面的成绩单,通过这个成绩单,教务部可以知道学生的成绩的分布情况,以便制定下一步的教学计划;

任课教师可以知道哪些学生成绩最好,哪些学生还有潜力可挖,并制定下一步的培养计划,针对哪些学生采取什么措施,以便使学生进步;

而同样是通过这一份成绩单,毕业办也可以对毕业生的毕业率和升学率进行预测分析。所有这些部门可以共享同一份数据,既减少了数据的录入工作量,又减少了数据的冗余度,确保了数据的一致性。

否则三个部门对三份相同的数据做出不同的修改,最终就不知道应该以哪一份为准了。


数据库系统

Database System,简称DBS

数据库系统是与数据库相关的一整套系统,包括数据库、软件、硬件和人员四个部分。


数据库管理系统:Database Management System,简称DBMS

数据库管理系统是能够对数据库进行各种控制并保持数据库中数据的完整性和一致性的系统软件。


数据库就好像一个大的容器、仓库,里面包含了很多的有组织的、可共享的数据。


那么要想操纵这些数据,就需要一套语言和软件,这个软件就称为数据库管理系统。


通过数据库管理系统这个软件,可以很方便地对数据库进行各种管理操作:比如对数据进行增、删、改、查,对权限进行划分和控制,对数据库进行备份、恢复等。


数据库系统的组成部分


数据库:

就是存放在存储设备(如磁盘)上的数据库;


软件:

是指数据库管理系统以及程序员开发出来的针对特定项目的软件(例如图书馆管理系统),有些文献中还把操作系统和高级语言的编译系统也包含进去。


硬件:

指的是运行数据库相关软件需要的硬件设备,如要有足够大的硬盘、内存,有足够快的CPU,另外还要有足够大的网络带宽。


人员:

包括数据库项目的设计开发人员、终端用户以及数据库管理员(Database Administrator,简称DBA)


数据库发展简史


人工管理阶段


20世纪40年代中——50年代中

主要应用于科学计算,人工管理

缺少直接存取存储设备,数据不存储

没有操作系统

批处理,无共享、数据完全依赖于程序,应用程序人工控制


文件管理阶段  


20世纪50年代末——60年代中

可以应用于数据管理出现磁盘、磁鼓,数据可长期存储

数据由文件系统管理,文件由记录组成,可联机实时处理、批处理,共享性差、冗余度大,独立性差,数据的逻辑结构改变必须修改应用程序,可以使用excel表或者文件管理


数据库管理阶段


数据库管理阶段 (网状数据库、层次数据库、关系数据库、面向对象的数据库)

20世纪60年代末——现在

出现大容量磁盘,应用于大规模数据管理

数据由DBMS统一管理和控制

处理方式可以联机实时处理,分布处理和批处理

数据结构化

数据独立性高

数据的共享性高,冗余度低,易扩充


含义


ON关键字表示数据库是根据后面的参数来创建的;

n 是一个占位符,表明可为新数据库指定多个文件;

LOG ON 子句用于指定该数据库的事务日志文件;

NAME 用于指定数据库文件的逻辑文件名;

FILENAME 用于指定数据库文件的存放位置及在磁盘上的文件名;

SIZE 用于指定数据库文件的初始大小,可以加上MB或KB,默认为MB;

MAXSIZE 用于指定数据库文件的最大大小,可以加上MB或KB,默认为MB。省略此项表示最大大小无限制;

FILEGROWTH 用于指定数据库文件的增加量,可以加上MB或KB或%,默认为MB。省略此项表示不自动增长。


SQL中的数据类型


数值型

字符串型

日期型

货币型


数值型

不同的数据库系统支持的数据类型不完全相同。这里主要讲解SQL Server 2008中支持的数据类型。1.jpeg


字符串型


普通字符编码:不同国家或地区的编码长度不一样,英文字符占一个字节(8位),中文汉字占2个字节(16位);

Unicode编码(统一字符编码):将世界上所有的字符统一进行编码,所有字符均2字节


4.png


日期时间类型


数据类型 描述
DATE 日期类型,如'2018-05-01'
DATETIME 日期和时间类型,如'2018-05-01 14:12:00'
TIMESTAMP 时间戳类型,用于操作记录日期和时间
TIME 时间类型
YEAR 年份类型,默认四位


常量


数值型数据常量:12313,2.343

字符串类型的数据常量两端需用单引号括起来,如'how are you','1234','中国'

日期时间类型的数据常量也用单引号括起来,书写格式有以下几种:

–'May 25 2012'

–'2012-05-25'(最常用的书写格式)

–'2012/05/25'

–'20120525'


货币类型


货币数据类型表示货币值。货币数据存储的精确度固定为四位小数,实际上货币类型的数据都是有4位小数的decimal类型的数据。


比如说DECIMAL(5,2),意思就是一共五位数,其中两位是小数,如果小数位超了两位,那么会四舍五入,但还是会显示两位  


5.png




相关实践学习
如何快速连接云数据库RDS MySQL
本场景介绍如何通过阿里云数据管理服务DMS快速连接云数据库RDS MySQL,然后进行数据表的CRUD操作。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助     相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
相关文章
|
3天前
|
存储 缓存 关系型数据库
MySQL底层概述—9.ACID与事务
本文介绍了数据库事务的ACID特性(原子性、一致性、隔离性、持久性),以及事务控制的演进过程,包括排队、排它锁、读写锁和MVCC(多版本并发控制)。文章详细解释了每个特性的含义及其在MySQL中的实现方式,并探讨了事务隔离级别的类型及其实现机制。重点内容包括:ACID特性(原子性、持久性、隔离性和一致性的定义及其实现方式)、事务控制演进(从简单的全局排队到复杂的MVCC,逐步提升并发性能)、MVCC机制(通过undo log多版本链和Read View实现高效并发控制)、事务隔离级别(析了四种隔离级别(读未提交、读已提交、可重复读、可串行化)的特点及适用场景)、隔离级别与锁的关系。
|
5天前
|
存储 SQL 关系型数据库
MySQL底层概述—2.InnoDB磁盘结构
InnoDB磁盘结构主要包括表空间(Tablespaces)、数据字典(Data Dictionary)、双写缓冲区(Double Write Buffer)、重做日志(redo log)和撤销日志(undo log)。其中,表空间分为系统、独立、通用、Undo及临时表空间,分别用于存储不同类型的数据。数据字典从MySQL 8.0起不再依赖.frm文件,转而使用InnoDB引擎存储,支持事务原子性DDL操作。
158 100
MySQL底层概述—2.InnoDB磁盘结构
|
5天前
|
缓存 算法 关系型数据库
MySQL底层概述—1.InnoDB内存结构
本文介绍了InnoDB引擎的关键组件和机制,包括引擎架构、Buffer Pool、Page管理机制、Change Buffer、Log Buffer及Adaptive Hash Index。
152 97
MySQL底层概述—1.InnoDB内存结构
|
2天前
|
SQL 关系型数据库 MySQL
MySQL底层概述—10.InnoDB锁机制
本文介绍了:锁概述、锁分类、全局锁实战、表级锁(偏读)实战、行级锁升级表级锁实战、间隙锁实战、临键锁实战、幻读演示和解决、行级锁(偏写)优化建议、乐观锁实战、行锁原理分析、死锁与解决方案
MySQL底层概述—10.InnoDB锁机制
|
3天前
|
缓存 算法 关系型数据库
MySQL底层概述—8.JOIN排序索引优化
本文主要介绍了MySQL中几种关键的优化技术和概念,包括Join算法原理、IN和EXISTS函数的使用场景、索引排序与额外排序(Using filesort)的区别及优化方法、以及单表和多表查询的索引优化策略。
MySQL底层概述—8.JOIN排序索引优化
|
4天前
|
SQL 关系型数据库 MySQL
MySQL底层概述—7.优化原则及慢查询
本文主要介绍了:Explain概述、Explain详解、索引优化数据准备、索引优化原则详解、慢查询设置与测试、慢查询SQL优化思路
MySQL底层概述—7.优化原则及慢查询
|
5天前
|
存储 缓存 关系型数据库
MySQL底层概述—5.InnoDB参数优化
本文介绍了MySQL数据库中与内存、日志和IO线程相关的参数优化,旨在提升数据库性能。主要内容包括: 1. 内存相关参数优化:缓冲池内存大小配置、配置多个Buffer Pool实例、Chunk大小配置、InnoDB缓存性能评估、Page管理相关参数、Change Buffer相关参数优化。 2. 日志相关参数优化:日志缓冲区配置、日志文件参数优化。 3. IO线程相关参数优化: 查询缓存参数、脏页刷盘参数、LRU链表参数、脏页刷盘相关参数。
MySQL底层概述—5.InnoDB参数优化
|
5天前
|
存储 关系型数据库 MySQL
MySQL底层概述—6.索引原理
本文详细回顾了:索引原理、二叉查找树、平衡二叉树(AVL树)、红黑树、B-Tree、B+Tree、Hash索引、聚簇索引与非聚簇索引。
MySQL底层概述—6.索引原理
|
5天前
|
存储 SQL 关系型数据库
MySQL底层概述—4.InnoDB数据文件
本文介绍了InnoDB表空间文件结构及其组成部分,包括表空间、段、区、页和行。表空间是最高逻辑层,包含多个段;段由若干个区组成,每个区包含64个连续的页,页用于存储多条行记录。文章还详细解析了Page结构,分为通用部分(文件头与文件尾)、数据记录部分和页目录部分。此外,文中探讨了行记录格式,包括四种行格式(Redundant、Compact、Dynamic和Compressed),重点介绍了Compact行记录格式及其溢出机制。最后,文章解释了不同行格式的特点及应用场景,帮助理解InnoDB存储引擎的工作原理。
MySQL底层概述—4.InnoDB数据文件
|
5天前
|
存储 缓存 关系型数据库
MySQL底层概述—3.InnoDB线程模型
InnoDB存储引擎采用多线程模型,包含多个后台线程以处理不同任务。主要线程包括:IO Thread负责读写数据页和日志;Purge Thread回收已提交事务的undo日志;Page Cleaner Thread刷新脏页并清理redo日志;Master Thread调度其他线程,定时刷新脏页、回收undo日志、写入redo日志和合并写缓冲。各线程协同工作,确保数据一致性和高效性能。
MySQL底层概述—3.InnoDB线程模型

热门文章

最新文章