mysql_学习路径

数据库学习途径
1.百度
2.官方文档
mysql官网
下载帮助文档
3.建立自己的知识库

4.1
数据冗余
购车订单表:id username carname buy_date buy_price
1 张三 奥迪Q3 2018.3.1 260000
2 王五 别克君威 2018.05.01 300000
3 李四 大众朗逸 2018.10.01 400000
此表问题:
1.用户扩展性问题,用户没有属性
2.可能张三也买了雪佛兰科鲁兹,修改、修改多列

抽象成------> user 表
id user age
好处:重复归到一类、便于修改; 查询连接; 分类汇总时int类要好于字符串,2个字节-----4,6.字节,每行偏移量也不同

数据库三范式:
无重复列、属性完全依赖与主键、属性不依赖于其他非主属性

4.2 csv,json导到数据库
load
首先先看是否有现成的工具,不能直接就去查写代码。先找现成的解决方案,使用工具特性

4.3
先理解笛卡儿积的概念
left join ...

主键,外键,建立索引,提高效率

100*100行-----> 100对100

4.4 原始表统计,同步,
VIEW

4.5 字符串类型:varchar(多步) char(数据空间是对齐的,查找快) text(>255用,要小于。。。)
行存储数据库

4.6 时间类型不能存string,要datetime ,因为时间最原始就是float; 运算时,不变计算,还要去切,统计时就更不便

例如:数据库时,插入数据时,当前时间;更新时当前时间记录

ud date1 date2

date2更新哈偶,date1跟着变
date2更新哈偶,date1不跟着变

建表时,on update current_timestamp

表结构修改---alter----

4.7 由birthday查年龄
有现成的 timestampdiff(year,birth)

4.8 where 和 having

数据过滤
having是对统计后的数据进行过滤

ps:通常用小写,

实体型之间的关系:一对一、一对多

如何检查sql性能-----用explain


sql数据处理问题
定义数据时,计算机拿数据时超过一定字节,就要拿多次,
所以要将数据归类,int,float


字符编码
例如:计算一篇文章的标点符号

处理csv分隔符,如果文本中有,how ,通过不可见字符处理
按标点符号切,

搞清楚编码关系 gbk utf-8 unicode

舆情文本有回车换行符处理

正则表达式

爬虫去重

唯一标识:
url 发帖人 发帖时间

不用遍历去重

计算md5值,32位,唯一的,做主键,查询

你可能感兴趣的:(mysql_学习路径)