零、前言
从本章开始将学习MYSQL数据库的知识,而这里主要讲解MYSQL数据库基础
数据库基础
1、什么是数据库
- 概念:数据仓库,
软件
,安装在操作系统之上
- Structure Query Language(结构化查询语言)简称SQL,它被美国国家标准局(ANSI)确定为关系型数据库语言的美国标准,后被国际化标准组织(ISO)采纳为关系数据库语言的国际标准。数据库管理系统可以通过SQL管理数据库;定义和操作数据,维护数据的完整性和安全性
- 数据库就是一个存放数据的仓库,这个仓库是按照一定的数据结构(数据结构是指数据的组织形式或数据之间的联系)来组织、存储的,我们可以通过数据库提供的多种方法来管理数据库里的数据
- MySQL 是一个可移植的数据库,几乎能在当前所有的操作系统上运行,如 Unix/Linux、Windows、Mac 和Solaris。各种系统在底层实现方面各有不同,但是 MySQL 基本上能保证在各个平台上的物理体系结构的一致性
2、文件和数据库
- 文件保存数据的缺点:
- 文件的安全性问题
- 文件不利于数据查询和管理
- 文件不利于存储海量数据
- 文件在程序中控制不方便
注:为了解决上述问题,专家们设计出更加利于管理数据的东西——数据库,它能更有效的管理数据
- 数据库DB(DataBase)作用:存储数据,管理数据
3、主流数据库
- SQL Sever: 微软的产品,.Net程序员的最爱,中大型项目
- Oracle: 甲骨文产品,适合大型项目,复杂的业务逻辑,并发一般来说不如MySQL
- MySQL:世界上最受欢迎的数据库,属于甲骨文,并发性好,不适合做复杂的业务。主要用在电商,SNS,论坛。对简单的SQL处理效果好
- PostgreSQL :加州大学伯克利分校计算机系开发的关系型数据库,不管是私用,商用,还是学术研究使用,可以免费使用,修改和分发
- SQLite: 是一款轻型的数据库,是遵守ACID的关系型数据库管理系统,它包含在一个相对小的C库中。它的设计目标是嵌入式的,而且目前已经在很多嵌入式产品中使用了它,它占用资源非常的低,在嵌入式设备中,可能只需要几百K的内存就够了
- H2: 是一个用Java开发的嵌入式数据库,它本身只是一个类库,可以直接嵌入到应用项目中
4、数据库分类
- 关系型数据库:SQL(Structured Query Language)
MySQL、Oracle、Sql Server、DB2、SQLlite
概念:通过表和表之间,行和列之间的关系进行数据的存储,通过外键关联来建立表与表之间的关系
- 非关系型数据库:NoSQL(Not Only SQL)
Redis、MongoDB
概念:指数据以对象的形式存储在数据库中,而对象之间的关系通过每个对象自身的属性来决定
5、SQL的优点
- 简单易学,具有很强的操作性
- 绝大多数重要的数据库管理系统均支持SQL
- 高度非过程化;用SQL操作数据库时大部分的工作由DBMS自动完成
6、SQL的分类
- DDL(Data Definition Language) 数据定义语言,用来操作数据库、表、列等; 常用语句:CREATE、 ALTER、DROP
- DML(Data Manipulation Language) 数据操作语言,用来操作数据库中表里的数据;常用语句:INSERT、 UPDATE、 DELETE
- DCL(Data Control Language) 数据控制语言,用来操作访问权限和安全级别; 常用语句:GRANT、DENY
- DQL(Data Query Language) 数据查询语言,用来查询数据 常用语句:SELECT
7、服务器/数据库/表的关系
- 所谓安装数据库服务器,只是在机器上安装了一个数据库管理系统程序,这个管理程序可以管理多个数据库,一般开发人员会针对每一个应用创建一个数据库
- 为保存应用中实体的数据,一般会在数据库中创建多个表,以保存程序中实体的数据
- 数据库服务器、数据库和表的关系: