Oracle中常用的sql操作

  1. 打开/关闭Oracle监听

    $ lsnrctl start/stop
  2. 以dba方式登陆数据库

    sqlplus/ as sysdba
  3. 查询所有数据库

    select * from v$database;
  4. 查询实例名

    selectinstance_name from v$instance;
  5. 查看数据库当前进程的连接数

    selectcount(*) from v$process;
  6. 查看数据库允许的最大连接数

    selectvalue from v$parameter where name = 'processes';
  7. 修改最大连接数(需重启)

    altersystem set processes = 300 scope = spfile;

  8. 重启数据库

    shutdown immediate;

    startup;

  9. 创建用户和表空间

    --创建表空间
    CREATETABLESPACE cbs_db  LOGGING DATAFILE'D:\app\oracle\oradata\orcl\cbs_db.dbf' SIZE 200M AUTOEXTEND ON EXTENTMANAGEMENT LOCAL SEGMENT SPACE MANAGEMENT AUTO;
    --创建用户,指定密码和上边创建的表空间
    CREATEUSER cbs IDENTIFIED BY cbs ACCOUNT UNLOCK DEFAULT TABLESPACE CBS_DB;
    --授予权限
    grant connect,resource,dba to cbs;
  10. 查看所有表空间和删除表空间

    --查看所有表空间
    select name from v$datafile;
    --删除表空间
    CREATE TABLESPACE DSMC_DATA  LOGGING DATAFILE 'D:\APP\ORACLE\ORADATA\DSBC\DSMC_DATA.DBF' SIZE 32M AUTOEXTEND ON EXTENT MANAGEMENT LOCAL SEGMENT SPACE MANAGEMENT AUTO;
  11. 删除表

    truncate只删除表数据不删除表结构    drop删除表和结构
    truncate table t_meta_column;
    drop table t_meta_column;

  12. 模糊查询和精确查询

    模糊查询一般用于text文本框输入的查询信息

    select dd_id from sys_table where std_id like '%要查询的关键字%' and……

    精确查询一般用于多选下拉框查询的信息

    select dd_id from sys_table where std_id='要查询的完整字'

  13. Oracle根据取出的字段值输出自定义的字符

    假设一种情况,数据库中有一个money字段,其中包含1、2、3、4,分别代表中美日韩的钱币,但是现在要求输出的是汉字而不是数字,然而数据库取出的数字,对于这种情况,可以使用decode函数。

    select decode(DATA_TP,'1','中','2','美','3','日','4','韩') from T_STD_BASIC_VRSN

    意思就是查找DATA_TP,并将找出来的1、2、3、4用相应的中文字段来替换。

     

    另一个方法是NVL,它的作用是空值判断并输出相应替换字符

    NVL(字段,'想要输出的值')  意思就是判断字段是否为空,为空的话就输出后面的值。

  14. 数据库将字段中有相同字段的内容归为一类的方法

    比如一个字段name,现在数据库中有很多条记录,但是很多name都相同,想要将其按照名字归类,可以使用下面语法

    select distinctt.cd_nm from T_STD_BASIC_CODE t

    当然也可以按照下面的group by语法

    select t.cd_nm fromT_STD_BASIC_CODE t group  by t.cd_nm

  15. sql语句查询某个时间段

    SELECTCOUNT(*)  FROM  T_STD_BASIC_VRSN T    where to_char(mnplt_tms,'yyyy/mm/dd' )  >= '2015/12/16' andto_char(mnplt_tms,'yyyy/mm/dd' )   <='2015/12/16'    

  16. sql查询出现undefined问题解决方法

    一般我们会加入非空判断,其实最好加上非undefined判断才算最保险的

    if(cd_id!=""&& typeof(cd_id) != "undefined"){

    str  = str + " cd_id like'%"+cd_id+"%' and";

    }

  17. 创建自增序列

    create sequence SEQ_META_TABLE
    minvalue 1
    maxvalue 999999999999999999999999999
    start with 11
    increment by 1
    cache 10;

你可能感兴趣的:(oracle,sql,数据库,实例)