1.关系型(例如:Mysql和Oracle)和非关系型数据库(例如:redis和MangDB)的区别:(各自优点)
关系型数据库最典型的数据结构是表。由二维表及其之间的数据联系所组成的数据组织。
优点:
1.易于维护:格式一致,都是使用表结构。
2.使用方便:SQL语言通用。
3.能完成一些复杂操作:支持SQL,可用于一个表及多个表之间非常复杂的查询。
缺点:
1.读写性能较差。
2.固定的表结构,灵活性欠缺。
3.高并发读写需求,是很大的瓶颈。
非关系型数据库
非关系型数据库严格意义上不是一种数据库,应该是一种数据格式化储存的集合,可以是文档或者键值对形式。
优点:
1.格式灵活
2.速度快:可以使用硬盘或者随机储存器作为载体,而关系型数据库只能使用硬盘。
3.高拓展性。
4.成本低,部署简单。
缺点:
1.不提供SQL支持,学习和使用的成本比较高。
2.无事务处理。
3.数据结构相对复杂,复杂查询方面稍微欠缺。
注:所谓的事务处理简答来说就是把对数据库的一系列操作作为逻辑上的一个整体,当其中所有操作都正常实现,这一整个事务才能实现,否则数据保持原始状态。
数据库事务(Database Transaction) ,是指作为单个逻辑工作单元执行的一系列操作,要么完全地执行,要么完全地不执行。 事务处理可以确保除非事务性单元内的所有操作都成功完成,否则不会永久更新面向数据的资源。通过将一组相关操作组合为一个要么全部成功要么全部失败的单元,可以简化错误恢复并使应用程序更加可靠。一个逻辑工作单元要成为事务,必须满足所谓的ACID(原子性、一致性、隔离性和持久性)属性。事务是数据库运行中的逻辑工作单位,由DBMS中的事务管理子系统负责事务的处理。
2.常用SQL语句:
- 数据查询语言(DQL):是由SELECT子句,FROM子句,WHERE子句组成的查询块
- 数据操纵语言(DML): SELECT(查询) INSERT(插入) UPDATE(更新) DELETE(删除)
- 数据定义语言(DDL):CREATE(创建数据库或表或索引)ALTER(修改表或者数据库)DROP(删除表或索引)
- 数据控制语言(DCL):GRANT(赋予用户权限) REVOKE(收回权限) DENY(禁止权限)
- 事务控制语言(TCL):SAVEPOINT (设置保存点)ROLLBACK (回滚) COMMIT(提交)
3.数据库中join的类型和区别:
left join(左联接) 返回包括左表中的所有记录和右表中联结字段相等的记录
right join(右联接) 返回包括右表中的所有记录和左表中联结字段相等的记录
inner join=join(等值连接) 只返回两个表中联结字段相等的行