关闭

day20 分页查询 事务 序列 索引 视图

标签: inserttabledelete数据库processingsql
410人阅读 评论(0) 收藏 举报
分类:


 SQL:
    rownum

S_emp

25
select  rownum , first_name from s_emp;
select  rownum , first_name from s_emp  where rownum < 10;
//no rows
select  rownum , first_name from s_emp  where rownum > 10 and rownum < 20;
select  rownum , first_name from s_emp  where rownum between 10 and 20;

select  rownum , first_name from s_emp  where rownum = 1;
select  rownum , first_name from s_emp  where rownum > 1;

分页:

select  num , first_name from  (
select first_name ,rownum  num from   s_emp
)   where num  between 11 and  20;

//查所有数据


伪列

rowid


create table  testtable( id  number  , name  varchar2(32));
insert into  testtable  values (1,'jack');
insert into  testtable  values (1,'jack');
insert into  testtable  values (1,'jack');
insert into  testtable  values (1,'jack');
insert into  testtable  values (1,'jack');
insert into  testtable  values (1,'jack');
insert into  testtable  values (1,'jack');
用一条SQL语句: 删除
insert into  testtable  values (1,'jack');


select rowid , id , name  from  testtable;

delete  from  testtable  where  rowid  != (
  select  rowid  from  testtable  where rownum = 1
);


分页
update  delete

       --delete
   delete  from  table_name  where  xxx  ;
   delete from  table_name;
   truncate  table  table_name;
  
      --update
   update   testtable   set name ='dht' where id = 1;
  
   --把 s_emp 表中的41  45 部门员工,工资11开始,涨100
   update   s_emp   set salary = salary + 100  where dept_id  = 41 or dept_id = 45;
  
   --给41部门涨100  45 降100 50 部门涨200
  
  
  

transaction 事务:

 ACID,指数据库事务正确执行的四个基本要素的缩写.包含:
  原子性(Atomicity)、一致性(Consistency)、隔离性(Isolation)、持久性(Durability)。
  一个支持事务(Transaction)的数据库系统,必需要具有这四种特性,否则在事务过程
  (Transaction processing)当中无法保证数据的正确性,交易过程极可能达不到交易方的要求.

数据库事务隔离级别:


脏读取(Dirty Reads):
不可重复读取
两次更新问题
虚读(Phantom Reads


commit :提交事务
rollback 回滚事务
savepoint   aaa  设置保存点:




sequences 序列:

CREATE  TABLE   TESTTABLE(
     ID   NUMBER  PRIMARY KEY,
NAME  VARCHAR2(32)
);

Sequences
        创建序列:
CREATE SEQUENCE name
[INCREMENT BY n]
[START WITH n]
[{MAXVALUE n | NOMAXVALUE}]
[{MINVALUE n | NOMINVALUE}]
[{CYCLE | NOCYCLE}]
[{CACHE n | NOCACHE}]

create  sequence   my_Seq;

nextval
        currval

          select   my_seq.nextval  from  dual;
create  sequence   my_Seq2;
 
  insert into    testtable  values ( my_seq.nextval , 'aaa'  );

CREATE SEQUENCE  seq INCREMENT BY 100 START WITH 1000;

index: 索引
  
   查询,提升查询效率
   查询多,增删少
  
   s_emp
  
   first_name
   last_name
   salary
   dept_id
   ......
  
   CREATE INDEX index
                  ON table (column[, column]...);
           create  index   test_index  on   testtable (name);
  
  
  
view :视图

s_emp
1.保证数据安全性
2.简化SQL查询

create  view   dept_43_view   as
  select  *  from  s_emp  where dept_id = 43;
 
  select  *  from  dept_43_view;
 

   create  view    select_all_dept   as 
    select  min(salary)  minsalary , avg(salary) avgsalary , e.dept_id  dept_id, min(d.name) name
   from   s_emp e  ,  s_dept  d
      where  e.dept_id = d.id
     group by (dept_id)
   having  dept_id not in (41, 43)
    and avg(salary) >
    (select  avg(salary)  from  s_emp   where  dept_id = 10)
     order  by dept_id  ;



mysql5.0

   limit
  
      select  *  from  table_name  limit  10,10;

0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:329045次
    • 积分:3674
    • 等级:
    • 排名:第9158名
    • 原创:74篇
    • 转载:67篇
    • 译文:0篇
    • 评论:15条
    最新评论