(1) 关系型和非关系型数据库的区别(各自优点)
关系型数据库
特点
- 基于单一关系模型,结构化存储,有完整性约束
- 通过二维表建立数据之间的联系
- 采用结构化查询语言(SQL)做数据读写
- 操作保存数据的一致性
优点
- ☆通过事务处理保持数据的一致性
- 数据更新的开销很小
- 可以进行Join等复杂查询
- 20多年的技术历程,技术成熟
缺点
- 数据读写必须经过sql解析,大量数据、高并发下读写性能不足
- 为保证数据一致性,需要加锁,影响并发操作
- 无法适应非结构化的存储
- 大量数据集中到一台服务区处理,使服务器不堪重负
- “阻抗失谐”,即数据库中存储的对象与实际的对象实体有一定的差别
- 扩展困难
- 数据库庞大,价格昂贵
NOSql数据库
特点
- 非结构化的存储。
- 基于多维关系模型。
- 部署容易,开源免费,成本低
优点
- 处理高并发、大批量数据的能力强
- 支持分布式集群,负载均衡,性能高
- 解决“阻抗失谐”问题
- 内存级数据库,查询速度快
- 存储格式多,支持key-value形式、文档形式、图片形式
- 没有多表连接查询机制的限制,扩展性高
缺点
- 技术起步晚,维护工具以及技术资料有限
- 不支持sql工业标准
- 没有join等复杂的连接操作
- 事务处理能力弱
- 没有完整性约束,对于复杂业务场景支持较差
(2) 常用SQL语句(DDL,DML,DCL,TCL)
1.DDL(Data Definition Language)数据库定义语言statements are used to define the database structure or schema.
DDL是SQL语言的四大功能之一。
用于定义数据库的三级结构,包括外模式、概念模式、内模式及其相互之间的映像,定义数据的完整性、安全控制等约束
DDL不需要commit.
CREATE
ALTER
DROP
TRUNCATE
COMMENT
RENAME
2.DML(Data Manipulation Language)数据操纵语言statements are used for managing data within schema objects.
由DBMS提供,用于让用户或程序员使用,实现对数据库中数据的操作。
DML分成交互型DML和嵌入型DML两类。
依据语言的级别,DML又可分成过程性DML和非过程性DML两种。
需要commit.
SELECT
INSERT
UPDATE
DELETE
MERGE
CALL
EXPLAIN PLAN
LOCK TAB