SQL语句
文章平均质量分 87
babymouse1212
这个作者很懒,什么都没留下…
展开
-
删除表中一列
alter table auths dropcolumn salay原创 2017-05-02 10:40:19 · 2435 阅读 · 0 评论 -
Oracle开发方面的面试题
人员情况表(employee)中字段包括,员工号(ID),姓名(name),年龄(age),文化程度(wh):包括四种情况(本科以上,大专,高中,初中以下),现在我要根据年龄字段查询统计出:表中文化程度为本科以上,大专,高中,初中以下,各有多少人,占总人数多少。结果如下:学历 年龄 人数 百分比本科以上 20 34 1原创 2017-05-02 10:47:21 · 512 阅读 · 0 评论 -
SQL基础题目
题一,S(学号,性别,年龄,姓名,系别,省区) SC(学号,课程号,学分) C(课程号,课程名,学分)用SQL语句实现:1查询选修了课程的人数2查询选修了1号课程的学生姓名3查询每个学生的学号,姓名,选修课程名,成绩4查询选修课程“人工智能”的学生的学号,姓名5 查询选修1号课程的最高分6查询姓名中第二个子为“月”的学生7 求各课程号及相应的选课人数8查询选修2号课程原创 2017-05-02 10:47:24 · 1703 阅读 · 0 评论 -
关于Rownum的使用
在Oracle中,要按特定条件查询前N条记录,用个rownum就搞定了。select * from emp where rownum 而且书上也告诫,不能对rownum用">",这也就意味着,如果你想用select * from emp where rownum > 5则是失败的。要知道为什么会失败,则需要了解rownum背后的机制:1 Oracle executes your quer原创 2017-05-02 10:47:41 · 262 阅读 · 0 评论 -
SQL取特定的记录
1、使用rownum为记录排名,取工资的前三名SQL> select * from ( 2 select *from emp order by sal desc ) 3 where rownumEMPNO ENAME JOB MGRHIREDATE SAL COMM DEPTNO----- ---------- -----原创 2017-05-02 10:47:44 · 309 阅读 · 0 评论 -
interval day to second和interval…
在9i 版本以前,Oracle没有内置的方式来记录时间的流逝。DATE型数据用来记录单独的时间点;但是要表达一个时间量(也就是一个间隔),数据库的设计者就必须把时间间隔转换成原始单位秒,然后用一个NUMBER列来保存它。虽然NUMBER这个数据类型可以以秒为单位准确地表示时间,但是它使得时间的计算变得很困难。比如,60秒是1分钟,60分钟是1个小时,24个小时等于1天——这些数字在以十进制原创 2017-05-02 10:48:12 · 1866 阅读 · 0 评论 -
关于>any <any >all <all的理解
YC~比如集合(1,2,3,4)>any表示只要大于其中任意一个就行,也就是>1(最小的) 就满足条件了,也就是要大于最小的小于最大的>all表示要比全部的都大,也就是>4(最大的) 就满足条件了,也就是要大于最大的小于最小的原创 2017-05-02 10:48:54 · 574 阅读 · 0 评论 -
Delete 和 Truncate的区别
You can delete all rows of a table or all rows in a group ofclustered tables so that thetable (or cluster) still exists, but is completely empty. Forexample, consider a table thatcontains monthly原创 2017-05-02 10:49:08 · 310 阅读 · 0 评论 -
SQL行转列题目
有一张表表内容为姓名 学校 通过状态(0为待定,1为通过,2为未通过)stdt2 schoola 0stdt1 schoolb 2stdt6 schoolc 1stdt8 schoold 1stdt5 schoole 1stdt3 schoolf 2--原创 2017-05-02 10:49:31 · 674 阅读 · 0 评论 -
Ceil和Floor函数
--取大于等于数值n的最大整数SELECT mgr,mgr/100,CEIL(mgr/100) FROM scott.emp;1 7902 79.02 802 7698 76.98 773 7698 76.98 774 7839 78.39 795 7698 76.98 776 7839 78.39 797 7839 78.39 798 7566 75.66 76原创 2017-05-02 10:50:59 · 208 阅读 · 0 评论 -
关于Oracle Number类型
Number类型是oralce的数值类型,存储的数值的精度可以达到38位。Number是一种变长类型,长度为0-22字节。取值范围为:10^(-130) ——10^126(不包括)。以十进制格式进行存储的,它便于存储,但是在计算上,系统会自动的将它转换成为二进制进行运算的。 Number(p,s):P和s都是可选的。P指精度(precision),即总位数。默认情况下精度为38。精度的取原创 2017-05-02 10:56:25 · 348 阅读 · 0 评论 -
"ORA-01086: savepoint&…
***Checked for relevance on30-Jan-2012*** Problem Description: ==================== In your PL/SQL script, you mark a savepoint, call a storedprocedure, and then try to ROLLBACK to the save原创 2017-05-02 10:56:28 · 551 阅读 · 0 评论 -
dbms_job package 用法
源自:http://blog.csdn.net/nsj820/article/details/5643421分类: Oracle Management 2010-06-02 22:45 3411人阅读 评论(0) 收藏 举报oracledate工作jobsinteger数据库一、设置初始化参数 job_queue_processessql> alter system set job_queu原创 2017-05-02 10:58:23 · 263 阅读 · 0 评论 -
Rank() OVER(PARTITION BY)用法
排列(rank())函数。这些排列函数提供了定义一个集合(使用 PARTITION子句),然后根据某种排序方式对这个集合内的元素进行排列的能力,下面以scott用户的emp表为例来说明rank overpartition如何使用 1)查询员工薪水并连续求和select deptno,ename,sal,sum(sal)over(order by ename) sum1, sum(sa原创 2017-05-02 10:47:18 · 866 阅读 · 0 评论 -
如何查看执行计划
一.在线查看执行计划表 如果PLAN_TABLE表不存在,执行$ORACLE_HOME/rdbms/admin/utlxplan.sql创建plan_table表。 1.explain plan for select * from ...... 2.select * from table(DBMS_XPLAN.Display); 二.使用oracle第三方工具: pl原创 2017-05-02 10:46:42 · 451 阅读 · 0 评论 -
创建与原有表结构相同的空白表
create table a asselect * from b where rownum原创 2017-05-02 10:41:24 · 2972 阅读 · 0 评论 -
删除表中重复数据
如果重复数据很多,被删掉的可能是大部分记录,业务又允许的情况下,可以考虑重建表create table newtable as select distinct * from table;rename table to oldtable;rename newtable to table;create index and constraint...如果重复数据较少,利用rowid来删除:原创 2017-05-02 10:40:22 · 285 阅读 · 0 评论 -
创建连接视图注意事项
创建连接视图时 定义表别名时连接字段也是写表别名 进行连接如: A.xxx=B.xxx原创 2017-05-02 10:40:28 · 703 阅读 · 0 评论 -
更改列的名字
用这个命令alter tabletab_name rename column aa to bb列名原来叫aa现改为bb原创 2017-05-02 10:40:36 · 307 阅读 · 0 评论 -
NVL函数用法
NVL(EXPR1,EXPR2)若EXPR1是NULL,则返回EXPR2,否则返回EXPR1.若EXPR1和EXPR2同时为空,则返回Null.SELECT NAME,NVL(TO_CHAR(COMM),'NOT APPLICATION') FROMTABLE1;原创 2017-05-02 10:40:39 · 1189 阅读 · 0 评论 -
Decode函数用法
Decode函数的语法结构如下: decode(expression, search_1, result_1, search_2, result_2, ....,search_n, result_n, default)decode函数比较表达式和搜索字,如果匹配,返回结果;如果不匹配,返回default值;如果未定义default值,则返回空值。原创 2017-05-02 10:40:42 · 362 阅读 · 0 评论 -
sql语句计算出每个月的天数
从当前月-11个月开始,到当前月为止,用一个sql语句计算出每个月的天数。SELECTTO_CHAR(ADD_MONTHS(SYSDATE,-LEVEL+1),'YYYY-MM') MONTH ,TO_CHAR(LAST_DAY(ADD_MONTHS(SYSDATE,-LEVEL+1)),'DD') DAY FROM DUALCONNECT BY LEVEL原创 2017-05-02 10:40:45 · 6650 阅读 · 0 评论 -
查找数据库中有哪些表有这个字段
SELECT TABLE_NAME FROMUSER_TAB_COLUMNS WHERE COLUMN_NAME = '字段名' 其中字段名是区分大小写的原创 2017-05-02 10:40:48 · 1427 阅读 · 0 评论 -
EXIST 和 IN 使用
使用 EXISTS 和 IN 的查询本示例所示查询查找由位于以字母 B开头的城市中的任一出版商出版的书名:SELECT titleFROM titlesWHERE EXISTS (SELECT * FROM publishers WHERE pub_id =titles.pub_id AND city LIKE \'B%\')-- Or, using IN:原创 2017-05-02 10:40:50 · 244 阅读 · 0 评论 -
如何查表中某个字段值有无重复的取…
select p.user_namefrom pub_users pgroup by p.user_namehaving count(*)>1 group by字段值having count(*)>1原创 2017-05-02 10:40:53 · 454 阅读 · 0 评论 -
如何查询NAME字段是字符而不是汉字…
如何查询NAME字段是字符而不是汉字的?有些字段值是字符的(如ZHANGSHAN),有些是汉字,如果设置查询条件查出不是汉字的记录.length求得是字符长度,lengthb求得是字节长度select length('呵呵') from dual;LENGTH('呵呵')-------------- 2>select lengthb('呵呵') from d原创 2017-05-02 10:41:02 · 492 阅读 · 0 评论 -
关于时间段查询
(select * from overtime_wfrep twhere replace(substr(overtime_start,1,10),'-','')>='20071001'---175and replace(substr(overtime_end,1,10),'-','') --可以包含录错的())minus(select *from overtime_w原创 2017-05-02 10:41:13 · 262 阅读 · 0 评论 -
表中添加一列
alter table emp1 add (test varchar(2));原创 2017-05-02 10:41:21 · 379 阅读 · 0 评论 -
Lag和Lead函数
还没实验,先记录一下 Lag和Lead函数可以在一次查询中取出同一字段的前N行的数据和后N行的值select * from (select text, lag(text, 1)over(order by rownum), lag(text, 2)over(order by rownum), le原创 2017-05-02 11:02:30 · 362 阅读 · 0 评论