龍子 发表于 2016-9-4 10:02:11

OCP SQL基本命令

  
  
  1  、环境
  vncviewer 192.168.100.253
  
  
  2、用户管理相关的Shell脚本
  
  useradd -g dba oracle
  groupadd dba
  
  passwd oracle
  
  3、
  
  变量替换
  &
  && 替换一次 后面不用再替换了
  
  4、如何查看Oracle的SID名称
  
  ps -ef|grep oracle
  
  show parameter instance_id
  
  5、如何直接运行SQL/Plus生效?
  
  编辑环境变量
  
  linux: .bash_profile
  
  UNIX:  .profile
  
  ORALCE_HOME=/bin
  ORACLE_SID=
  
  PATH=$ORACLE_HOME/bin:/home/oracle/bin
  
  export ORACLE_HOME ORACLE_SID PATH
  
  
  请注意一定要export这些变量
  
  使用VI修改完毕后,使用如下命令保证这些变量在当前环境已经生效
  
  使得父进程环境变量有效
  
  而export只是使得子进程的环境变量有效
  
  source .bash_profile 
  
  UNIX:. .profile
  
  如果直接调用只是使得在运行.bash_profile这个进程中有效。
  
  6、Oracle 11g的安装
  
  (1)建立oracle用户和dba用户组
  
  groupadd dba
  useradd -g dba oracle oracle
  
  (2)、使用root解压两个zip文件
  
  (如果使用oracle解压则省略第三步)
  
  unzip *oracle 1*.zip
  unzip *oracle 2*.zip
  
  (3)  解压后看到database文件夹改变这个文件夹的所有者为oracle
  
  chown -R oracle:dba database
  
  更改组也可以:
  
  chgrp dba database
  
  chgrp :dba database
  
  (4)
  在oracle用户下运行 xhost +
  xclock 查看是否弹出窗口,确保可以弹出oracle安装界面
  
  运行./runInstaller
  
  注意:文件的权限一定要是oracle或者其他用户,安装不能在root下进行
  
  (5)安装完毕后,设置环境变量ORACLE_HOME ORACLE_SID
  
  (6)运行/home/app/oracle/product/11.2.0/dbms_1/dbs下的root.sh
  
  (7)运行SQLPLUS
  sqlplus / as sysdba
  
  alter user hr identified by hr account unlock;
  
  (8)运行/home/app/oracle/product/11.2.0/dbms_1/sqldeveloper.sh 使用hr/hr登录数据库
  
  
  **** trunc和round函数都是保留在指定的位上
  
  7、round函数的使用
  
  SQL> select round(43.78,-1) from dual;
  
  ROUND(43.78,-1)
  ---------------
  40
  
  SQL> select round(43.78,1) from dual;
  
  ROUND(43.78,1)
  --------------
  43.8
  
  去年的上半年和今年的上半年的日期经过round后,日期为今年的一月一号
  
  SQL> select round(date'2012-05-01','YEAR') from dual;
  
  ROUND(DATE'201
  --------------
  01-1月 -12
  
  SQL> select round(date'2012-07-01','YEAR') from dual;
  
  ROUND(DATE'201
  --------------
  01-1月 -13
  
  8、trunc函数
  
  
  
  SQL> select trunc(sysdate,'q') from dual;
  
  TRUNC(SYSDATE,
  --------------
  01-10月-12
  
  SQL> select trunc(sysdate,'month') from dual;
  
  TRUNC(SYSDATE,
  --------------
  01-11月-12
  
  SQL> select trunc(sysdate,'year') from dual;
  
  TRUNC(SYSDATE,
  --------------
  01-1月 -12
  
  
  9、RR
  
  采用RR的话
  当前时间如果为>=50 那么>=50的值就是当前世纪,<50的为下一世纪
  当前时间如果<50 那么<50的值就是当前世纪,>=50为上一世纪
  
  10、日期是否可以作为NULL的参数值
  
  TO_NUMBER(sysdate)
  select nvl(sysdate,230) from dual; //error
  
  11、隐式转换和显示转换
  
  char varhcar2 to date
  char varchar2 to number
  
  比如发生在NVL NVL2 NULLIF中
  
  DD-MON-RR
  
  hh24:mi:ss
  
  12、
  
  q'<'s>'
  ''作为单引号
  
  13、count(*)与count(name)
  
  select  avg(limit) from emp; 空值行不作为一行
  select avg(nvl(limit,0)) from emp;
  空值行也被作为1行
  
  
  14、
  group by 不能使列名
  order by 可以是列名
  
  15、
  select * from hr.employees where JOB_ID like '%\_%' escape '\' 
  
  16、sftp 192.168.100.30
  
  get ./* /liwenjie/soft
  put ./ /liwenjie/soft/*
  
  rpm -ivh *.rpm
  
  rpm -U
  
  lcd
  
  groupadd -g
  useradd  -r
  
  chown oracle:dba /database
  
  
  16、
  
  col COLUMNNAME for a40
  
  start/@ SQL脚本
  
  list
  
  list 1
  
  / 执行上一个脚本
  
  
  17、define x=30
  
  select &x from dual;
  
  set verify on;
  
  set verify off;
  原值 新值替换过程就没有了
  
  ho SQL命令 在SQLPLUS中执行
  
  sav 
  
  spool on
  
  spool off
  
  sqlplus liwenjie/liwenjie@localhost:1521/orcl
  
  
  18、如何查看用户下的所有的表?
  sqlplus 下 select * from tab
  select table_name from dba_tables  where owner='HR' and table_name like 
  
页: [1]
查看完整版本: OCP SQL基本命令