Oracle DBA高效入职指南学习篇三

本文介绍Oracle数据库的SQL Plus工具的基本使用方法,包括数据库的启动、状态检查、用户状态查询及解锁等操作,并详细讲解了SQL Plus中进行表的增删改查的具体步骤。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

如何对表进行增删改查操作

什么是Oracle的SQLPLUS
          SQLLPUS是与Oracle进行交互的客户端工具,是Oracle数据库的一个命令窗口,
                                 通过SQLPLUS可以对数据库进行增删改查,启动,关闭数据库等所有数据库方面的操作。

启动Oracle数据库
      在服务中查看  oracle服务  和  Oracle的监听器服务
      确保OracleService数据库系统标示符 (如:OracleServiceORCL)服务  和  ....TNSListener监听器服务 已启动

     oracle服务  :(如:OracleServiceORCL)服务   是启动数据库的进程实例,启动实例则是启动数据库
     实例(Instance) : 这是Oracle的一种访问数据库的机制,由 内存结构 和 很多后台进程 组成
    Oracle的监听器服务  :Oracle将监听程序,专门用来负责数据库用户远程访问数据库

查看数据库状态
    select    status   from v$instance;
动态表:字典表的一种,内部表,不能手工更改数据,常使用“v$”开头(要了解还有哪些常用的字典表和动态表)
                比如“v$instance” 该表记录Oracle数据库实例的各种信息

查看数据库的名称
    show parameter db_nama
 常用show parameter 查看Oracle数据库中的各种参数值(要了解有哪些Oracle数据库常用的参数值)

SQL 是什么
     Structured Query Language  结构化查询语言

查询数据库用户的状态
             select username ,account_status 
             from dba_users 
             where username='SCOTT';           --scott为某用户
   如果用户状态为LOCKED,处于锁住状态的话,需要解锁
                   alter  user 数据库用户  account  unlocked;
   如果用户状态为EXPIRED,处于过期状态的话,需要重新登录立即修改密码就可以了

注意:where条件后面的每个字段所表示的值是区分大小写的

用desc的命令来查看表的列

用户连接单实例数据库语法:
             conn 用户名/密码
   如:conn  scott/tiger     --普通用户
   如:conn / as sysdba   --超级用户
    多实例的话要指明是哪个数据库即在后面 @数据库系统标示符 如:conn  scott/tiger@ORCL

 查看当前用户拥有哪些表    select  table_name  from  user_tables;


在表中增加一条记录:
      insert into  表名(列参数)
               values(各参数的赋值);
如:insert  into dept (deptno , dname,loc)
                  values(50,'Development','BeiJing');


更新表中的数据:
        update 表名 set  列名=值 where 条件;

删除表中一条数据
      delete from 表名 where 条件;

注意:
                在 Oracle的SQLPLUS中,英文字符默认是左对齐,而数字则默认是右对齐

设置当前会话的时间格式
          alter   session set  nls_date_format = 'YYYY-MM-DD';

查询当前系统时间:select sysdate from dual;
        sysdate 是数据库当前的日期
        dual 是 Oracle数据库的一个虚表,不是真实存在的表,在查询用到计算,常量表达式时可以使用

 

round(X,Y)对X保留Y个小数点后尾数, 缺省值为0;

 

order by 用来排序,默认是asc (升序),  而desc为降序;排序参数可为:表达式,排列号,别名,列名,或不在查询结果中的列名

将查询结果的列名转换为自己熟悉的别名
         select something as "别名" from table;


注意:别名用双引号,而字符串用单引号

 

查询结果只显示唯一值,过滤掉重复的数据

     select distinct  somerow from table;

      这个去掉重复数据的关键字在日常查询数据时经常使用到,在笔试或面试中也是出现频率很高的关键字

 

常用运算符有:>,>=,<,<=,<>,!=,=

       注意:<>,,!=都是表示不等于,目前还不知道它们之间有木有区别和差异,这是要思考的问题

 

null :在Oracle数据库中是一个特殊的值,它即不表示零,也不表示为空,是一个不能确定的未知数

注意:要和null做比较的话,必须使用is null 或 is not null;

 

nvl(X,Y):当X is null 时 函数返回Y的值;当X is not null 的话 函数返回X的值;

注意:与nvl(X,Y)用法和功能一边的函数还有:nvl2(X,Y,Z);和NULLIF(X,Y)

 

字符串的模糊查询

    "_"表示任意一个字符;"%"表示任意长度的字符串;作比较的关键字为:like (注意不是is like)

    如:  select ename , job,sal from  emp

              where ename like ‘M%’;

 

判断一个数据是否在一个表或临时表中出现

        用到的关键字是:in

       如: select ename , job from emp

                  where job in ('SALESMAN','ANALYST','MANAGER');

 

分组函数:group by

分组的筛选:having

 如格式为:

                   select 。。。。。。。

                   from。。。。。

                   where。。。。。。。。

                   group by 。。。。

                    having 。。。。。。。。

它们执行的顺序为:首先是从from 中select 出来相关的列组成一个临时表,然后用where条件去筛选每个列,

                                     然后用group by 对筛选过的临时表进行分组,接下来是用having 中的分组属性来去除不合条件的分组;

 

一些分组函数:count();sum(),max(),min(),avg()

    注意区别count() 和sum() 的区别    前者是计算个数,后者是计算总和的,笔试中会出现两者区别的试题;

 

如何查询max() 和 min() 值对应的对象是谁呢?目前想到的方法是使用内联视图来实现的;

      如:select empno , ename, max_sal

              from emp , (select max(sal) as max_sal  from emp) emp_max

             where emp.sal = emp_max.max_sal;

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值