1.数据库基础
1.1.什么是数据库
我们存储数据大可以用文件,为什么还要弄数据库呢?因为文件保存数据有一下几个缺点
:
- 文件的安全性问题
- 文件不利于数据查询和管理
- 文件不利于海量数据存储
- 文件再程序中不方便控制
为了解决如上问题,专家们设计出有效管理数据的东西——数据库。数据库存储介质有两种:
- 磁盘
- 内存
1.2.主流数据库
- SQL Server:微软产品,适用于中大型项目
- Oracle:甲骨文产品,适合大型项目,业务逻辑较复杂
- MySQL:甲骨文产品,并发性好,不适合做复杂业务
- PostgreSQL:加州大学伯克利分校计算机系开发的关系型数据库
- SQLite:是一款轻型数据库,包含在一个相对小的C库中,它的设计目标是嵌入式的,占用资源非常低
- H2:是一个用Java开发的嵌入式数据库,它本身只是一个类库,可以直接嵌入到应用项目中
1.3. 服务器、数据库、表关系
- 所谓安装数据库,只是在机器上安装了一个数据库管理系统程序,这个管理程序可以管理多个数据库,一般只会针对一个应用创建一个数据库
- 为保存应用中实体的数据,一般会在实体中创建多个表,以保存程序中实体的数据
数据库服务器、数据库和表关系如下:
创建数据库
create database helloworld;
使用数据库
use helloworld;
创建数据库表
create table student{
id int,
name varchar(32),
gender varchar(2)
};
表中插入数据
insert into student (id,name,gender) values (1,'小可爱','女');
insert into student (id,name,gender) values (2,'小靓仔','男');
insert into student (id,name,gender) values (3,'小胖子','男');
查询表中数据
select * from student;
1.4.MySQL架构
MySQL是一个可移植的数据库,几乎能在当前所有的操作系统上运行,各种系统在底层实现方面各有不同,但是MySQL基本上能保证在各个平台上的物理体系结构的一致性
。
1.5.SQL分类
DDL数据定义语言
,用来维护存储数据的结构
eg:create,dropDML数据操纵语言
,用来对数据进行操作
eg:insert,delete
DML中单独分了一个
DQL,数据查询语言
eg:select
DCL数据控制语言
,负责权限管理和事务
eg:revork
1.6.存储引擎
存储引擎:数据库管理系统如何存储数据、如何为存储的数据简历索引、如何更新、查询数据等技术的实现方法
MySQL的核心技术是插件式存储引擎,支持多种存储引擎
。