创建表
create table person (pid int,name varchar2(20) unique,
age int check(age between 0 and 150),sex varchar(4) default '男',tp int,
address varchar(200),constraint person_pid_pk primary key(pid));
插入数据
insert into person values(0011,'刘三姐',25,'男',13930123021,'河北省曲阳县');
创建子表
create table book(bid int primary key not null,bname varchar2(20),bprice number(5,2),pid int,
constraint person_book_pid_fk foreign key(pid) references person(pid));
插入数据
insert into book values(0101,'简爱',7.85,0011);
增加部门50
select * from dept;
insert into dept values(50,'HR','HOUSTON');
在emp中插入新数据
insert into emp(empno,ename,job,sal,mgr,hiredate,comm,deptno)
values(8888,'张三','经理',9000,null,sysdate,null,50);
ROWNUM
查询前五个数据
select rownum,empno,ename,job,sal,hiredate
from emp where rownum<=5;
select * from
查询后五个数据
(select rownum rn,empno,ename,job,sal,hiredate from emp
where rownum <=10 ) temp
where temp.rn>5;
1.ORACLE采用自下而上的顺序解析WHERE子句,根据这个原理,表之间的连接必须写在其他WHERE条件之前, 那些可以过滤掉最大数量记录的条件必须写在WHERE子句的末尾.
例如:
(低效)
SELECT … from EMP E WHERE SAL > 50000 AND JOB = ‘MANAGER’ AND 25 < (SELECT COUNT(*) from EMP WH ......
最近做了一个数据诊断的项目,里面自己写了一个数据库的操作类,包含:连接数据库、读数据表、执行SQL操作,释放数据库等组成,希望对大家有用,由于水平有限,若有错误或者代码不足地方欢迎指正,谢谢。
ADOOperate.H
//////////////////////////////////////////////////////////////////////
// ......