IT oracle 相关面试问题
1:创建view
Creat view vname as select *from tbname
2:将A表中的数据复制到B
Insert into B select * from A
3:创建索引
Creat index indexname on tablename (列名1)
联合索引:Creat index indexname on tablename (列名1,列名2)
4:创建存储过程
create or replace procedure 存储过程名(param1 in type,param2 out type)
as
变量1 类型(值范围); --vs_msg VARCHAR2(4000);
变量2 类型(值范围);
Begin
Select count(*) into 变量1 from 表A where列名=param1;
If (判断条件) then
Select 列名 into 变量2 from 表A where列名=param1;
Dbms_output。Put_line(‘打印信息’);
Elsif (判断条件) then
Dbms_output。Put_line(‘打印信息’);
Else
Raise 异常名(NO_DATA_FOUND);
End if;
Exception
When others then
Rollback;
End;
5:oracle常用函数有哪些?
CONCAT:连接字符串 select concat('010-','88888888')||'转23' 高乾竞电话 from dual
结果是:010-88888888转23
LENGTH(columnName):返回字符串长度 select name,length(name) from gao.nchar_tst;
LOWER:小写 select lower('AaBbCcDd')AaBbCcDd from dual;
UPPER:大写 select upper('AaBbCcDd')AaBbCcDd from dual;
TO_CHAR(date,'format'):格式化日期 select to_char(sysdate,'yyyy/mm/dd hh24:mi:ss') from dual
TO_NUMBER: 将给出的字符转换为数字 select to_number('1999') year from dual
LEAST:返回一组表达式中的最小值 select least('啊','安','天') from dual;
AVG(DISTINCT|ALL):all表示对所有的值求平均值,distinct只对不同的值求平均值
select avg(distinct sal) from gao.table3;(这才是常用函数啊)
MAX(DISTINCT|ALL):求最大值,ALL表示对所有的值求最大值,DISTINCT表示对不同的值求最大值,相同的只取一次 select max(distinct sal) from scott.emp;
MIN(DISTINCT|ALL):求最小值,ALL表示对所有的值求最小值,DISTINCT表示对不同的值求最小值,相同的只取一次 select min(all sal) from gao.table3;
GROUP BY:主要用来对一组数进行统计 select deptno,count(*),sum(sal) from scott.emp group by deptno;
HAVING:对分组加额外的条件 select deptno,count(*),sum(sal) from scott.emp group by deptno having count(*)>=5;
ORDER BY:用于对查询到的结果进行排序输出 不解释
COUNT:统计个数
6:oracle分页查询的语句是什么?
SELECT * FROM
(
SELECT A.*, ROWNUM RN
FROM (SELECT * FROM TABLE_NAME) A
WHERE ROWNUM <= 40
)
WHERE RN >= 21
其中最内层的查询SELECT * FROM TABLE_NAME表示不进行翻页的原始查询语句。ROWNUM <= 40和RN >= 21控制分页查询的每页的范围。
7:新装的oracle系统有两个默认用户分别是什么?用户密码是什么?都是什么权限?
sys 密码是 change_on_install 权限:sysdba
system 密码是 manager 权限:sysdba
Scott 密码是tiger 权限:normal 普通用户
8:Select语句中用来链接字符串的符号是什么?
||
9:将A 表的由b表空间转换到c表空间
alter table A move tablespace c
10:给用户xx分配权限
grant connect,dba,resource to xx;
CONNECT Role(连接角色)
临时用户,特别是那些不需要建表的用户,通常只赋予他们CONNECTrole。CONNECT是使用Oracle的简单权限,这种权限只有在对其他用户的表有访问权时,包括select、insert、update和delete等,才会变得有意义。拥有 CONNECT role的用户还能够创建表、视图、序列(sequence)、簇(cluster)、同义词(synonym )、会话(session)和与其他数据库的链(link)。
RESOURCE Role(资源角色)
更可靠和正式的数据库用户可以授予RESOURCE role。RESOURCE提供给用户另外的权限以创建他们自己的表、序列、过程(procedure)、触发器(trigger)、索引(index)和簇(cluster)。
DBA Role(数据库管理员角色)
DBA role拥有所有的系统权限----包括无限制的空间限额和给其他用户授予各种权限的能力。SYSTEM由DBA用户拥有。下面介绍一些DBA经常使用的典型权限。
撤销权限
revoke connect,dba,resource from xx;
删除用户
Drop user xx