本文是受网文 <一次非常有意思的SQL优化经历:从30248.271s到0.001s>启发而产生的. 网文没讲创建表的数据过程,我帮他给出. 创建科目表及数据: CREATE TABLE tb_course ( id NUMBER not null primary key, name NVARCHAR2(10) not null ) Insert into tb_course select rownum,dbms_random.string('*',dbms_random.value(6,10…
A.B两张表,找出ID字段中,存在A表,但是不存在B表的数据,A表总共13W数据,去重后大约3万条数据,B表有2W条数据,且B表的ID有索引. 方法一 使用not in,容易理解,效率低. select distinct a.id from a where a.id not in(select id from b) 1 方法二 使用left join … on ….,’b.id is null’,表示左连接之后在b.id字段为null的记录 select a.id from a left joi…
业务系统中常常会有排名的需求,考试和比赛中则更普遍了.Excel 中也有个 Rank 函数供排名之用,数据库中更不例外了. 如果须要找出工资最高的前三个员工工资(及其员工号). 只是."前三名"的详细含义须要准确的定义.不然查出来的可能不是想要的结果. 首先.由于表中记录数可能就少于三,查出来的记录可能等于三条也可能少于三条.其次,须要考虑并列名次的处理. 假设名次不能并列,则还须要考虑是否要依据工资之外的列来区分排名. 比如: 名次 ID 工资 ------------- 1 80…
create table  as select * from和insert into select from两种表复制语句区别 create table targer_table as select * from source_table insert into target_table(column1,column2) select column1,column2 from source_table 以上两句都是将源表source_table的记录插入到目标表target_table,但两句又…
SQL中含有四种基本的数据操作语句,分别是增(INSERT),删(DELETE),查(SELECT),改(UPDATE).下面简单介绍这四种语句的用法. 1:增(INSERT) 可分为两种查询情况,一是添加一条记录,二是添加子查询的结果(可以一次添加多条记录). 格式 INSERT into 表名[(字段名1,字段名2,...)] values(字段值1,字段值2,...) 注意:(1)字段名可以和表中的排列顺序不同,但是字段值所对应的位置必须按照其所对应的字段名排列: (2)字符型和日期型数据…
1.java方式 String table_sql = "select table_name from user_tables";//所有用户表 List<String> table_list = getSession().createSQLQuery(table_sql).list(); for (int index = 0; index < table_list.size(); index++) { String tab = table_list.get(inde…
循环: loop --执行代码 exit when 表达式;--当表达式为真退出循环.(注意,其编写位置决定循环为先判断还是先执行,相当于java的while或do-while) end loop; 相当于Java的 while(true) { --执行代码 if (表达式) break; } while 表达式 loop --执行代码 end loop; 和Java的while使用方式相同.通过它可实现java中for循环的功能 while n<10 loop --执行代码 n:=n+1; e…
工作中遇到一个大表记录中有非法非数字字符,不想用正则语法去做, 用一条SQL语句查出来的方法如下: select * from table where translate(col,'*0123456789','*')  is not null…
--1.不包含字母 SELECT * FROM t WHERE str NOT LIKE '%[a-zA-Z]%' SELECT * FROM t --2.不包含汉字 SELECT * FROM t WHERE str NOT LIKE '%[吖-座]%' SELECT * FROM t…
可以使用如下sql语句: select t1.username,t1.logon_time last_logon_time,t2.account_status,created 账号创建时间 from (select username,max(timestamp) logon_time from dba_audit_session where action_name='LOGON' and username in (select username from dba_users) group by…