–数据伪列
select rownum ename from emp;
–自动编号动态生成,不是固定的
–1取出第一行记录
–2取出前n行数据
–可以先取出一行对数据的类型与格式进行观察
select * from emp where rownum = 1;
–利用伪列取出第6~10条记录
select * from (select ename ,rownum rn from emp where rownum <= 10)temp
where temp.rn >= 6 and temp.rn <= 10;
–取出第11到15条记录
select * from
(select ename ,rownum rn from emp where rownum <= 15)temp
where temp.rn >=11 and temp.rn <=15;
–类似于分页的原理currentPage lineSize,这是在Oracle中实现数据分页的核心操作
select rowid ,ename from select rowid ,ename from emp;
–rowid
ROWID ENAME
AAAR3sAAEAAAACXAAA SMITH
AAAR3sAAEAAAACXAAB ALLEN
AAAR3sAAEAAAACXAAC WARD
AAAR3sAAEAAAACXAAD JONES
AAAR3sAAEAAAACXAAE MARTIN
AAAR3sAAEAAAACXAAF BLAKE
AAAR3sAAEAAAACXAAG CLARK
AAAR3sAAEAAAACXAAH SCOTT
AAAR3sAAEAAAACXAAI KING
AAAR3sAAEAAAACXAAJ TURNER
AAAR3sAAEAAAACXAAK ADAMS
AAAR3sAAEAAAACXAAL JAMES
AAAR3sAAEAAAACXAAM FORD
AAAR3sAAEAAAACXAAN MILLER
–利用rowid取出重复数据
delete from emp
where rowid not in(
select min(rowid)
from emp
group by ename;
)
–思路是,将重复的数据编在一组之中,找到每组的rowid的最小值
–将rowid不在这些最小值中的数据删除
–常见的数据类型:varchar2(n) number(n) number(n,m)
–date日期时间数据 clob大文本数据,最大保存4G数据
–blob二进制数据,最多保存4G,不过很少用
–表达创建与使用
create table student(
sname varchar2(50)default’无名氏’,
sid number,
age number(3),
birthday date default sysdate,
introduction clob
);
–向表中增加数据
insert into student values(‘李中杰’,001,21,to_date
(‘1996_08_17’,’yyyy_mm_dd’),’比较上进,比较善良’);
–数据表的重命名
–在Oracle中,数据表是被它管理的对象
–数据字典:用户级别user_*,管理员级别bda_*,全部级别all_*
–查询一个用户全部的数据表
select * from user_tables;–包含了数据库表对象的全部信息
–重命名在本质上是更新数据字典的信息
–rename 旧的名字 to 新的名字
–截断表
–使用delete时,资源并没有被完全释放
truncate table 表名称;
–一旦表被截断,表的资源全部被释放,属于Oracle的方言
–复制表
create table 表名称 as 子查询;
create table emp10 as select * from emp where deptno = 10;
–其实就是将查询的结果保存在新建的一张表里
–只复表结构不复制数据
create table emp0 as select * from emp where 1=0;
–删除表
–drop table 表名称
–闪回技术(Flash Back),与windows的回收站类似
show recyclebin;
ORIGINAL NAME RECYCLEBIN NAME OBJECT TYPE DROP TIME
EMP0 BIN cMnx9AUoT4qNK3+t8Z7iWQ== c M n x 9 A U o T 4 q N K 3 + t 8 Z 7 i W Q == 0 TABLE 2018-08-07:11:25:07
–第二种方式
select * from user_recyclebin;
–通过回收站恢复被删除的数据表
flashback table emp0 to before drop;
–强制删除数据表:purge
drop table emp0 purge;
–从回收站删除一张表
purge table emp0;
–清空回收站
purge recyclebin;
–修改表结构,不建议使用
–数据库脚本文件,后缀.sql
–增加表中数据列
alter table student add(
gender varchar2(3)
);
–修改数据列
alter table student modify(name varchar2(50));
–删除列
alter table drop column 列名称;
–实际开发中,表一旦设计出来,就基本不会修改了
–重点:表的创建,删除,清空回收站,熟悉常见数据类型