数据库面试题
- 关系型数据库和非关系型数据库的区别?
项目 | 关系型 | 非关系型 |
---|---|---|
特性 | 关系模型(二维表格模型)来组织、事务一致性 | 键值对存储数据、分布式、不支持ACID特性、数据结构化存储方法的集合 |
优点 | 容易理解、使用方便、易于维护、支持SQL可用于复杂的查询 | 无需经过sql解析,读写性能高、基于键值对数据无耦合性容易扩展、数据类型多样化 |
缺点 | 维护一致性与性能优化有矛盾、固定的表结构、高并发读写需求、海量数据的高效率读写 | 不支持sql、学习成本高、无事务处理,附加功能bi和报表等支持也不好 |
- ORACLE数据类型
类型 | 说明 |
---|---|
char(n) | 定长n字符串,缺省值为1,汉字长度为2 |
varchar2(n) | 可变长字符串,最大长度为n |
number(m,n) | m∈[1,38],n∈[-84,127],整体长度m,小数点后长度n,超出部分截掉 |
date | 缺省格式为 DD-MON-YY 表示2000年11月7日 |
long | 最大长度2GB,用于不需要进行字符搜索的昌数据,如果需要,就用varchar2()类型。(古老,将会被BLOB、CLOB、NCLOB等大数据对象所替代) |
raw(n) | n∈[1,2000],可变长二进制数据最大长度为n。(古老,将会被BLOB、CLOB、NCLOB等大数据对象所替代) |
long raw | 可变长二进制数据,最大长度为2GB。(古老,将会被BLOB、CLOB、NCLOB等大数据对象所替代) |
blob、clob、nclob | 三种大型对象(LOB),用来保存较大的图形文件或带格式的文本文件,可以执行存储、读取、写入等特殊操作 |
bfile | 在数据库外部保存的大型二进制对象文件,这种外部的LOB类型,通过数据库记录变化情况,但是数据的具体保存是在数据库外部进行的 |