数据库面试中常被问到的问题涵盖多个方面,包括基本操作、约束理解、表连接、优化查询、索引与游标、数据类型、数据库区别、SQL语句、存储过程等。以下是这些问题的概述:1. 表的操作是基础,涉及创建(`create table`)、删除(`drop table`)、修改(`alter table`)、插入(`insert into`)、更新(`update`)、删除(`delete`)和查询(`select`)记录。2. 数据库约束包括主键(`primary key`)、外键(`foreign key`)、唯一性(`unique`)、检查(`check`)、空值(`not null`)和默认值(`default`)。3. 主键是唯一的且不可为空,而外键关联另一表的主键,允许空值。4. 索引是数据结构,能加速查询,但会增加存储空间并减慢写入速度。5. `order by`用于排序,`group by`用于分组,`having`用于筛选分组后的结果。6. SQL表连接类型有内连接(`inner join`)、外连接(左、右、全连接)、交叉连接(`cross join`)。7. 提高查询速度的方法包括建立索引、减少关联、优化SQL结构、精简查询和使用PreparedStatement。8. 游标是处理多条数据记录的机制,涉及声明、打开、操作和关闭。9. 主外键关联时,删除主表记录时需考虑级联删除或外键置空。10. 常用的聚合函数有`sum`、`avg`、`max`、`min`和`count`。11. Oracle数据库的基本数据类型有字符串、数字、浮点、日期和大对象类型。12. Oracle与MySQL的区别主要体现在库函数、数据管理、命令行语法和分页查询方式。13. `union`合并结果并去重,`union all`简单合并,`union all`效率更高。14. `truncate`和`delete`都删除数据,但`truncate`更快且不记录事务日志。15. 行转列和列转行通过`decode`和`case when`实现。16. Oracle去重用`distinct`,获取系统时间用`sysdate`。17. 序列在Oracle中用于生成唯一编号,确保数据一致性。18. 存储过程是预编译SQL,提高执行效率,但移植性差。19. 存储过程与函数的区别在于存储过程无返回值,函数有返回值且可在`select`中使用。面试者可能会被要求用SQL解决一些实际问题,如查询学生数学成绩、统计总成绩等。