1、data model:
relational(关系型数据库):structure(结构)、integrity(限制,保证插入的时候有相同的字段可以进行连接-外键)、manipulation(向上应用需要提供一些编程接口,应用想获取或者修改数据库中的内容,例如ODBC)
关系数据库的中表的本质是什么:关系;对于原始的关系型数据库而言就存储标量即可,矢量还是难以表现
主健:唯一可以一条数据的列,如果没有自己添加主键则自动进行添加,区别在数据库mysql中用auto_increment关键字是自动增长编号,不需要人工进行
外键:两个表之间的关联属性,可以添加中间表提高可用性
key/value、graph、document、column-family(nosql,非关系型数据库)
2、DML语言
select:定义怎么做
projrction:根据你的要求产生新的表
union:将两个表的查询汇聚成一个
intersection:取交集
difference:取补集
product:取笛卡尔积,把所有的排列都列出来
join:
3、SQL语法:
AGGREGATES(聚合,将输出的结果通过你想要的方式聚合成一个结果):AVG(col);MIN();MAX();SUM();COUNT()
conut(*):会自动进行优化;distinct关键字表示只会统计不同的查询结果
GROUP BY:根据一个属性进行分组
Having:做完group by之后的结果还要继续进行筛选
%多字符模糊,_单字符模糊。不建议将模糊放在左侧,因为索引完毕之后需要进行排序,排序是左边字符优先,若模糊在左边则需要遍历全部的索引才可以进行排序
Substring:切割字符串;Upper:取大写
拼接函数:||;+;CONCAT()
INTO:输出重定向,将查询结果新建表格(SQL);CREATE TABLE(MYSQL)
ORDER BY:输出控制,排序。ORDER BY 1 一般是根据第一列进行排序
SELSCT:限制输出控制
in():嵌套查询
子查询的常见命令:
CTE(common TABLE expression):临时视图,可以进行递归