文章列表
oracle中常用两种分页方式
- 博客分类:
- sql
--oracle的两种常用分页方式
--a.利用伪列rownum分页获取第6-10条记录
select * from (select rownum rn,e.* from (select * from emp order by empno) e where rownum<11) where rn>5;
--思路:
1.select * from emp order by empno; --查询emp表并让结果按empno排序显示
2.select rownum rn,e.* from (select * from emp order by empno) e whe ...
oracle分页中的问题
- 博客分类:
- oracle
Oracle查询中rownum与Order by查询的关系
在开发应用的时候,把数据按照一定的规则排序后再取前几条数据这种操作是很平常的事情。我们在Oracle中常用的就是order by,然后取得rownum小于多少的数据这种方法。不过如果对Oracle不熟悉,也许就会发现你写的SQL语句检索出来的值不正确,这个是为什么呢。
因为Oracle在检索的时候,会首先把数据都检索出来,然后在排序段中进行排序。假如你有一个SQL语句如下所示。
SELECT
EMP_NO
FROM
EMP
WHERE
ROWNUM < 10
ORDER BY
EMP_NO
在检索的时 ...
如何写高效sql语句
- 博客分类:
- sql
(1) 选择最有效率的表名顺序(只在基于规则的优化器中有效): Oracle的解析器按照从右到左的顺序处理FROM子句中的表名,FROM子句中写在最后的表(基础表 driving table)将被最先处理,在FROM子句中包含多个表的情况下,你必须选 ...
(1) 选择最有效率的表名顺序(只在基于规则的优化器中有效): Oracle的解析器按照从右到左的顺序处理FROM子句中的表名,FROM子句中写在最后的表(基础表 driving table)将被最先处理,在FROM子句中包含多个表的情况下,你必须选 ...
oracle 表复杂查询
说明 :
在实际应用中经常需要执行复杂的数据统计,经常需要显示多张表的数据,现在我们给大家介绍较为复杂的 select 语句 ,数据分组 ——max,min, avg, sum, count
--问题:如何显示所有员工中最高工资和最低工资?
SELECT MAX(sal),min(sal) FROM emp e;
-- 最高工资那个人是谁?
错误写法:select ename, sal from emp where sal=max(sal);
正确写法:select ename, sal from emp where sal=(select ...
oracle中的用户管理
grant update on emp to xiaoming --让xiaoming用户有更新emp表的权限
scott用户让xiaoming可以查询emp表,又让xiaoming可以把这个权限传递下去
--如果是对象权限用 with grant option
grant select on emp to xiaoming with grant option
grant select on scott.emp to xiaohong --xiaoming给xiaohong赋权emp查询
revoke select on emp from xiaomin ...
1.Orcale功能强大,性能卓越,一个合格的DBA要有丰富的项目经验,才能根据实际的情况对数据库做出处理。数据库要在项目中才有价值,无论是数据库的安全处理,数据库的备份方案制定,用户的管理等都是如此。
2.用什么数据库?
a.负载量多大,用户多大?
b.成本
c.安全要求
小型数据库: access foxbase
负载量小,成本千元内
中型数据库: mysql sql server informix
5000-15000人, 成本在万元左右--如电子商务网站
大型数据库; sybase oracle db2
可以处理海量数据,安全性高,但价格昂贵
备注:------------ ...
1.什么是线程和进程?两者之间的关系?
进程是程序的一次动态执行过程,线程和进程都是实现并发的基本单位。
线程是比进程更小的执行单位,一个线程可以由多个线程组成,线程消亡了,进程还在,但进程消亡了,线程一定 ...
多线程--join和yield
- 博客分类:
- j2se
//A线程遇到B线程join A线程让出执行权 直到B线程执行完毕再执行
public class JoinDemo
{
public static void main(String[] args) throws Exception
{
Demo d=new Demo();
Thread t1=new Thread(d);
Thread t2=new Thread(d);
t1.setName("t1");
t2.setName("t2");
t1.start();
//t1.join();
t ...
【多线程】线程的停止
- 博客分类:
- j2se
Thread类中stop方法停止线程存在安全隐患,怎么让一个线程停止运行呢?
线程的运行一般都是循环控制体,通过改变run方法
循环控制条件,即可让线程停止。
class ThreadStopDemo
{
public static void main(String[] args)
{
ThreadStop ts=new ThreadStop();
Thread t1=new Thread(ts);
Thread t2=new Thread(ts);
t1.start();
t2.start();
int num=0;
while(tr ...
JDK 5.0中的Lock实现线程同步
- 博客分类:
- j2se
JDK 5中将synchronized替换成现实的Lock,将Object中的wait notify notofyAll替换成Condition中的await signal signalAll。Condition 将 Object 监视器方法(wait、notify 和 notifyAll)分解成截然不同的对象,以便通过将这些对象与任意 Lock 实现组合使用.
import java.util.concurrent.locks.*;
class ProducerConsumerDemo1
{
public static void main(String[] args)
{
...
多线程--生产者消费者-
- 博客分类:
- j2se
思考:1.为什么生产者和消费者中要使用while循环判断? 使用while循环可以让被唤醒的线程每次都判断标记,保障数据的准确性。
2.为什么使用了notifyAll? 因为需要唤醒对方线程(如生产者唤醒消费者),使用notify的话会出现只唤醒本方线程(如消费者唤醒消费者),导致程序中的线程都处于等待状态。
/*线程同步---生产一部电脑消费一部电脑*/
public class ComputerDemo
{
public static void main(String args[])
{
Computer com=new Computer();
Producer ...
创建四个线程,两个线程运行加法运算,两个线程运行减法操作
public class FourThread
{
public static void main(String args[])
{
Res r=new Res();
Add add=new Add(r);
Mul mul=new Mul(r);
Thread t1=new Thread(add);
Thread t2=new Thread(add);
Thread t3=new Thread(mul);
Thread t4=new Thread(mul);
t1.se ...