3.Oracle_3

1. 伪列:rowid和rownum

  • rowid: 逻辑结构,可以找打数据具体的存放位置。唯一标记一行记录
  • rownum: 行号,一般分页,获取前几条
-- 5 - 10 
-- rownum不能写大于1的条件
select *
from
(select t1.*, rowid as yyy, rownum as xxx
from emp t1) tt1
where tt1.xxx > 5 and tt1.xxx < 10;

2. DDL:

2.1 create table

create table (
字段1 类型 [约束],
。。。。
);

2.1 alter table 修改列

  • 添加列

    alter table 表名  add  列 类型;
    
  • 删除列??

    -- 删除列
    alter table A1 drop column H;
    
    -- 修改列:
       -- 类型
    truncate table A1; -- 截断清空表中的数据
    alter table A1 modify G number(5);
    -- 列名
    alter table A1 rename column g to G1;
    
    -- 摧毁表
    drop table A1;
    
  • truncate table A1; – 截断清空表中的数据

create table…as select…: 根据检索结果创建表

-- DDL create table ... as select.. 
create table emp_bak1 as
   select * from emp;
select * from  emp_bak1;
CREATE TABLE emp_bak2 
     AS SELECT * FROM emp
     WHERE 1 = 2;

3. DML:

  • distinct: 去重:重复的行

  • 别名:

    
    select distinct job
    from emp;
    -- 别名:
    -- 表别名:在表的后面加上特殊的名字
    select t1.*
    from emp t1;
    -- 列的别名:在列后 加上 【AS】 特殊名
    select 1 + 1 as jisuan
    from dual;
    select t1.ename, t1.sal sal1, sal as sal2
    from emp t1;
    

3.2 DML: Insert

  • insert into 表名 (列1, 列2.。) values (值1, 值2.。);
  • insert into 表名 value (值1, 值2.。。。); 列必须写全
  • insert into 表名 select … ; 查询结果插入表。
-- DML: insert:
insert into emp_bak1 (empno, ename, job, mgr, hiredate, sal, comm, deptno)
                   values (8001, 'TOM', null, 7369, to_date('1983-01-02', 'yyyy-mm-dd'),
                   null, 0, null);

                   
select * from emp where deptno = 30;
truncate table emp_bak1;
select * from emp_bak1;
insert into emp_bak1 (select * from emp where deptno = 30)
-- select * from emp_bak1 where job is null;

3.3 DML: update更新

  • update 表名 set 列=值 【,列2=值。。。】 where 条件
-- 给所有30部门加10%工资
update emp_bak1 set sal = sal * 1.1 where deptno = 30
select * from emp_bak1;

3.4 DML : delete删除

  • delete from 表名 【where 条件】

    select * from emp_bak1;
    delete from emp_bak1 where deptno = 30;
    delete emp_bak1 where deptno = deptno; 
    

4 TCL: 事务控制:ACID

A: 原子性: 不可再分

C: 一致性:前后状态一致, 一堆操作commit就都进去了。rollback就都回去

I: 隔离:

在这里插入图片描述

D: 持久性: commit就真的变了。

  • commit; 提交
    • CURD增删改查-CRD – 提交DML操作
  • rollback; 回滚: 上一次commit或者DDL
  • savepoint; 保存回滚点
  • 事务的终点: commit或rollback或DDL(默认commit功能)
rollback to aa; 
savepoint aa;
rollback;
commit;

5 运算:

算术+ - * /

比较> < = <= >= != <> ^=

逻辑 and or


-- 20号部门的经理
select *
from emp
where deptno = 20 or upper(job) = upper('MANAGER'); -- and
    • / `

比较> < = <= >= != <> ^=

逻辑 and or


-- 20号部门的经理
select *
from emp
where deptno = 20 or upper(job) = upper('MANAGER'); -- and
posted @ 2021-04-15 12:21  剑心空明  阅读(4)  评论(0编辑  收藏  举报  来源