写ORACLE SQL
一.按英文字母排序:
select * from table order by nlssort(name,'NLS_SORT=schinese_pinyin_M');
二. 写一个SQL语句,查询选修了5门课程的学生学号和姓名(9分钟)
答:SQL语句如下:
select stu.sno, stu.sname
from student stu
where (select count(*) from sc where sno=stu.sno) = 5;
三. 在SQL中删除重复记录的方法:(用到rowid (oracle伪列))
1)通过建立临时表来实现
SQL>create table temp_emp as (select distinct * from employee)
SQL>truncate table employee; (清空employee表的数据)
SQL>rename temp_emp to employee; (再将表重命名)
2)通过使用rowid来实现。
SQL>delete from employee where rowid not in (
select max(t1.rowid) from employee t1 group by
t1.emp_id,t1.emp_name,t1.salary);--这里用min(rowid)也可以。
四. TOP N问题:(用到rownum (oracle伪列))
--rownum只能使用<=或<的关系比较运算符
select * from s_emp where rownum <= 2;
--查询公司工资最高的3个人
/*select * from emp
where rownum <= 3
order by sal desc;*/ 错误的
select * from (select * from emp order by sal desc)
where rownum <= 3;
五.分页查询:
--查询第1-5条记录
select * from (select rownum num, s_emp.* from s_emp)
where num >=1 and num <= 5;
相关文档:
oracle表空间操作详解
1
2
3作者: 来源: 更新日期:2006-01-04
5
6
7建立表空间
8
9CREATE TABLESPACE data01
10DATAFILE '/ora ......
温故而知新,果然如此呀,第二次再翻开同样的内容果然有不同的收获,有些是第一次看的时候没有仔细理解的,还有些可能是在第一次看匆匆就跳过的,当然,可能还有部分是自己当时记住了完了又给忘记了。今天第二次看到子程序这一章节,发现了些新的内容,呵呵。在这里我就写下一些基本内容和容易忘记的,免得下次又给忘了。内 ......
@echo off
REM ###########################################################
REM # Windows Server 2003下Oracle数据库自动备份批处理脚本
REM ###########################################################
REM 取当前系统时间,可能因操作系统不同而取值不一样
set CURDATE=%date:~0,4%%date:~5,2%%date:~8,2%
se ......
1) 基本结构
BEGIN
... --语句
EXCEPTION -- 例外处理
WHEN ...
...
WHEN OTHERS
...
END;
2) 常用预定义例外
EXCEPTION
WHEN CU ......
oracle10g新特性:闪回恢复区(Flash recovery area)
Oracle9i开始提供闪回查询,以便能在需要的时候查到过去某个时刻的一致性数据,这是通过Undo实现的。这个功能有很大的限制,就是相关事务的undo不能被覆盖,否则就无力回天了。oracle10g大大的增强了闪回查询的功能,并且提供了将整个数据库回退到过去某个时刻的能力, ......