您的位置:首页 > 数据库 > Oracle

Oracle中常用的sql操作

2015-12-27 20:37 651 查看

打开/关闭Oracle监听

$ lsnrctl start/stop

以dba方式登陆数据库

sqlplus/ as sysdba

查询所有数据库

select * from v$database;

查询实例名

selectinstance_name from v$instance;

查看数据库当前进程的连接数

selectcount(*) from v$process;

查看数据库允许的最大连接数

selectvalue from v$parameter where name = 'processes';

修改最大连接数(需重启)

altersystem set processes = 300 scope = spfile;

重启数据库

shutdown immediate;
startup;

创建用户和表空间

--创建表空间

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;

查看所有表空间和删除表空间

--查看所有表空间

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;

删除表

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

truncate table t_meta_column;

drop table t_meta_column;

模糊查询和精确查询

模糊查询一般用于text文本框输入的查询信息
select dd_id from sys_table where std_id like '%要查询的关键字%' and……

精确查询一般用于多选下拉框查询的信息
select dd_id from sys_table where std_id='要查询的完整字'

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(字段,'想要输出的值') 意思就是判断字段是否为空,为空的话就输出后面的值。

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

比如一个字段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

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'

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

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

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

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

}



[title2]创建自增序列

[/title2]


create sequence SEQ_META_TABLE

minvalue 1

maxvalue 999999999999999999999999999

start with 11

increment by 1

cache 10;
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: