首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

数据库常见面试题及答案(数据库面试常见问题)

in/out/in out 三种模式的参数 可作为一个独立的PL/SQL语句来执行 不能独立执行,必须作为表达式的一部分调用 可以通过out/in out 返回零个或多个值 通过return语句返回一个值...内连接、自连接、外连接(左、右、全)、交叉连接 内连接:只有两个元素表相匹配的才能在结果集中显示。 外连接: 左外连接:左边为驱动表,驱动表的数据全部显示,匹配表的不匹配的不会显示。...右外连接:右边为驱动表,驱动表的数据全部显示,匹配表的不匹配的不会显示。 全外连接:连接的表中不匹配的数据全部会显示出来。 交叉连接: 笛卡尔效应,显示的结果是链接表数的乘积。...1.建索引 2.减少表之间的关联 3.优化sql,尽量让sql很快定位数据,不要让sql做全表查询,应该走索引,把数据 量大的表排在前面 4.简化查询字段,没用的字段不要,已经对返回结果的控制,尽量返回少量数据...Drop语句:可以删除数据表、索引、触发程序、条件约束以及数据表的权限等。 Alter语句:修改数据表定义及属性。 Truncate语句:删除表中的所有记录,包括所有空间分配的记录被删除。

4.1K10

珍藏 | Java 岗位 【数据库】 面试题及答案详解

- 内连接、自连接、外连接(左、右、全)、交叉连接 - 内连接:只有两个元素表相匹配的才能在结果集中显示。...- 外连接: - 左外连接:左边为驱动表,驱动表的数据全部显示,匹配表的不匹配的不会显示。...- 右外连接:右边为驱动表,驱动表的数据全部显示,匹配表的不匹配的不会显示。 - 全外连接:连接的表中不匹配的数据全部会显示出来。...· 建索引 · 减少表之间的关联 · 优化sql,不要让sql做全表查询 · 简化查询字段,没用的字段不要,已经对返回结果的控制,尽量返回少量数据 · 尽量用PreparedStatement来查询...- Truncate语句:删除表中的所有记录,包括所有空间分配的记录被删除。

3.4K20
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    oracle与mysql的区别面试题_oracle和db2的主要区别

    ;Oracle没有自动增长类型,主键一般使用的序列,插入记录时将序列号的下一个值付给该字段即可;只是ORM框架是只要是native主键生成策略即可。...③翻页的SQL语句的处理 MYSQL处理翻页的SQL语句比较简单,用LIMIT 开始位置, 记录个数;ORACLE处理翻页的SQL语句就比较繁琐了。...插入修改记录前一定要做进行非空和长度判断,不能为空的字段值和超出长度字段值都应该提出警告,返回上次操作。...⑤空字符的处理 MYSQL的非空字段也有空的内容,ORACLE里定义了非空字段就不容许有空的内容。按MYSQL的NOT NULL来定义ORACLE表结构, 导数据的时候会产生错误。...本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

    1.5K20

    mysql好还是oracle好_oracle优缺点

    3、SQL语法的区别 Oracle的SQL语法与MySQL有很大不同。Oracle为称为PL / SQL的编程语言提供了更大的灵活性。...MySQL不支持在系统内执行其他语言,也不支持XML。 7、MySQL和Oracle的字符数据类型比较: 两个数据库中支持的字符类型存在一些差异。...; Oracle:没有自动增长,主键一般使用序列,插入记录时将序列号的下一值付给该字段即可,只是ORM框架只是需要native主键生成策略即可。...插入修改记录前一定要做进行非空和长度判断,不能为空的字段值和超出长度值都应该提出警告,返回上次操作。...0会得到更精确的查找结果 4、空字符串的比较: MySQL的非空字段也有空的内容,Oracle里定义了非空字段就不容许有空的内容。

    2K10

    Oracle总结【SQL细节、多表查询、分组查询、分页】

    null值 因此,Oracle提供了NVL(表达式1,表达式2)函数供我们使用,如果表达式1的值为null值,那么就取表达式2的值…当然了,如果表达式1不是null,取的就是表达式1的值 还有值得注意的是...,需要使用as关键字 ,后面跟着别名就行了….Oracle可以省略as关键字… 并且,一般地,我们使用别名都是用双引号""把别名括起来,Oracle也支持我们直接写别名,但是呢,如果我们不写双引号,那么我们的别名是不能有空格的...单行函数:输入一个参数,返回一个结果 多行函数:扫描多个参数,返回一个结果….一般地,多行函数和分组函数的概念是差不多的… Oracle提供了关于字符串函数、日期函数供我们对数据进行对应的操作,这里就不一一赘述了...内连接 等值连接【使用=号把条件筛选出来】 非等值连接【使用between and等手段把条件筛选】 外连接 自连接 ?...那么Oracle分页的思路是这样子的: 先在子查询中获取前n条记录 由于返回的是多行多列,因此我们可以看做成一张表 那么将查询出来的数据放在from字句的后边 外套的查询可以通过where字句来对子查询出来的数据进行过滤

    2.5K100

    SQL简介

    作用,对数据进行持久化的操作 2,数据库的存储结构 表格:用于存储的数据结构 3,数据库分类 SQL:适用于所有数据库的增删改查,权限分配的结构化查询(查得多)语言 标准sql oracle:pl-sql...:内连接,外链接(左右全),交叉连接,自连接 内连接 select*from t1 inner join t2 on 连接条件 where .... slect from employee e1 inner...end; 1、SQL>exec proc_emp('参数1','参数2');//无返回值过程调用 2、SQL>var vsal number SQL> exec proc_emp ('参数1',:vsal...用于检查子查询是否至少会返回一行数据,该子查询实际上并不返回任何数据,而是返回值true或false。...DBMS将直接跳到第一个DEPT等于4的记录,而后者将首先定位到DEPTNO=3的记录并且向前扫描到第一个DEPT大于3的记录。

    2.7K20

    Oracle查看分析执行计划、建立索引以及SQL优化

    :Oracle估计的当前操作的返回结果集行数 字节(Bytes):执行该步骤后返回的字节数 耗费(COST)、CPU耗费:Oracle估计的该步骤的执行成本,用于说明SQL执行的代价,理论上越小越好(该值可能与实际有出入...中就是用链地址法来解决哈希冲突; 哈希表是一种面向查找的数据结构,在输入给定值后查找给定值对应的记录在表中的位置以获取特定记录这个过程的速度很快。...(1) INNER JOIN(内连接): 只返回两表中相匹配的记录。...: b) RIGHT JOIN(右连接): 返回的结果不仅包含符合连接条件的记录,还包含右边表中的全部记录。...: c) FULL JOIN(全连接): 返回左右两表的全部记录。

    4.1K20

    NULL判断对SQL的影响

    看到一条SQL,很具迷惑性,原始语句包含了业务属性,因此使用模拟的操作来复现这个问题。...原始的SQL,如下所示,可能有经验的朋友一下就看出来了问题,Oracle中判断字段是否为空应该使用is null或者is not null,使用任何其他的比较运算符,返回的都是false, SQL> ...,用的是排序合并连接,如果按照预估进行计算,从E-Rows能看出这两张表合并排序的预计行数是5330M行,应该不可能很快跑出来的,但实际上SQL很快就返回了,结果集是空,这点从A-Rows是0就可以得到证明...=to_number(null),这里用到的是谓词的传递性(这是为什么filter中有两个NULL IS NOT NULL),Oracle没将=null看作是对空值的判断,而将他作为一个普通的字符串处理的...”》是不同的,这里用的a.object_id = null,相当于是个错误的条件,用如下的示例,可以说明,我们使用is null检索object_id是空的记录会返回1条,但是用=null检索返回的就是

    1K20

    SQL Server,MySQL,Oracle三者的区别

    Oracle获得最高认证级别的ISO标准认证.Oracle性能最高,保持开放平台下的TPC-D和TPC-C的世界记录Oracle多层次网络计 算,支持多种工业标准,可以用ODBC、JDBC、OCI等网络客户连接...当然其他的各种开发平台,都提供了与它相关的数据库连接方式。因此,开发软件用SQL Server做数据库是一个正确的选择。...Oracle没有自动增长的数据类型,需要建立一个自动增长的序列号,插入记录时要把序列号的下一个值赋于此字段。...翻页的SQL语句的处理 MySQL处理翻页的SQL语句比较简单,用LIMIT开始位置,记录个数;PHP里还可以用SEEK定位到结果集的位置。Oracle处理翻页的SQL语句就比较繁琐了。...插入修改记录前一定要做进行非空和长度判断,不能为空的字段值和超出长度字段值都应该提出警告,返回上次操作。

    11910

    Oracle知识点总结(一)

    Oracle安全级别要高,MYSQL开源免费 基本查询: SQL : 结构化查询语言 请说一下SQL的分类以及每类常见的操作符都有哪些 四类: DDL : 数据定义语言 create alter drop..., 不可以做四则运算 字符串拼接: java : + 号拼接 Oracle 特有的连接符: || 拼接 在Oracle 中 ,双引号主要是别名的时候使用, 单引号是使用的值, 是字符 concat(str1...avg(comm) from emp; --报错误 ,comm有空值 统计员工的平均奖金 select sum(comm)/count(1) from emp; select ceil(sum(...; Oracle中的外连接(+) 把所有的员工信息打印出来,如果没有对应的部门通过(+)方式添加空值 select * from emp e1,dept d1 where e1.deptno = d1....万一集合中有空值就会报错,因为等判断是不能对null操作的。

    2.3K10

    MySQL 和 Oracle 的区别?

    4.Oracle 和 Mysql 操作上的区别①主键Mysql 一般使用自动增长类型,在创建表时只要指定表的主键为 autoincrement,插 入记录时,不需要再指定该记录的主键值,Mysql 将自动增长...;Oracle 没有自动 增长类型,主键一般使用的序列,插入记录时将序列号的下一个值付给该字段即 可;只是 ORM 框架是只要是 native 主键生成策略即可。...③翻页的 SQL 语句的处理MYSQL 处理翻页的 SQL 语句比较简单,用 LIMIT 开始位置, 记录个数;ORACLE 处 理翻页的 SQL 语句就比较繁琐了。...插入修改记录前一定 要做进行非空和长度判断,不能为空的字段值和超出长度字段值都应该提出警告, 返 回 上次 操作。...⑤空字符的处理MYSQL 的非空字段也有空的内容,ORACLE 里定义了非空字段就不容许有空的内 容。按 MYSQL的 NOT NULL 来定义 ORACLE 表结构, 导数据的时候会产生错误。

    5010

    Oracle数据库(三)表操作,连接查询,分页

    其主要的用途是生成表的主键值,可以在插入语句中引用,也可以 通过查询检查当前值,或使序列增至下一个值。  ...内连接 select * from p_emp e ,p_dept d where e.deptno=d.deptno 内连接的局限性:如果有空值,查询结果可能会有缺失。...--自连接 select e1.ename,e2.ename from p_emp e1,p_emp e2 where e1.empno=e2.mgr 层次查询 oracle中的select语句可以用... start with connect by ; :过滤条件,用于对返回的所有记录进行过滤...系统顺序分配为从查询返回的行的编号,返回的第一行分配的是1,第二行是2,依此类推,这个伪字段可以用于限制查询返回的总行数, 而且rownum不能以任何表的名称作为前缀。

    1.9K80

    Java面试之数据库面试题

    out 三种模式的参数 可作为一个独立的PL/SQL语句来执行 不能独立执行,必须作为表达式的一部分调用 可以通过out/in out 返回零个或多个值 通过return语句返回一个值,且改值要与声明部分一致...内连接、自连接、外连接(左、右、全)、交叉连接 内连接:只有两个元素表相匹配的才能在结果集中显示。 外连接: 左外连接:左边为驱动表,驱动表的数据全部显示,匹配表的不匹配的不会显示。...右外连接:右边为驱动表,驱动表的数据全部显示,匹配表的不匹配的不会显示。 全外连接:连接的表中不匹配的数据全部会显示出来。 交叉连接: 笛卡尔效应,显示的结果是链接表数的乘积。...1.建索引 2.减少表之间的关联 3.优化sql,尽量让sql很快定位数据,不要让sql做全表查询,应该走索引,把数据 量大的表排在前面 4.简化查询字段,没用的字段不要,已经对返回结果的控制,尽量返回少量数据...Oracle自己开发了一个数据类型varchar2,这个类型不是一个标准的varchar,他将在数据库中varchar列可以存储空字符串的特性改为存储null值,如果你想有向后兼容的能力,oracle建议使用

    1.5K20

    数据库经典面试题,都给你收集好了!!!

    /out/in out 三种模式的参数 4、可作为一个独立的PL/SQL语句来执行 5、可以通过out/in out 返回零个或多个值 6、SQL语句(DML 或SELECT)中不可调用存储过程...out 三种模式的参数 5、不能独立执行,必须作为表达式的一部分调用 6、通过return语句返回一个值,且改值要与声明部分一致,也可以是通过out类型的参数带出的变量 7、SQL语句(DML...内连接、自连接、外连接(左、右、全)、交叉连接 内连接:只有两个元素表相匹配的才能在结果集中显示。 外连接: 左外连接:左边为驱动表,驱动表的数据全部显示,匹配表的不匹配的不会显示。...右外连接:右边为驱动表,驱动表的数据全部显示,匹配表的不匹配的不会显示。 全外连接:连接的表中不匹配的数据全部会显示出来。 交叉连接: 笛卡尔效应,显示的结果是链接表数的乘积。...Oracle自己开发了一个数据类型varchar2,这个类型不是一个标准的varchar,他将在数据库中varchar列可以存储空字符串的特性改为存储null值,如果你想有向后兼容的能力,oracle建议使用

    1.6K30

    Java面试之数据库面试题

    out 三种模式的参数 可作为一个独立的PL/SQL语句来执行 不能独立执行,必须作为表达式的一部分调用 可以通过out/in out 返回零个或多个值 通过return语句返回一个值,且改值要与声明部分一致...内连接、自连接、外连接(左、右、全)、交叉连接 内连接:只有两个元素表相匹配的才能在结果集中显示。 外连接: 左外连接:左边为驱动表,驱动表的数据全部显示,匹配表的不匹配的不会显示。...右外连接:右边为驱动表,驱动表的数据全部显示,匹配表的不匹配的不会显示。 全外连接:连接的表中不匹配的数据全部会显示出来。 交叉连接: 笛卡尔效应,显示的结果是链接表数的乘积。...1.建索引 2.减少表之间的关联 3.优化sql,尽量让sql很快定位数据,不要让sql做全表查询,应该走索引,把数据 量大的表排在前面 4.简化查询字段,没用的字段不要,已经对返回结果的控制,尽量返回少量数据...Oracle自己开发了一个数据类型varchar2,这个类型不是一个标准的varchar,他将在数据库中varchar列可以存储空字符串的特性改为存储null值,如果你想有向后兼容的能力,oracle建议使用

    1.5K41

    数据库常见的面试题大全

    /in out 三种模式的参数 4、可作为一个独立的PL/SQL语句来执行 5、可以通过out/in out 返回零个或多个值 6、SQL语句(DML 或SELECT)中不可调用存储过程 函数 1、用于特定的数据...,必须作为表达式的一部分调用 6、通过return语句返回一个值,且改值要与声明部分一致,也可以是通过out类型的参数带出的变量 7、SQL语句(DML 或SELECT)中可以调用函数 5、索引的作用?...内连接、自连接、外连接(左、右、全)、交叉连接 内连接:只有两个元素表相匹配的才能在结果集中显示。 外连接: 左外连接:左边为驱动表,驱动表的数据全部显示,匹配表的不匹配的不会显示。...右外连接:右边为驱动表,驱动表的数据全部显示,匹配表的不匹配的不会显示。 全外连接:连接的表中不匹配的数据全部会显示出来。 交叉连接: 笛卡尔效应,显示的结果是链接表数的乘积。...Oracle自己开发了一个数据类型varchar2,这个类型不是一个标准的varchar,他将在数据库中varchar列可以存储空字符串的特性改为存储null值,如果你想有向后兼容的能力,oracle建议使用

    1.4K40

    SQL语句优化技术分析

    但是用IN的SQL性能总是比较低的,从ORACLE执行的步骤来分析用IN的SQL与不用IN的SQL有以下区别:      ORACLE试图将其转换成多个表的连接,如果转换不成功则先执行IN里面的子查询,...再查询外层的表记录,如果转换成功则直接采用多个表的连接方式查询。...判断字段是否为空一般是不会应用索引的,因为B树索引是不索引空值的。      ...UNION操作符  UNION在进行表链接后会筛选掉重复的记录,所以在表链接后会对所产生的结果集进行排序运算,删除重复的记录再返回结果。...,所以执行的时候都是全表扫描,第一条SQL的dy_dj = '1KV以下'条件在记录集内比率为99%,而xh_bz=1的比率只为0.5%,在进行第一条SQL的时候99%条记录都进行dy_dj及xh_bz

    84120

    kettle 性能优化_kettle过滤记录

    更具应用的线程所需内存大小进行调整。在相同物理内存下,减小这个值能生成更多的线程。但是操作系统对一个进程内的线程数还是有限制的,不能无限生成,经验值在3000~5000左右。...三、数据抽取的SQL优化 1、Where子句中的连接顺序: 比如ORACLE采用自下而上的顺序解析WHERE子句,根据这个原理,表之间的连接必须写在其他WHERE条件之前,那些可以过滤掉最大数量记录的条件必须写在...4、建议用EXISTS替代IN: 写sql时,最好用exists来代替in,因为in不走索引,所以用exists的sql性能较好。...,通常情况下采用exists要比in效率高,因为IN不走索引,但要看实际情况具体使用:IN适合于外表大而内表小的情况;EXISTS适合于外表小而内表大的情况。...如果这个这些值一开始就是有序的,我们是不是直接往下扫描统计就好了,就不用临时表来记录并统计结果啦?

    3.5K20

    Oracle函数

    ,用法同round(x[,y]),只是不四舍五入 ---- 返回x按精度y截取后的值 trun(x[,y]) 【功能】返回x按精度y截取后的值 【参数】x,y,数字型表达式, 如果y不为整数则截取...c1长度小于n,c2和c1连接后大于n,则返回连接后的右边n个字符 SQL> select lpad('杨',10,'*') from dual; LPAD('杨',10,'*') ------...【返回】字符型 【说明】如果c1长度大于n,则返回c1左边n个字符 如果如果c1长度小于n,c1和c2连接后大于n,则返回连接后的左边n个字符 如果如果c1长度小于n,c1和c2连接后小于...中,每一条记录都有一个rowid,rowid在整个数据库中是唯一的,rowid确定了每条记录是在Oracle中的哪一个数据文件、块、行上。...,rowid确定了每条记录是在Oracle中的哪一个数据文件、块、行上。

    3.9K50

    Oracle中的SQL优化

    但是用IN的SQL性能总是比较低的,从Oracle执行的步骤来分析用IN的SQL与不用IN的SQL有以下区别:     ORACLE试图将其转换成多个表的连接,如果转换不成功则先执行IN里面的子查询,再查询外层的表记录...判断字段是否为空一般是不会应用索引的,因为B树索引是不索引空值的。    ...7.UNION操作符     UNION在进行表链接后会筛选掉重复的记录,所以在表链接后会对所产生的结果集进行排序运算,删除重复的记录再返回结果。    ...及xh_bz(销户标志)两个字段都没进行索引,所以执行的时候都是全表扫描,     第一条SQL的dy_dj = '1KV以下'条件在记录集内比率为99%,而xh_bz=1的比率只为0.5%,在进行第一条...根据实践应用,一般不建议开发人员应用ORACLE提示,因为各个数据库及服务器性能情况不一样,很可能一个地方性能提升了,但另一个地方却下降了,     ORACLE在SQL执行分析方面已经比较成熟,

    1.9K20
    领券