关于MySql基础学习的链接:
- 数据分析之MySql篇{数据定义DDL与数据操作DML}
- 数据分析之MySql篇{数据查询语言DQL}
- 数据分析之MySql篇{常用函数}
- 数据分析之MySql篇{练习题}
- 数据分析之MySql篇{电商数据处理案例}
数据库
按照一定的数据结构来组织、存储和管理数据的仓库。
企业数据存储面临的问题
• 存储大量数据,,这样的大数据并不是Excel可以处理的数据。
• 大量数据的检索和访问
• 保证数据信息的一致和完整
• 数据共享和安全
数据库分类
- 关系型数据库:以行和列的形式存储数据,以便于用户理解,关系型数据库这一系列的行和列被称为表,一组表组成了数据库。
- 非关系型数据库
分类 | Examples举例 | 典型应用场景 | 数据模型 | 优点 | 缺点 |
---|---|---|---|---|---|
键值(key-value) | Tokyo Cabinet/Tyrant, Redis, Voldemort, Oracle BDB | 内容缓存,主要用于处理大量数据的高访问负载,也用于一些日志系统等等。 | Key 指向 Value 的键值对,通常用hash table来实现 | 查找速度快 | 数据无结构化,通常只被当作字符串或者二进制数据 |
列存储数据库 | Cassandra, HBase, Riak | 分布式的文件系统 | 以列簇式存储,将同一列数据存在一起 | 查找速度快,可扩展性强,更容易进行分布式扩展 | 功能相对局限 |
文档型数据库 | CouchDB, MongoDb | Web应用(与Key-Value类似,Value是结构化的,不同的是数据库能够了解Value的内容) | Key-Value对应的键值对,Value为结构化数据 | 数据结构要求不严格,表结构可变,不需要像关系型数据库一样需要预先定义表结构 | 查询性能不高,而且缺乏统一的查询语法。 |
图形(Graph)数据库 | Neo4J, InfoGrid, Infinite Graph | 社交网络,推荐系统等。专注于构建关系图谱 | 图结构 | 利用图结构相关算法。比如最短路径寻址,N度关系查找等 | 很多时候需要对整个图做计算才能得出需要的信息,而且这种结构不太好做分布式的集群方案。 |
表结构数据
- 由固定列和任意行构成的表结构的数据集
- 表中的列称为字段,表中的行称为记录
- 以字段为基本的存储单位和计算单位
- 每一个字段必须有字段名,且同一个表中的字段名不能重复
- 每个字段的数据类型必须一致
主流的关系型数据库
- Oracle:运行稳定、可移植性高、功能齐全、性能超群,适用于大型企业
- DB2:速度快、可靠性好、适用于海量数据、恢复性极强,适用于大中型企业
- MySQL:开源、体积小、速度快,适用于中小型企业
- SQL server:全面高效、界面友好易操作,但是不跨平台,适用于中小型企业
数据库、数据库管理系统和SQL之间的关系
- 数据库是长期存储在计算机内、有组织的、统一管理的相关数据的集合。
- 数据库管理系统是用于管理数据库的软件,它对数据库进行统一的管理和控制,以保证数据库的安全性和完整性。
- SQL是一种结构化查询语言(Structure Query Language),它是国际标准化组织(ISO)采纳的标准数据库语言。
数据库基本结构
数据库:组织、存储和管理相关数据的集合,同一个数据库管理系统中数据库名必须唯一
- 表:由固定列数和任意行数构成的二维表结构的数据集,同一个数据库中表名必须唯一
- 字段:一列即为一个字段,同一个表中字段名必须唯一
- 记录:一行即为一条记录
- 以字段为基本存储和计算单位,每个字段的数据类型必须一致
MySQL常用数据类型
- int:大整数型,有符号大小-2147483648~2147483647, 无符号大小0~4294967295,默认长度最多为11个数字,如int(11)
- float:单精度浮点型,默认float(10,2),表示最多10个数字,其中有2位小数
- decimal:十进制小数型,适合金额、价格等对精度要求较高的数据存储。默认decimal(10,0),表示最多10位数字,其中0位小数。
- char:固定长度字符串型,长度为1-255。如果长度小于指定长度,右边填充空格。如果不指定长度,默认为1。如char(10),‘abc ’
- varchar:可变长度字符串型,长度为1-255。必须指定长度,如varchar(10),‘abc’
- text:长文本字符串型,最大长度65535,不能指定长度
- date:日期型,‘yyyy-MM-dd’
- time:时间型,‘hh:mm:ss’ • datetime:日期时间型,‘yyyy-MM-dd hh:mm:ss’
- imestamp:时间戳,在1970-01-01 00:00:00和2037-12-31 23:59:59之间,如1973-12-30 15:30,时间戳为:19731230153000
字符串类型和日期时间类型都需要用引号括起来
SQL
SQL语言分类
- 数据定义语言DDL:用于创建,修改,删除数据库中的各种对象(数据库、表、视图、索引等),常用命令有
CREATE
,ALTER
,DROP
- 数据操作语言DML:用于操作数据库表中的记录,常用命令有
INSERT
,UPDATE
,DELETE
- 数据查询语言DQL:用于查询数据库表中的记录,基本结构:
SELECT <字段名> FROM <表或视图名> WHERE <查询条件>
- 数据控制语言DCL:用于定义数据库访问权限和安全级别,常用命令:
GRANT
,REVOKE
SQL书写要求
• SQL语句可以单行或多行书写,用分号结尾
• SQL关键字用空格分隔,也可以用缩进来增强语句的可读性
• SQL对大小写不敏感
• 用#或-- 单行注释,用/* */多行注释,注释语句不可执行