• Oracle百问百答(二)


    Oracle百问百答(二)

    11 nvl函数有什么用?

    NVL( string1, replace_with)

    功能:如果string1为NULL,则NVL函数返回replace_with的值,否则返回string1的值。

    注意事项:string1和replace_with必须为同一数据类型,除非显式的使用TO_CHAR函数。

    例:NVL(TO_CHAR(numeric_column), 'some string') 其中numeric_column代指某个数字类型的值。

    12. 数据库名和数据库实例名有什么区别?

     数据库名是用于区分数据库的一个内部标识,是以二进制方式存储在数据库控制文件中的参数。数据库创建之后不能再修改这个参数。数据库创建后,它被写入数据库参数文件pfileSpfile中。格式如下:

    db_name="orcl"

    db_domain=dbcenter.toys.com

    instance_name=orcl

    service_names=orcl.dbcenter.toys.com

     数据库实例是操作数据库的实体,用户通过实例与数据库交互。实例名用来标识这个数据库实例。数据库创建后,实例名可以被修改。也在数据库参数文件pfileSpfile中。格式如下:

    instance_name=orcl

    service_names=orcl.dbcenter.toys.com

     数据库名与实例名可以相同。一个数据库对应一个实例的情况下设置成相同的便于标识数据库。

    13.简述profile的作用?

    profile是口令限制,资源限制的命令集合,当建立数据库的,oracle会自动建立名称为defaultprofile。当建立用户没有指定profile选项,那么oracle就会将default分配给用户。

    账户锁定:
    概述:指定该账户(用户)登陆时最多可以输入密码的次数,也可以指定用户锁定的时间()一般用dba的身份去执行该命令。
    例子:指定scott这个用户最多只能尝试3次登陆,锁定时间为2天,让我们看看怎么实现。
    创建profile文件
    SQL> create profile lock_account limit failed_login_attempts 3 password_lock_time 2;

    SQL> alter user scott profile lock_account;

    给账户解锁:
    SQL> alter user tea lock_account unlock;

    14.简述存储过程的用法?

    创建:

    create or replace procedure a_proc(a_name IN varchar2,a_num OUT number)

    is

    num_1 number;

    num_2 number;

    begin

    select stu_id,age into num_1,num_2 from stuinfo 

    where stu_name=a_name;

    a_num:=num_1*num_2;

    end;

    调用:

    SQL> set serveroutput on

    SQL> declare tname varchar(20);

     2  tnum number;

     3  begin

     4  tname:='gggzz';

     5  a_proc(tname,tnum);

     6  dbms_output.put_line(tnum);

     7  end;

     8  /

    15.怎样以大写方式显示所有员工姓名的前3位字符?

     

    16.怎样以首字母大写后面小写的方式显示员工姓名?

    17.怎样显示满10年服务年限的员工的姓名和工号?

    18.怎样显示入职日期在当月最后十天入职的员工姓名和工号?

    19.cmd命令窗口有哪些常用快捷键?

    返回上一个命令,返回下一个命令,逐个字符返回上个命令
    F8 逐个返回上一个命令,但光标处于第一个字符
    F3 仅能返回上一个命令
    F7 弹出命令历史记录窗口,结合↑↓按键选择命令,回车执行选中的命令。太长的命令可以使用键在cmd窗口查看。home切换到第一个命令,end最后一个,PageDownPageUp翻页查看。
    F9 输入命令号码,该号码由F7中命令记录来定义。如果要多次执行某个命令,而且是长命令,可以使用该技巧。或许更有效率。
    Alt+PrintScreen cmd窗口进行截图。
    insert 使光标转换为插入状态,键入字符时可以替换光标当前字符。

    20.表中重复的记录是怎样查询的?

    a、查找表中多余的重复记录,重复记录是根据单个字段(peopleId)来判断
    select * from people where peopleId in (select  peopleId  from people  group by  peopleId  having count(peopleId) > 1)

    b、删除表中多余的重复记录,重复记录是根据单个字段(peopleId)来判断,只留有rowid最小的记录
    delete from people where peopleId  in (select  peopleId  from people  group  by  peopleId   having  count(peopleId) > 1)
    and rowid not in (select min(rowid) from  people  group by peopleId  having count(peopleId )>1)
    c
    、查找表中多余的重复记录(多个字段) 

    select * from vitae awhere (a.peopleId,a.seq) in  (select peopleId,seq from vitae 

    group by  peopleId,seq  having count(*) > 1)
    d
    、删除表中多余的重复记录(多个字段),只留有rowid最小的记录

    delete from vitae awhere (a.peopleId,a.seq) in  (select peopleId,seq from vitae group by peopleId,seq having count(*) > 1)
    and rowid not in (select min(rowid) from vitae group by peopleId,seq having count(*)>1)
    e
    、查找表中多余的重复记录(多个字段),不包含rowid最小的记录
    select * from vitae awhere (a.peopleId,a.seq) in  (select peopleId,seq from vitae group by peopleId,seq having count(*) > 1)
    and rowid not in (select min(rowid) from vitae group by peopleId,seq having count(*)>1)

  • 相关阅读:
    zbb20170802 Windows平台使用Gitblit搭建Git服务器图文教程
    zbb20170728 oracle 查看被锁对象
    zbb20170726 Spring Controller 获取请求参数的几种方法
    zbb20170726 spring访问静态文件访问
    zbb20170720 extjs 类似桌面的页面布局
    zbb20170718 Eclipse 导入外部项目无法识别为web项目并且无法在部署到tomcat下
    zbb20170717Spring4 MVC Hibernate4集成 Annotation maven 各种版本
    zbb20170630 web项目发布至tomcat的ROOT下方法(开发环境和部署环境)
    3.语句的增删改查
    1、java面试
  • 原文地址:https://www.cnblogs.com/james1207/p/3313190.html
Copyright © 2020-2023  润新知