搜档网
当前位置:搜档网 › 数据库基础面试题

数据库基础面试题

一、聚合函数(组函数)几种?
sum() 总和
avg() 平均值
max() 最大值
min() 最小值
count() 行数(记录数)

二、oracle数据库中,null的用法?
ORACLE中,含有null值的表列长度为零。ORACLE 允许任何一种数据类型的字段为空,除了以下两种情况:
1、主键字段(primary key)
2、有 not null 限制的字段
注意:
1、比较是否为null时:不能用 =null ,要用is null 或 is not null
2、任何值与null做比较运算,结果一定为假
3、对null 做加、减、乘、除等运算操作,结果仍为null
4、NULL的处理使用NVL函数
5、排序时比其他数据都大,所以NULL值总是排在最后

三、oracle数据库中常用的伪列有哪两种?
1、ROWID: 表中行的存储地址,该地址可以唯一地标识数据库中的一行,可以使用 ROWID 伪列快速地定位表中的一行
2、ROWNUM: 对筛选后的结果集的一个排序的序号,可以使用它来限制查询返回的行数

四、distinct关键字的用法?
在查询时,使用distinct 关键字消除重复列。
注意:消除的是整行的重复列,而不是某一列的重复值

五、Oracel服务器默认的端口号是什么?
Oracel服务器默认的端口号是1521

六、SQL是由哪4种语言组成的?
DML(数据操作语言):查询、插入、删除和修改数据库中的数据。有SELECT、INSERT、 UPDATE 、DELETE等。
DCL(数据控制语言):用来控制存取许可、存取权限等。GRANT、REVOKE 等。
DDL(数据定义语言):用来建立数据库、数据库对象和定义其列。CREATE TABLE 、DROP TABLE 等
TCL(事务控制语言):用于事务控制。COMMIT 、ROLLBACK 、SAVEPOINT 等

七、在查询语句中以下正确的子句顺序是
WHERE --- GROUP BY --- HAVING --- ORDER BY

八、使用序列插入数据,从1开始,插入3行之后,又删除两行,之后又插入一行。
这时,插入这行数据的序列值是什么?
是4,因为序列值是连续的

九、内连接和外连接的区别?
内连接:必须两个表中的数据都互相匹配才可以。
外连接:左外连接:以左表为主,左表中的数据全部返回,右表中不匹配的记录返回null
右外连接:与左外连接相反。

十、数据库事务的作用?
事务是最小的工作单元,作为一个整体进行工作。在一个事务中的每个工作必须全部成功。
如果有一个不成功,就必须全部回归到初始状态。
保证事务的整体成功或失败,称为事务控制
Oracle通过事务确保数据的一致性

十一、数据库表设计的基本三范式?
第一范式(1NF)的目标:确保每列的原子性
第二范式(2NF)的目标:确保表

中的每列,都和主键相关
第三范式(3NF)的目标:确保每列都和主键列直接相关,而不是间接相关

十二、什么是索引、哪些情况适合使用索引?
主要用来提升数据检索速度,在数据量很大的时候很有用。可以把索引看做图书馆的图书目录。
它可以提高 SQL 语句执行的性能,减少磁盘I/O。
由于索引在逻辑上和物理上都独立于表数据,因此索引和表是分开的两个数据库对象。
以下这六种情况适合使用索引:
1、在经常需要搜索的列上。
2、在作为主键的列上。(自动创建主键索引)
3、在经常用在多表连接的列上(主要是外键)。
4、在经常需要根据范围进行搜索的列上创建索引。
5、在经常需要排序的列上创建索引。
6、在经常使用在WHERE子句中的列上面创建索引。


十三、SQL操作符有哪些?优先级从高到低的顺序是什么?
1、算术操作符:+、-、*、/
2、比较操作符:=、!=、<、>、<=、>=、BETWEEN…AND、IN、LIKE、IS NULL等
3、逻辑操作符:AND、OR、NOT
算术操作符 -> 比较操作符 -> NOT -> AND -> OR

十四、在oracle中,可以使用单引号(')给列取别名吗?
不可以,但可以使用双引号给列取别名。

十五、在oracle中和空值等价的是什么?
与空值等价的是:null、两个并列的单引号

十六、在oracle中,列别名和表别名的使用?
1、列别名也可以使用as关键字,表别名不能使用as关键字
2、别名可以加双引号,但不能加单引号
3、在oracle中,from、where先于select执行,所以不能在where处使用列别名,但可以使用表别名。

十七、oracle可以自动根据具体情况数据类型之间的转换:
1、字符串到数值。
2、字符串到日期。
3、数值到字符串。
4、日期到字符串。

十八、oracle中表示当前日期的函数是什么?
sysdate

十九、主键约束与唯一约束的区别?
主键约束不允许有重复值,而且不能存在空值。但唯一约束允许存在一个空值。
所以,如果表中某列数据不允许重复,但允许空值,最适合加上唯一约束(UNIQUE)。

二十、delete与truncate的区别?
1、都是只删除数据,不删除表结构
2、delete后面可以跟where子句,进行有条件的删除记录。而truncate只能无条件删除所有记录
3、delete删除时记录日志,而truncate删除时不记录日志

二十一、当查询记录为0时,聚合函数的返回值是什么?
sum():null
max():null
min():null
avg():null
count():0

二十二、在oracle中,能用create语句创建的数据库对象有哪些?
表、视图、同义词、序列、存储过程、触发器等

二十三、如

何限制查询结果的行数?
限制固定行数:例:SELECT * FROM Students WHERE rownum<=5
1、ROWNUM并不实际存在,是对筛选后的结果集的一个排序,从1
开始。如果不存在结果集就不会有ROWNUM。
2、如果使用 >,那么只能使用 >0 ,将显示所有记录。
如果是 >1 将没有返回记录。当select筛选出所要的结果集后,取
出第一条ROWNUM=1,不符合ROWNUM>1,所以剔除,选取下
面一条数据,ROWNUM仍然是1,还是不符合要求。以此类推,
没有ROWNUM=1就没有ROWNUM=2,所以就不会筛选出
ROWNUM>1的结果集。
3、如果使用=,那么只能使用 =1,将显示第一条记录,除此之外都
没有返回记录。理由同上。




相关主题