常用Oracle操作语句

--常用的字段类型有:varchar2,char,nchar,date,long,number,float,BLOB,CLOB

--添加表字段
alter table tablename add AREAID Number(18);
--修改表字段
alter table tablename modify SJLY varchar2(200);
--删除表字段
alter table tablename drop (AREAID);

--DBA_TABLES、ALL_TABLES和USER_TABLES显示了有关数据库表的一般信息。
--DBA_TAB_COLUMNS、ALL_TAB_COLUMNS和USER_TAB_COLUMNS显示了每个数据库表的列的信息。
select * from all_tables WHERE owner=‘SUPER‘;
--或者
SELECT * FROM dba_tables WHERE owner=‘SUPER‘;

select * from tab;--查询出所有的表及视图
select * from user_views;--查询出当前用户下的所有视图

--列出数据库里所有的表名
--(仅用于SqlServer)
select name from sysobjects where type=‘super‘ --U代表用户
--(Oracle写法)
select * from user_tables --查询出当前用户下的所有表数据

--列出表里的所有的列名
--(仅用于SqlServer)
select name from syscolumns where id=object_id(‘tablename‘) ;
--(Oracle写法)
select column_name,data_type,char_col_decl_length,data_precision,data_scale
from user_tab_columns where table_name=‘tablename‘;

--这种写法主要是用在:Java代码动态加载where后面的条件。如 :and name=‘小白‘
select * from talbeName where 1=1;

--时间比较
select * from tablename where updatetime>=to_date(‘2013-10-11‘, ‘yyyy-mm-dd‘) and updatetime<to_date(‘2013-11-30‘, ‘yyyy-mm-dd‘);

--时间加减
select a.sblsh, a.sbsj,b.bjsj,a.sxmc,b.bjbmmc from laam_ex_sb a,laam_ex_bj b where trunc(b.bjsj)-trunc(a.sbsj) > 10 and b.sblsh=a.sblsh;

--rownum 相当于SqlServer-->>top n *
create table mytable as select * from laam_ex_bj where rownum<3;

--复制表结构及数据到新表
create table newTalbe as select * from oldTalbe;

select * into newTalbe from oldTalbe; -- (仅用于SQlServer)

insert into newTable(a, b, c) select d,e,f from oldTalbe; --前提是newTalbe事先已存在

--用‘||‘符号拼接表字段信息
select ‘ALTER TABLE ‘||substr(table_name,0,length(table_name)-3)||‘ MODIFY SJLY varchar2(200);‘ from user_tables where table_name like ‘LBID%OLD‘;

--创建索引
create index INDEX_Job on LBIDResidentJobInfo(XM, SFZH, scbj);
create index INDEX_Legal on LBIDHouseAndLegalPerson(rkfrlegalpersonbaseid); --外键
create index INDEX_House on LBIDhouseinfo(id); --主键

--子查询
select a,b,c from A where A IN (select d from B );
--或者
select a,b,c from A where A IN (1,2,3);

--显示文章、提交人和最后回复时间
select a.title,a.username,b.adddate from table A,(select max(adddate) adddate from table where table.title=A.title) B ;

--两张关联表,删除主表中已经在副表中没有的信息
delete from table1 where not exists ( select * from table2 where table1.field1=table2.field1 );

--四表联查问题:
select * from A left inner join B on A.a=B.b right inner join C on A.a=C.c inner join D on A.a=D.d where .....

--一条 sql 语句搞定数据库分页
--(仅用于SqlServer)
select top 10 b.* from (select top 20 主键字段,排序字段 from 表名 order by 排序字段 desc) a,表名 b where b.主键字段 = a.主键字段 order by a.排序字段;
--(Oracle写法)
select b.* from (select id,sbsj from laam_ex_sb where rownum<=20 order by sbsj desc) a,laam_ex_sb b where a.id = b.id and rownum<=10 order by a.sbsj;

select sqrmc from laam_ex_sb where createtime>to_date(‘2014-09-21‘, ‘yyyy-mm-dd‘) group by sqrmc having count(sqrmc) > 1;
--删除重复记录
select count(*) from laam_ex_sb
where createtime>to_date(‘2014-09-21‘, ‘yyyy-mm-dd‘) and sqrmc in (select sqrmc from laam_ex_sb where createtime>to_date(‘2014-09-21‘, ‘yyyy-mm-dd‘) group by sqrmc having count(sqrmc) > 1)
and id not in (select min(id) from laam_ex_sb where createtime>to_date(‘2014-09-21‘, ‘yyyy-mm-dd‘) group by sqrmc having count(sqrmc)>1);

--随机取出10条数据
select * from laam_ex_bj where rownum<10 order by sys_guid();
select * from laam_ex_bj where rownum<10 order by dbms_random.value;

--选择从10到15的记录
--(仅用于SqlServer)
select top 5 * from (select top 15 * from table order by id asc) table_别名 order by id desc;
--(Oracle写法)
select * from (select * from laam_ex_bj where rownum<=15 order by id asc) laam_ex_bj where rownum<=5 order by id desc;

--日程安排提前五分钟提醒
select * from 日程安排 where datediff(‘minute‘,开始时间,getdate())>5;
时间: 2024-10-22 06:46:33

常用Oracle操作语句的相关文章

常用Oracle SQL语句(汇总版)

Oracle数据库常用sql语句 ORACLE 常用的SQL语法和数据对象 一.数据控制语句 (DML) 部分 1.INSERT (往数据表里插入记录的语句) INSERT INTO 表名(字段名1, 字段名2, ……) VALUES ( 值1, 值2, ……); INSERT INTO 表名(字段名1, 字段名2, ……) SELECT (字段名1, 字段名2, ……) FROM 另外的表名; 字符串类型的字段值必须用单引号括起来, 例如: ’GOOD DAY’ 如果字段值里包含单引号’ 需要

Oracle操作语句--增加/删除

1.删除1980年雇员的雇员信息: delete  from myemp where     hiredate between to_date('1980-1-1','yyyy-mm-dd') and to_date('1980-12-31','yyyy-mm-dd') ; 执行上述语句后其实还没有真正意义上的更新,必须执行下面的语句才会彻底删除,否则其他session会话查询的时候,1980年的员工信息还依然存在.但是当你退出之后Oracle会自动commit的. COMMIT WORK; -

简单常用SQL操作语句

给大家整理了一些SQL SERVER的常用语句,这也是SQL数据库的一些基础课程,其中包括创建表.添加列等,感谢您一直对烈火的支持与帮助,我们会不断努力! 以下为SQL语句: 新建表: create table [表名] ( [自动编号字段] int IDENTITY (1,1) PRIMARY KEY , [字段1] nVarChar(50) default \'默认值\' null , [字段2] ntext null , [字段3] datetime, [字段4] money null ,

Shell脚本文件中常用的操作语句

1. 清空文件中的内容 cat  /dev/null  >> /var/log/messages 2. 脚本中判断用户是不是root用户 ROOT_UID = 0            # $UID 为0时,用户才具有root用户权限 if [ "$UID" -ne "$ROOT_UID"] then echo "this user is not root" exit 1  fi 3. 多条语句条件运行 语句1 &&

数据库中常用的操作语句

1.显示数据库列表: show databases; -- 用于可查看你当前一共有多少个数据库! 2.使其成为当前操作数据库 use mysql; -- 打开数据库.    选择进入你想进入的数据库 show tables; -- 显示mysql数据库中的数据表. 显示的是你输入的数据库当中的所有表 3.显示数据表的表结构: descrip student; -- 用于显示student这个表的结构 4.创建数据库,建表 create database mydatabase;  -- 创建一个数

常用数据库操作语句(1)

建库CREATE DATABASE IF NOT EXISTS gloryroad DEFAULT CHARSET utf8 COLLATE utf8_general_ci;建表create table studentInfo(ID int not null auto_increment comment "不为空的自增长的主键ID",student_id varchar(20) not null,name varchar(30) not null,sex char(4),tel var

常用数据库操作语句(2)

查看表结构desc test; 显示表列定义show columns from test; 显示表的索引show index from test; 插入表数据INSERT INTO book (book_name,bokk_author,price,publish_date)VALUES("c#", "hhq", 40, NOW()),#可以指定多行的值("编程语言", "hhq", 40, NOW()) 查询表所有数据sel

常用oracle语句-------------------------------------------》(笔记)

  Orale常用语句 1:查询指定表名的字段 select * from sys.user_tab_columns where table_name=表名 //查询指定表名的字段 2: 查询数据库参数 show parameter db; 3:查询数据库的实例名 select instance_name from v$instance; 3:数据库安装结束后,如果要知道正在运行额数据库是否有域名以及数据库域名名称可以用 select value from v$parameter where n

Oracle 数据库常用操作语句大全

Oracle 数据库常用操作语句大全 一.Oracle数据库操作 1.根据删除的时间查询出被删除的数据 select * from szdj_work_plan AS OF TIMESTAMP TO_TIMESTAMP('2018-1-19 16:51:37', 'yyyy-mm-dd hh24:mi:ss') where subject='测试一下删除0119' 1.表中唯一的最大的值 select hibernate_sequence.nextval from dual 1.创建数据库 cr