阿里云域名注册备案,重庆seo排名外包,有没有做招聘网站的,软件开发者模式1.Distinct消除重复行数据:SELECT DISTINCT DEPTNO FROM EMP2.NULL操作如果某条记录中有缺少的数据值#xff0c;就是空值(NULL值)。空值不等于0或者空格#xff0c;空值是指未赋值、未知或不可用的值。任何数据类型的列都可以包括NULL值#xff0c;除非该列被定义为非空或者…1.Distinct消除重复行数据:SELECT DISTINCT DEPTNO FROM EMP2.NULL操作如果某条记录中有缺少的数据值就是空值(NULL值)。空值不等于0或者空格空值是指未赋值、未知或不可用的值。任何数据类型的列都可以包括NULL值除非该列被定义为非空或者主键。在查询条件中NULL值用IS NULL作条件非NULL值用IS NOT NULL做条件SELECT ENAME,JOB,SAL,COMM FROM EMP WHERE SAL2000 AND COMM IS NULL;3.IN 操作在Where子句中可以使用IN操作符来查询其列值在指定的列表中的行。对应IN操作的还有NOT IN用法一样结果相反。SELECT ENAME,JOB,SAL FROM EMP WHERE job IN (SALESMAN, PRESIDENT, ANALYST);4.BETWEEN…AND5.在WHERE子句中可以使用BETWEEN操作符来查询列值包含在指定区间内的行。BWTWEEN操作所指定的范围也包括边界。SELECT ename,job,sal FROM EMP WHERE sal BETWEEN 1000 AND 2000oracle 集合运算集合运算就是将两个或者多个结果集组合成为一个结果集。集合运算包括INTERSECT(交集)返回两个查询共有的记录。UNION ALL(并集)返回各个查询的所有记录包括重复记录。UNION(并集)返回各个查询的所有记录不包括重复记录。MINUS(补集)返回第一个查询检索出的记录减去第二个查询检索出的记录之后剩余的记录。当使用集合操作的时候要注意查询所返回的列数以及列的类型必须匹配列名可以不同。例子:查询出dept表中哪个部门下没有员工。只需求出dept表中的部门号和emp表中的部门号的补集即可SELECT DEPTNO FROM DEPT MINUS SELECT DEPTNO FROM EMP把一个结果集插入到另一张结构相同的表中 使用union把若干条记录一次性插入到一张表中INSERT INTO DEPT SELECT 50,公关部,台湾 FROM DUAL UNION SELECT 60,研发部,西安 FROM DUAL UNION SELECT 70,培训部,西安 FROM DUALlike模糊查询一般like模糊查询 如下select b.* from b_city_info b where b.c_name like %西藏%;---用时:0.062 ,此查询将会进行全表扫描修改为如下的语句:select b.* from b_city_info b where b.c_name like 西藏%;--用时0.009查询执行计划将会变成(INDEX RANGE SCAN)成功的利用了name字段的索引使用rowId实现分页--分页第一步 获取数据物理地址select t.rowid rid, t.c_id from b_city_info t order by t.c_id desc;--分页第二步 取得最大页数select rownum rn, ridfrom (select t.rowid rid, t.c_id from b_city_info t order by t.c_id desc)where rownum 10;--分页第三步 取得最小页数select rn,ridfrom (select rownum rn, ridfrom (select t.rowid rid, t.c_id from b_city_info t order by t.c_id desc)where rownum 10)where rn 5;--分页第四步 再根据物理地址查询出具体数据select t1.*,t1.rowidfrom b_city_info t1where t1.rowid in(select dt.ridfrom (select rownum rn, ridfrom (select t.rowid rid, t.c_id from b_city_info t order by t.c_id desc)where rownum 10000)dtwhere rn 5000);Oracle日期和字符串、数字的格式化1.select SYSDATE from dual t;--系统日期2.select TO_CHAR(SYSDATE,YYYY/MM/DD HH24:MI:SS) from dual t;--格式化日期3.select TO_DATE(20140630 18:28:20,YYYY/MM/DD HH24:MI:SS) from dual t;--格式化日期4.select sysdate,sysdate - interval 7 MINUTE from dual;--当前时间减去7分钟的时间5.select sysdate - interval 7 hour from dual;--当前时间减去7小时的时间6.select sysdate - interval 7 day from dual;--当前时间减去7天的时间7.select sysdate,sysdate - interval 7 month from dual;--当前时间减去7月的时间8.select sysdate,sysdate - interval 7 year from dual;--当前时间减去7年的时间9.select sysdate,sysdate - 8*interval 7 hour from dual;--时间间隔乘以一个数字10.select to_number(222.2) from dual t;--输出222.211.select to_char(10000000000,$999,999,999,99) from dual;--按格式输出12.select to_char(1000000,L99,999,99) from dual;--输出 RMB10,000,0013.select trunc(to_number(1000000.123),3) from dual;--保留三位有效数字Dual虚拟表,只有一列当查询时间或者日期这些对象的时候就需要使用这个表select sysdate from dual查询当前连接用户select user from dual;把字符串按照分割符分解成不同的部分select regexp_substr(A,B,C,D,E, [^,], 1, level, i) as strfrom dualconnect by level length(A,B,C,D,E) - length(regexp_replace(A,B,C,D,E, ,, )) 1;将一张表的数据导入到另一张表中前提:两表结构一样insert into 表A select * from 表B如果两表的数据结构不一样INSERT INTO 表1(字段1,字段2,字段n)select 表2.字段1,表2.字段2,表2.字段n from 表2oracle 表数据恢复第一中方式创建一个备份表存放三小时前的数据create table tabletest_2014bak nologging asselect * from tabletest as of timestamp sysdate-21/24 where name ! boat;第二种方式回复表tabletest中的数据到某一个时间点这个时间点一定要前于当前时间alter table tabletest enable row movement;Flashback table tabletest to timestamp to_timestamp(2014-12-30 17:00:00,yyyy-mm-dd hh24:mi:ss);Oracle修改原始表中字段的数据类型方法一// 创建一样的临时表create table T_BUSINESS_MODEL_TEMP as select * from T_BUSINESS_MODEL where 12 ;// 对临时表改数据类型alter table T_BUSINESS_MODEL_TEMP modify MODEL_MONEY NUMBER(10,2);// 将原表数据赋值到最新的表中insert into T_BUSINESS_MODEL_TEMP select * from T_BUSINESS_MODEL;// 删掉原来的表drop table T_BUSINESS_MODEL;// 将临时表重新命名为原表alter table T_BUSINESS_MODEL_TEMP rename to T_BUSINESS_MODEL;// 添加原表的约束 (主键外键索引)alter table T_BUSINESS_MODELadd constraint PK_T_BUSINESS_MODEL primary key (ID);方法二-- 字段重命名alter table PROJECT rename column NAME to NAME1;----- 把字段名称改成原来的名称alter table PROJECT add NAME VARCHAR2(300);--- 赋值update PROJECT npset np.namenp.name1;commit;--- 删掉原来重命名的字段alter table PROJECT drop column NAME1;Oracle 递归查询 START WITH....CONNECT BY PRIOR......SELECT * FROM B_CITY_INFO START WITH c_id540000CONNECT BY PRIOR c_idp_c_id ;Oracle数据库调用存储过程和删除该文由职坐标整理并发布了解更多相关内容请关注职坐标Oracle数据库频道调用set serveroutput on;exec 存储过程名;删除drop procedure 存储过程名该文由职坐标整理并发布了解更多相关内容请关注职坐标Oracle数据库频道