数据库
一. 背景知识
1. 数据库
数据库是“按照数据结构来组织、存储和管理数据的仓库”。是一个长期存储在计算机内的、有组织的、可共享的、统一管理的大量数据的集合。
数据库是存放数据的仓库,数据的来源有很多,比如出行记录、消费记录、浏览的网页、发送的消息等等。除了文本类型的数据,图像、音乐、声音都是数据。所以,我们可以理解为:互联网世界就是一个数据世界。数据库的概念实际包括两层意思:
- (1)数据库是一个实体,它是能够合理保管数据的“仓库”,用户在该“仓库”中存放要管理的事务数据,“数据”和“库”两个概念结合成为数据库。
- (2)数据库是数据管理的新方法和技术,它能更合适的组织数据、更方便的维护数据、更严密的控制数据和更有效的利用数据。
2. 发展
数据库先后经历了层次数据库、网状数据库和关系数据库等各个阶段的发展。由于传统的关系型数据库可以较好的解决管理和存储关系型数据的问题,所以它已经成为目前数据库产品中最重要的一员。随着云计算的发展和大数据时代的到来,关系型数据库也渐渐的无法满足需要,这主要是由于越来越多的半关系型和非关系型数据需要用数据库进行存储管理,以此同时,分布式技术等新技术的出现也对数据库的技术提出了新的要求,于是越来越多的非关系型数据库就开始出现,这类数据库与传统的关系型数据库在设计和数据结构有了很大的不同,它们更强调数据库数据的高并发读写和存储大数据,这类数据库一般被称为NoSQL(Not only SQL)数据库。但传统的关系型数据库在一些传统领域依然保持了强大的生命力。
3. 分类
(1)关系型数据库(MySQL)
关系型数据库,存储的格式可以直观地反映实体间的关系。关系型数据库和常见的表格比较相似,其中表与表之间是有很多复杂的关联关系的。常见的关系型数据库有MySQL,SqlServer等。在轻量或者小型的应用中,使用不同的关系型数据库对系统的性能影响不大,但是在构建大型应用时,则需要根据应用的业务需求和性能需求,选择合适的关系型数据库。
由于结构化数据的规模不算太大,数据规模的增长通常也是可预期的,所以针对结构化数据使用关系型数据库更好。
(2)非关系型数据库(NoSQL)
指的是分布式的、非关系型的、不保证遵循ACID原则的数据存储系统。
优势有:数据库结构相对简单,在大数据量下的读写性能好;能满足随时存储自定义数据格式需求,非常适用于大数据处理工作。它更适合追求速度和可扩展性、业务多变的应用场景,如文章、评论,这类数据的数据规模往往是海量的,数据规模的增长往往也是不可能预期的,而NoSQL数据库的扩展能力几乎也是无限的,所以NoSQL数据库可以很好的满足这一类数据的存储。NoSQL数据库利用key-value可以大量的获取大量的非结构化数据,并且数据的获取效率很高,但用它查询结构化数据效果就比较差。
目前NoSQL数据库仍然没有一个统一的标准,它现在有四种大的分类:键值对存储、列存储、文档数据库存储和图形数据库存储。
4. 两者的区别
MySQL | NoSQL | |
---|---|---|
存储方式 | 采用表格的储存方式 | 以数据集的方式,大量的数据集中存储在一起,类似于键值对、图片或者文档 |
存储结构 | 结构化的方法存储数据 | 采用动态结构存储数据 |
存储规范 | 单表时,按照最小关系表进行存储;多表时,表和表之间有着复杂的关系 | 用平面数据集的方式集中存放 |
扩展方式 | 选择性能更好的计算机 | 添加更多数据库服务器到资源池 |
查询方式 | 结构化查询语言 | 非结构化查询语言 |
规范化 | 一个数据实体首先分割成多个部分,然后再对分割的部分进行规范化,规范化以后再分别存入到多张关系型数据表中 | 不需要规范化数据,通常是在一个单独的存储单元中存入一个复杂的数据实体。 |
事务性 | 要求较高 | 对于事务的操作不能很好的支持 |
读写性能 | 面对海量数据的处理的时候效率就会变得很差 | 处理大数据很有优势 |
授权方式 | 常见的有Oracle,SQLServer,DB2,Mysql | 主流的有redis,HBase,MongoDb,memcache等 |
5. MySQL数据库
MySQL 数据库是 Oracle旗下的一款关系型数据库管理系统,该数据库将数据保存在不同的表中,增加了速度,并提高了灵活性。由于其体积小、速度快、总体拥有成本低,尤其是开放源码这一特点,一般中小型网站的开发都选择 MySQL 作为网站数据库。
二. MySQL数据库
1. 数据库的操作
(1)显示当前数据库
语法:
show databases;
显示结果:
(2)创建数据库
语法:
create database NewWork;
上面的命令代表:创建了名为“NewWork” 的数据库。
显示结果: 图中红色部分即是新创建的数据库
(3)使用数据库
语法:
use NewWork;
(4)删除数据库
语法:
drop database NewWork;
2. 表的操作
需要操作数据库中的表时,需要先使用该数据库:
语法:
use db_test;
(1)查看表结构
语法:
desc 表名;
查看表的命令执行以后,表的结构如下图:
(2)创建表
语法:
create table student(
id int,
name varchar(20) comment '学生姓名',
chinese decimal(4,1),
math decimal(4,1),
english decimal(4,1),
pe decimal(4,1)
);
注意: 在创建表的过程中
- 每一行的开头的名称放在第一位;
- 第二位写的是对应名称的数据类型,可以加上字数限制;
- 创建每一行的时候,最后面要带上“逗号”,最后一行不用加任何符号;
- 后面可以用 “comment” 来增加字段的说明。
- 有些类型的参数有其自己特殊的含义,需要反复练习。
上面的代码所创建的表结构如下图:
(3)删除表
语法:
drop table student;
(4)常见的数据类型
- int:整型
- decimal(M,D) :浮点数类型
- varchar(size):字符串类型
- timestamp:日期类型
三. 总结
1. 操作数据库
-- 显示数据库
show databases;
-- 创建数据库
create database [数据库名];
-- 使用数据库
use [数据库名];
-- 删除
drop database [数据库名];
2. 操作表
-- 查看表
show tables;
-- 创建
create table [表名](
字段1 类型1,
字段2 类型2,
...
);
--查看表结构
desc [表名];
-- 删除
drop talbe [表名];