文章目录
这是我们 MySQL 学习的第一程,话不多说,直接开始吧!
初识数据库
数据库相关基本概念
【数据库(DataBase)】
数据库(DB)是一个按照数据结构来组织、存储和管理数据的仓库,通俗点,就是存储数据的仓库。
数据库与数据结构的关系:
数据库是一个用于存储、管理和操作大量数据的系统,而数据结构则提供了数据的组织和存储方式,使数据库能够高效地管理和操作这些数据。通俗的讲,数据库底层使用了合适的数据结构来组织存储数据。
为什么要使用数据库?
最简单的一点就是,为了保证数据的持久性。
我们在例如IDEA上编程并运行时,数据会存在内存中,这些数据会存在安全问题,断电或其他系统故障可能导致内存中的数据未能及时保存到磁盘而丢失,所以引出了数据库。
当然,我们要使用数据库还有其他的原因,例如:数据共享与协同合作、支持复杂数据分析。
为什么不使用文件呢?
因为文件系统通常面向某一特定应用程序,数据共享性差,冗余度大,并且数据独立性较差,同时不利于数据查询和管理,不利于存储海量数据。
综上所述,我们要学习使用数据库。
【数据库管理系统(DataBase Management System)】
数据库管理系统(DBMS)是建立、操作和管理数据库的大型软件,通俗地讲,就是操作数据库的工具
【数据库服务】
数据库服务是指提供数据库访问和管理功能的系统或软件。它通常包括数据库服务器、网络连接、存储设备等组件,用于存储、检索和管理数据。数据库服务可以由多个客户端应用程序共享,并提供数据的一致性、安全性和可靠性。常见的数据库服务包括MySQL、Oracle、Microsoft SQL Server等。
数据库服务与数据库管理系统的区别:
数据库服务是一个更广泛的概念,涵盖了数据库管理系统以及相关的硬件和软件组件;而数据库管理系统则是具体的软件产品,专注于管理和操作数据库的功能。
【SQL】
SQL(Structured Query Language)是一种特定于数据库的编程语言,用于管理、查询和操作关系型数据库。
SQL分类:
- 数据查询语言(DQL)
- DQL是SQL中最重要的部分,用于从数据库中检索数据。
- 主要命令是
SELECT
,用于选择表中的特定列和行。
- 数据定义语言(DDL)
- DDL用于定义和管理数据库的结构,包括创建、修改和删除表和其他数据库对象。
- 主要命令包括
CREATE
(创建数据库对象)、ALTER
(修改数据库对象)、DROP
(删除数据库对象)和TRUNCATE
(清空数据库对象)
- 数据操纵语言(DML)
- DML用于添加、修改和删除数据库中的数据。
- 主要命令包括
INSERT
(插入数据)、UPDATE
(更新数据)和DELETE
(删除数据)
- 数据控制语言(DCL)
- DCL用于控制对数据库的访问权限,确保数据的安全和完整。
- 主要命令包括
GRANT
(授予权限)和REVOKE
(撤销权限)
- 事务控制语言(TCL)
- TCL用于管理数据库中的事务,确保数据的一致性和完整性。
- 主要命令包括
COMMIT
(提交事务)和ROLLBACK
(回滚事务)
- 游标控制语言(CCL)
- CCL用于管理和操作数据库中的游标,游标是一个存储在DBMS服务器上的数据库查询。
- 主要命令包括
DECLARE
(声明游标)和FETCH
(获取游标中的数据)
所以,我们使用 SQL 操作 数据库管理系统(DBMS),再通过 数据库管理系统 操作 数据库以及数据库中的数据。
数据库的分类
数据库大体可分为关系型数据库 和 非关系型数据库
-
关系型数据库(Relational Database)
指采用了关系模型来组织数据的数据库。
使用表格来组织数据,每个表由行和列组成,具有固定的模式(schema),对数据的结构和关系进行严格定义。关系模型可以简单理解为二维表格模型,一个关系型数据库就是由这些二维表及其之间的关系组成的数据组织。
例如:Oracle、MySQL、SQL Server
-
非关系型数据库(NoSQL DataBase)
不使用传统关系模型的数据库系统,并且不基于SQL
它们通常以不同的方式存储和处理数据,旨在解决关系型数据库在某些应用场景下的局限性,如大规模数据、高并发访问和高可扩展性需求等。
例如:redis、mongodb、hbase
区别:
关系型数据库 | 非关系型数据库 | |
---|---|---|
使用SQL | 是 | 不强制要求,一般不基于SQL实现 |
事务支持 | 支持 | 不支持 |
复杂操作 | 支持 | 不支持 |
海量读写操作 | 效率低 | 效率高 |
基本结构 | 基于表和列,结构固定 | 灵活性比较高,例如键值对、文档 |
使用场景 | 业务方面的联机事务处理(OLTP)系统 | 用于数据的缓存、或基于统计分析的联机分析处理(OLAP)系统 |
主流数据库一览(2019年的,了解为主):
MySQL数据库
MySQL是一种流行的开源关系型数据库管理系统,用于有效地存储、管理和处理数据。它由瑞典MySQL AB公司开发,并现属于Oracle公司。作为一个关系型数据库,MySQL使用表格来存储数据,支持标准的SQL语言,并能够运行在多种系统和多语言环境下。
MySQL因其开源、高效和灵活的特点,成为广泛应用的数据库管理系统。无论是小型网站还是大型企业应用,MySQL都能提供强大的数据管理和处理能力。
数据模型
MySQL的数据模型指的是数据库中数据的组织结构和操作方式。数据模型是数据库系统的核心,它定义了如何存储、访问和管理数据。
MySQL的数据模型的类型有很多,最常用的就是关系模型,除关系模型外,还有网状模型和层次模型等,但关系模型因其简单性和强大的数学理论基础被广泛使用,我们后续讨论的就是关系模型。
我们的MySQL关系型数据库建立在关系模型的基础上,由多张相互连接的二维表及其关系组成。
我们只需要记住:一个MySQL数据库服务下,可以有多个数据库,而一个数据库中可以有多张表,一张表中可以有很多的数据行(或记录),每条记录由很多的属性(字段、列)构成。
二维表,可称为数据表,由行和列组成,一行代表一条记录,一列代表一个属性或字段
如下图就是两个二维表及其关系:
- 如员工表中
1 金庸 总裁 2
这一行就是一条记录(数据行) id、name、job、dept_id
分别是员工表这张二维表的四个属性- 一个关系型数据库就是由这些二维表及其之间的关系组成的数据组织
基本操作
了解了MySQL数据库是由一张张二维表组成等基本结构的知识后,我们学习一些最基本SQL语句来操作数据库,主要包括基本库操作,基本表操作,另外还有数据类型。其他的知识后序会不断发文介绍的,这只是我们的第一步!
库操作
查看数据库、创建数据库、删除数据库、选中数据库
查看数据库
语法: