NoSQL数据库
- 键值型数据库通过Key-Value键值的方式来存储数据,其中Key和Value可以是简单的对象,也可以是复杂的对象。Key作为唯一的标识符,优点是查找速度快,在这方面明显优于关系型数据库,同时缺点也很明显,它无法像关系型数据库一样自由使用条件过滤(比如WHERE),如果你不知道去哪里找数据,就要遍历所有的键,这就会消耗大量的计算。
- 文档型数据库用来管理文档,在数据库中文档作为处理信息的基本单位,一个文档就相当于一条记录,MongoDB是最流行的文档型数据库。
- 搜索引擎也是数据库检索中的重要应用,常见的全文搜索引擎有Elasticsearch、Splunk和Solr。虽然关系型数据库采用了索引提升检索效率,但是针对全文索引效率却较低。搜索引擎的优势在于采用了全文搜索的技术,核心原理是“倒排索引”。
- 列式数据库是相对于行式存储的数据库,Oracle、MySQL、SQL
Server等数据库都是采用的行式存储(Row-based),而列式数据库是将数据按照列存储到数据库中,这样做的好处是可以大量降低系统的I/O,适合于分布式文件系统,不足在于功能相对有限。 - 图形数据库,利用了图这种数据结构存储了实体(对象)之间的关系。最典型的例子就是社交网络中人与人的关系,数据模型主要是以节点和边(关系)来实现,特点在于能高效地解决复杂的关系问题。
NoSQL对SQL做出了很好的补充,它可以让我们在云计算时代,更好地使用数据库技术,比如快速读写,这样可以用低廉的成本,更方便进行扩展。
不同DBMD的区别
即使SQL语言是通用的,但是为了满足不同用户的使用场景,会存在多个DBMS。
- Oracle更适合大型跨国企业的使用,因为他们对费用不敏感,但是对性能要求以及安全性有更高的要求。
- 而MySQL更受到许多互联网公司,尤其是早期创业公司的青睐。
- 而SQL Server是大型数据库,用于后台的存储和查询,不具备界面开发的功能。
SELECT的执行顺序
1.关键字的顺序需要遵守以下顺序:
SELECT ... FROM ... WHERE ... GROUP BY ... HAVING ... ORDER BY ...
2.SELECT语句的执行顺序(在MySQL和Oracle中基本相同):
FROM > WHERE > GROUP BY > HAVING > SELECT的字段 > DISTINCT > ORDER BY > LIMIT
数据过滤技巧
- 当WHERE子句中同时出现括号、AND和OR操作符的时候,你需要考虑到执行的先后顺序,也就是两个操作符执行的优先级。一般来说()优先级最高,其次优先级是AND,然后是OR。
- LIKE+通配符:%表示零个或多个字符,_表示单个字符
|