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