• 面试题: 数据库 oracle数据库 已看1 意义不大 有用


    Oracle数据库面试题总结

    1、SQL语句分类

    DQL(数据查询语言)select

    DML(数据操作语言)insert、delete、update

    DDL(数据定义语言)create、drop、alter

    DCL(数据控制语言)grant:把权限授予用户、revoke:把权限从用户收回

    TPL(TCL,事务控制语言):commit、rollback

    2、Oracle是怎样分页的

    Oracle用rownum进行分页

    分页语句的步骤:

    a.最内层sql,查询要分页的所有数据

    b.第二层sql,通过rownum伪列确定显示数据的上限,并且给查询的数据添加rownum伪列的值

    c.最外层sql,设置显示数据的下限

    select*from

    (select a.*,rownum r from

    (select*from表名 where条件 orderby列) a

    whererownum<=页数*条数) b where r>(页数-1)*条数

    3、truncate和delete区别

    1)Truncate和delete都可以将数据实体删掉,truncate操作不记录到rollback日志,同时数据不能恢复

    2)Truncate是数据定义语言(DDL),delete是数据操作语言(DML)

    3)Truncate不能对视图进行操作,delete操作不会腾出表空间的内存

    4、说说Oracle中经常使用到的函数

    length长度、lower小写、upper大写、to_date转化日期、to_char转化字符、to_number转化数字Ltrim去左边空格、rtrim去右边空格、substr截取字符串、add_month增加或减掉月份、

    5、主键有几种?

    复合型、整数型、字符型

    6、怎样创建一个索引,索引使用的原则,有什么优缺点

    create index 索引名 on 表名(列名)

    原则:

    建议索引列建立not null约束

    经常与其他表进行连接的表,在连接列上建立索引

    优缺点:

    创建索引能大大加快检索速度,加强表与表的连接,但是创建索引很占用空间

    7、使用oracle伪列删除表中的重复数据中的一条

    delete fromtable t where t.rowid!=(select max(t1.rowid) from table t1 wheret.name=t1.name)

    8、如何只显示重复数据

    select * fromtable group by id having count(*)>1

    9、什么是数据库的映射

    就是将数据库中表与字段对应到模型层类名与属性的过程

    10、如何设计数据库

    首先分析项目,看看项目中有多少实体(矩形),为每个实体添加属性(椭圆),明确实体之间的关系(菱形),绘制E-R图,将E-R图转换成表格

    11、如何实现数据库的优化

    1)调整数据库结构的设计:需要考虑是否使用分区功能、是否建立索引等

    2)调整数据库的SQL语句

    3)调整服务器的内存分配

    4)调整硬盘I/O

    5)调整操作系统参数

    12、关系型数据库的关系操作有哪些?

    选择(查询某些行)、投影(查询某些列)、链接(把多张表连接获取数据)、增加、删除、修改      

    13、你知道哪些菲关系型数据库,与关系型数据库的区别是?

    14、SQL语句与SQL*PLUS命令的区别

    1)SQL是关系型数据库的标准操作语言,而SQL*PLUS是一个客户端工具,除了执行标准的SQL外,还可以执行工具本身的一些命令。

    2)SQL语句不可以缩写,而SQL*PLUS命令可以缩写

    15、oracle数据库中如何显示表的结构

    新建命令窗口,输入desc 表名

    16、oracle中数据库对象的命名规则

    1)必须由字母开始,长度在1-30个字符之间

    2)包含字母、数字、_、$、#

    3)同一个Oracle服务器所拥有的对象名不能重复

    4)名字不能为Oracle 的保留字

    5)大小写不敏感

    17、数据库的三大范式是什么?

    1)第一范式:原子件,要求每一列的值不能再拆分了

    2)第二范式:一张表只描述一个实体(若列中有冗余数据,则不满足)

    3)第三范式:所有列与主键直接相关

    18、事务的特性(ACID)是指什么?

    1)原子性(Atomic):事务中的各项操作,要么全做要么全不做,任何一项操作的失败都会导致整个事务的失败

    2)一致性(Consistent):事务结束后系统状态是一样的

    3)隔离性(Isolated):并发执行的事务彼此无法看到对方的中间状态

    4)持久性(Durable):事务完成后,即使发生灾难性的故障,通过日志和同步备份可以在故障发生后重建数据

    19、MySQL数据库与Oracle数据库有什么区别

    1)应用方面:MySQL是中小型应用的数据库,一般用于个人项目或中小型网站及论坛。Oracle属于大型数据库,一般在具有相当规模的企业应用。

    2)自动增长的数据类型方面:MySQL有自动增长的数据类型。Oracle没有自动增长的数据类型,需要建立一个自增序列

    3)group by用法:MySQL中group by在select语句中可以随意使用,但是在Oracle中如果查询语句中有组函数,那其他列名必须是组函数处理过的或者是group by子句中的列,否则报错

    4)引号方面:MySQL中用双引号包起字符串,Oracle中只可以用单引号包起字符串

  • 相关阅读:
    PXC配置过程
    值得学习的C语言开源项目
    使用命令批量添加svn文件
    配置快捷键,自动最大化打开终端
    创建SpringBoot Starter教程
    SpringBoot说明文档使用技巧
    Windows MySQL8+安装教程
    字符串、常量池、StringBuilder之间的微妙关系
    Linux系统查看CPU、内存、硬盘命令
    cpu 使用率高问题定位及排查
  • 原文地址:https://www.cnblogs.com/shan1393/p/9117651.html
Copyright © 2020-2023  润新知