MySQL安装
Window系统想安装MySQL可以看看这篇教程,步骤十分详细。这里特别需要注意的一点就是安装路径不能出现中文和空格,否则下载会报错
https://zhuanlan.zhihu.com/p/654087404
注意,在实际项目和生产中一般都用的是Linux环境,这里建议大家去学一下Linux环境下MySQL的安装过程。
数据库
数据库的概念
数据库(Database)是按照数据结构来组织、存储和管理数据的仓库,用户可以对其中的数据进行增删改查(CRUD)操作,你可以把数据库看作一个存储数据的容器
严格来讲,MySQL应该是数据库管理软件(DBMS),这类软件是专门用于创建和管理数据库的一套软件,你需要使用SQL语言告诉DBMS,然后DBMS帮你在数据库里读写;而数据库是存储在计算机硬盘里用于记录、管理数据的数据集合。不过在日常使用中,我们通常把这些都叫做数据库
那么既然数据库也是存储在磁盘里的文件,那为什么不把数据直接存储在磁盘里呢?
数据库技术的目的就是为了研究如何对大量的数据进行有效的管理、减少数据存储冗余、实现数据共享、保障数据安全、高效检索数据等等
-
查询效率:如果你想在一个文本文件中查找某个特定用户的信息,程序通常需要从第一行开始遍历到最后一行;而DBMS 使用了索引技术,查询速度很快。 -
并发控制:如果两个用户同时尝试修改同一个文件的同一行数据,操作系统通常会报错,或者后一个保存的人会覆盖掉前一个人的操作,导致数据丢失;数据库有锁(Locking)机制,可以锁定到某一行数据 -
数据备份:普通文件全靠人工手动复制备份,如果设备突发异常情况那么数据将会发生丢失;数据库自带备份、日志,即使发生电脑断电,依然能够根据日志进行修复 -
权限控制:对于普通文本文件来说,谁拿到文件就能全看、全改;而数据库可以按账号分配权限,只能查、不能改、只能看部分字段。
因此,数据库不仅是存储数据的磁盘/内存文件,也是一套数据管理技术,虽然数据库是磁盘里的文件,但是它并不需要程序员手动管理,而是由数据库服务进行管理。
数据模型
在数据库的发展中有三种基本数据模型:层次模型、概念模型、关系模型;其中关系模型是使用最多的,而建立在关系模型基础之上的就是关系数据库,MySQL就是一个关系数据库管理系统。
当然关系数据库也有许多问题,为了克服这些问题,我们可以使用非关系数据库(NoSQL),它的数据模型简单,灵活性强、性能很高(比如Redis、MongoDB)
关系模型
关系模型的数据结构是二维表,一个关系对应一张二维表。
比如这个二维表,学号就是主键,而班级号则是外键(还存在一个班级表),通过外键,两个表就能关联在一起
常见关系数据库
-
MySQL:MySQL支持在UNIX、Linux、Mac OS、Windows等平台使用,相较于其他数据库,MySQL体积小、速度快、开源、使用方便快捷,兼顾社区版和付费版,在Web开发中很重要 -
PostgreSQL:一个开源的对象关系型数据库管理系统,数据类型非常丰富(json)、数据一致性和并发能力强、自带文本向量化和gin倒排索引、代码少功能多,而且查询速率比MySQL快很多。 -
SQLite:SQLite是一种轻量级数据库,整个数据库就一个文件,不用安装、不用配置、不用启动服务,但是SQLite不支持高并发写入,因此一般用于嵌入式系统中 -
SQL Server:微软公司开发的数据库管理系统,支持Linux和Windos平台,易操作、界面良好、组件丰富,一般用在电子商务、保险、电力行业 -
DB2:IBM公司开发的数据库管理系统,主要应用于UNIX、z/OS、Window Server平台上,具有良好伸缩性,支持从大型计算机到单用户环境,适合海量数据的存储。 -
Oracle:甲骨文公司开发的数据库管理系统,具有良好的兼容性、可移植性,而且性能高、安全性高,但是运维比较复杂
SQL语言
SQL语言是关系数据库的标准语言,主要用于管理数据库中的数据,SQL语言由四部分构成:
-
数据定义语言(DDL):主要用于定义数据库、表等,比如create、alter、drop -
数据操作语言(DML):主要用于对数据库进行添加、修改和删除操作,比如insert、update、delete -
数据查询语言(DQL):主要用于拆线呢数据,比如select -
数据控制语言(DCL):主要用于控制用户访问权限:比如grant、revoke、commit
|