目录
面试题5.3 mysql常用数据类型、oracle常用数据类型
面试题5.4 char、varchar2、varchar有什么区别?
面试题5.5 什么是BLOB、CLOB?MySQL的Text类型了解过吗
面试题5.12 drop、truncate、 delete区别
面试题5.1 Oracle和Mysql的区别?
【技术难度: 出现频率: 】
第一层:
- Oracle用表空间来管理表,Mysql用库来管理表。
- mysql用limt做分页、支持主键自增长(`auto_increment`),oracle用rownum做分页、通过序列(sequence)达到自增效果。
create sequence ms start with 1 increment by 1; -- 在插入数据时,可以直接在INSERT语句中使用序列的NEXTVAL来获取下一个值,并将其作为自增字段的值插入到表中。 -- 例如: INSERT INTO table_name (id, name) VALUES (my_sequence.NEXTVAL, 'John Doe');
- 库函数不同、SQL语法、功能语句不同。
- Oracle的事务隔离级别默认是读已提交,MySQL是可重复读。
- Oracle的事务默认是不开启自动提交,MySQL默认是开启自动提交的。
- Oracle中没有if exists,if not exists的语法,MySQL有。
第二层:
第3点展开说是这样:
库函数不同,比如:滤空函数在Oracle中是NVL(列名,覆盖值),而MySQL中是IFNULL(列名,覆盖值)
SQL语法不同,比如:Oracle中没有if exists,if not exists的语法,MySQL有。
功能语句不同,比如:显示当前所有的表、用户、改变连接用户、显示当前连接用户、执行外部脚本等语句不同。
面试题5.2 SQL语句有多少类型
【技术难度: 出现频率: 】
第一层:
SQL语句分五类:DDL数据定义语言、DML数据操控语言、DQL数据查询语言、DCL数据库控制语言、TCL事务控制语言。
第二层:
它们分别包括以下内容:
- DDL(Data Definition Language)数据定义语言,用于操作表结构等,包括create创建、drop删除、alter修改、truncate截断;
- DML(Data Manipulation Language)数据操控语言,用于操作表中数据,包括insert插入、delete删除、update更新;
- DQL(Data Query Language)数据查询语言,用于查询,包括select查询;
- DCL(Data Control Language)数据库控制语言,用于设定用户权限,包括grant授权、revoke撤销;
- TCL(Transaction Control Language)事务控制语言,用于控制事务,包括commit提交、rollback回滚。
第三层:
再详细说每个语的句功能的话是这样:
DDL(Data Definition Language)数据定义语言:
- Create语句,可以创建数据库和数据库的一些对象;
- Drop语句,可以删除数据表、索引、触发程序、条件约束以及数据表的权限等;
- Alter语句,修改数据表定义及属性;
- Truncate语句,删除表中的所有记录,包括所有空间分配的记录被删除。
DML(Data Manipulation Language)数据操控语言:
- Insert语句,向数据表张插入一条记录;
- Delete语句,删除数据表中的一条或多条记录,也可以删除数据表中的所有记录,但是它的操作对象仍是记录;
- Update语句,用于修改已存在表中的记录的内容。
DQL(Data Query Language)数据操控语言:
- Select语句,用于查询已存在表中的记录的内容。