Oracle基础面试题:1.常见的数据库有哪些?区别是?尤其是mysql、oracle
大型数据库有:Oracle、Sybase、DB2、SQL server
小型数据库有:Access、MySQL等
Orcale :Orcale属于大型数据库系统,主要适用于大、中小型应用系统,或作为客户机/服务器系统中服务器端的数据库系统。
较安全、较贵
MySQL :由于其体积小、速度快、总体拥有成本低,开放源码
DB :最适于海量数据,性能较高适用于数据仓库和在线事物处理。
SQLServer :SQLServer是一个可扩展的、高性能的、为分布式客户机/服务器计算所设计的数据库管理系统,多用户时性能不佳
access :界面友好、易学易用、开发简单、接口灵活
sybase :是一种典型的UNIX或Windows平台上客户机/服务器环境下的大型数据库系统。
2.如何优化数据库
查询操作建立合适的索引
避免使用*,尽量使用字段代替*和常量
避免第一范式、第二范式
避免使用where子句中对字段进行表达式操作和函数操作
尽可能使用变长字段
避免使用游标、因为游标效率较差
尽量避免大事务操作,提高系统并发能力
3.数据库对象有哪些(模式)
表、视图、索引、序列、存储过程、触发器
4.char/varchar/varchar2的区别
char :长度固定、区分中英文、中文占2个字节、英文占一个字节、适用于长度比较固定的,一般不含中文的情况、最大长度为2K字节
varchar :长度不固定、区分中英文、最大长度为4K字节
varchar2 :基本和varchar一样、不同在于,varchar2用null代替varchar的空字符串
varchar和varchar2适合用于长度不固定的,一般不含中文的情况
nvarchar和nvarchar2是长度不固定的,不区分中英文,其长度定义的是字符数
nvarchar/nvarchar2适用于存放中文
5.to_date、to_char、to_number
to_date :将字符串按照指定的格式转换为日期数据
to_char :将日期数据转换为字符串数据
to_number :将字符转换为数字
6.nvl/trunc/round/initcap/lower/upper/trim/substr/length
nvl :空值处理
trunc :截取
round :四舍五入
initcap :将参数字符串的每个单词的第一个字母转换为大写,其余为小写
lower :转为大写
upper :转为小写
trim :删除指定的字符串
substr :返回字符串的一部分字符
substrb :返回字符串的一部分字节
length :求长度 返回以字符为长度单位
lengthb :求长度 返回以字节为长度单位
7.decode
相当于if ...
用法:decode(判断条件,匹配1,值1,匹配2,值2,...)
8.数据库中去重关键字
distinct
9.where/having的区别
having :必须用于有group by;先分组,再扫描表;条件中可以用聚合函数
where :可以单独使用;先扫描表,再分组;条件中不可以使用聚合函数
10.聚合函数有哪些?
count、avg、sum、max、min
11.排序的关键字,升序,降序,分别是什么,默认是什么?
order by
升序:asc
降序:desc
默认:asc
12.数据库的语言分类?
分为五类:
数据定义语言(DDL) :CREATE、DROP、ALTER等语句。
数据操作语言(DML) :INSERT(插入)、UPDATE(修改)、DELETE(删除)语句。
数据查询语言(DQL) :SELECT语句。(一般不会单独归于一类,因为只有一个语句)。
数据控制语言(DCL) :GRANT、REVOKE等语句。
事务控制语句(TCL) :COMMIT、ROLLBACK等语句。
分为三类:
DDL :CREATE、ALTER、DROP、TRUNCATE、COMMENT、GRANT、REVOKE
DML :SELECT、INSERT、UPDATE、DELETE、CALL(PL/SQL or Java subprogram)、EXPLAIN PLAN(explain access path to data)、LOCK TABLE(control concurrency)
DCL :COMMIT 、SAVEPOINT、ROLLBACK、SET TRANSACTION
13.数据库中删除操作有哪些?区别是?
DELETE :DML、删除数据,不腾出表空间的空间、可以在不删除表的情况下删除所有的行、Oracle数据库不要求必须使用FROM关键字TRUNCATE :DDL、删除表中所有行的数据,但是会保留表的结构、不能rollback、速度快、删的数据不能恢复、只能以表或簇为操作对象,而不能操作视图、同义词等模式对象、释放表所占用的磁盘空间、不会触发表的删除触发器
语法格式:TRUNCATE TABLE [schema.]table_name;
DROP :DDL、删除数据和表、使用DROP TABLE语句删除表时,表不会被立即删除,Oracle数据库将表进行了重命名并放入回收站中,这样还可以通过闪回操作复删除的表。14.关联查询与子查询的区别?
子查询就是查询中又嵌套的查询
子查询是指子查询返回的结果集是 N 行 N 列的一个表数据。
关联子查询会引用外部查询中的一列或多列,这种子查询之所以被称为关联子查询,是因为他的确与外部语句相关。
关联子查询 :exists 、not exists
exists 与 in 的比较 :
in操作符实现指定匹配查询
exists操作符只是检查行是否存在,针对行的存在性
在使用not exists 和 not in 时,如果一个值列表中包含有空值,not exists 返回true ,而 not in 返回false
15.内连接,左外连接,全外连接的结果集分别是什么?
内连接 : join ...on 表1 join 表2 on 条件
内连接结果集是可以在两张表中查询到匹配数据的数据记录
左外连接 : 表1 left join 表2 on 条件
左外连接结果集:驱动表的所有记录与其在匹配表中相匹配的数据===>驱动表的数据一个都不能少
全外连接 : 表1 full join 表2 on 条件
全外连接是将两个表的所有记录都查询出来
全外连接的结果集=内连接的结果集+驱动表在匹配表中与之匹配不上的记录和空值+匹配表中在驱动表中与之匹配不上的记录和空值
驱动表与匹配表可以互换
16.驱动表(主表)、匹配表(从表)?
驱动表与匹配表 : 表1 join 表2 on 条件
a.表1是驱动表(主表),表2是匹配表(从表)
b.等值连接下,驱动表与匹配表是可以互换位置的,不影响结果
c.执行方式:遍历驱动表,在匹配表中找到与驱动表相匹配的数据
17.并集、差集、交集的关键字
并集 :union/union all
Oracle简单基础面试题01
最新推荐文章于 2024-04-12 11:57:25 发布