数据库是按照数据结构来组织、存储和管理数据的仓库。利用数据库中的各种对象,记录、处理和分析各种数据。
常用数据库:oracle,SQL Server,MySQL,Access等关系型数据库
NoSQL技术的分布式数据库:Hbase,MongoDB,Redis等
(1)Access数据库
优点:操作界面友好,易操作;查询处理可直接生成相应的SQL语句
不足:数据库过大时(Access数据库文件百兆以上),性能变差。
记录数据过多时(记录达到千万条以上),性能变差。
Access数据库中每个数据库文件上限为2GB
(2)SQL:(structured query language)结构化查询语言
一种通用的关系型数据库操作语言。让数据库按我们的意思实现查询操作的语言。
业内人士常说的数据挖掘:是通过对历史数据进行建模预测,生成一定的规则,然后数据库工程师将生成的规则编写成相应的SQL语句,并编写成数据库的存储过程,可定期执行它们得到数据模型结果。
处理大数据的Hadoop,所使用的Hive语言(HQL),与SQL 语言基本一致,部分语句的编写或功能存在差异。
注意事项:
在SQL 语句中,英文字母大写或小写均可;每个SQL语句的关键字用空格符合分隔;字段或参数之间用逗号分隔
SQL语句中如参数为字符型,需要单引号,数值型不用单引号;SQL语句结束时,在语句结尾处添加分号;
SQL语句中如表名、字段中出现空格、‘/’,'\'等特殊字符时,需用方括号[],将含有特殊字符的表名字段名括起来;
‘*’代表选定表格中的所有字段,并按照其在数据库中的固定顺序来排序;
在函数参数或条件查询中,若参数或查询条件为日期和时间类型数据,需在数据值两端加井字符号‘#’,表示数据类型为日期型;
SQL语句中使用的逗号,分号,单引号,括号等符号均为英文状态下输入的符号;
尽量避免在数据库中进行全表扫描。在where语句中尽量避免‘!=’,‘<>’,‘OR’等或对字段进行函数操作,否则进行全表扫描。
(3)索引和主键
索引相当于对指定的列进行排序,就好比是一本书的目录,通过它可以快速查询到结果,无需全表扫描,加快数据库查询速度。
主键是确定数据中每一条记录的唯一标识,本质是索引,一个特殊索引。主键所在列每一记录都是唯一的,在同一表里只能有一个主键。
两者区别:
i: 主键用于标识数据库记录的唯一性,不允许记录重复,且键值不能为空。主键是一个特殊的索引,主键=索引,索引不一定等于主键。
ii: 索引可提高查询速度,通过它可快速查询到结果,无需全表扫描
iii: 使用主键,数据库会自动创建主索引,也可在非主键上创建索引,提高查询速度。
iiii: 数据表中只允许有一个主键,但可有多个索引。
在Access数据库中,主键不是必须的,但为每个表设置一个主键,可提高查询速度。
(4)Access数据库数据导入方法
直接导入法:Access数据库中的表与数据源脱离了联系,对数据的更改不会影响源文本数据文件
建立链接法:链接表显示源文本文件中的数据,但它实际上并不将数据存储在数据库中,对源文本文件进行的任何更改都将自动反映到链接表中,即数据会随数据源的变化而自动更新。
(5)数据合并
在函数参数或条件查询中,若参数或查询条件为日期和时间类型,需要在数据值两端加上井字符号,以表示数据类型为日期型。
(6)数据分组:数值分组、日期/时间分组
数值分组函数 | 优点 | 缺点 |
iif | 可进行不等距分组 | 语句冗长,极易出错 最多可进行13层嵌套 |
choose | 分组可达254个 | 只能进行等距分组 |
switch | 可进行不等距分组 | 条件表达式最多达到14个 |
partition | 分组不限 语句简单、清晰明了 |
只能进行等距分组 |
日期/时间格式参数 | 说明 |
: | 时间分隔符 |
/ | 日期分隔符 |
d | 根据需要以一位或两位数字表示一个月中的第几天(1~31) |
dddd | 星期的全称(Sunday~Saturday) |
w | 一周中的第几天(1~7) |
ww | 一周中的第几周(1~53) |
m | 根据需要以一位或两位数字表示一年中的月份(1~12) |
mmmm | 月份的全称(January~December) |
q | 一年中的第几季(1~4) |
y | 一年中的第几天(1~366) |
yyyy | 完整的年份(0100~9999) |
h | 根据需要以一位或两位数字表示小时(0~23) |
n | 根据需要一位或两位数字表示分钟(0~59) |
s | 根据需要用一位或两位数字表示秒(0~59) |
(7)重复数据
group by / disdinct
(8)数据分析:简单统计、分组统计、交叉统计