DDL数据定义语言 语句自动提交
create drop truncate alter
DML数据操作语言 用commit,rollback结束当前事物
update delete insert
TCL事务控制语言 :commit rollback savepoint(保留点)
DCL数据控制语言 :grant
d: 用数字表达一周内的第几天 1代表周日
day: 全拼表达星期几(sunday)
month:
mon: 简拼表达月(mar)
months_between(”,”): 相差多少月
add_months(,n): 加n个月
next_day(”,’星期’): 出现下个参数的日期
last_day(”): 同月的最后一天
数据类型
number
char
varchar2(一定要有值)(空格敏感)
一些关键字
exists 存在
default 缺省(默认)
sysdate 系统时间
show user 显示用户名
rollback 回滚(到上次提交后)
commit 提交(旧事物的结束,新事物的开始)
where 过滤行
group by 分组
having 过滤组
order by 排序(自然小-->大,asc升序)desc降序
|| 拼接运算符
distinct 消除重复行
case 1 when 2 then 3 when 4 then 5 else 6 end;
decode(1,2,3,4,5,6)
cross join
inner join on 内连接
outer(left /right ) join on
union/union all 并
intersect 交
minus 差
rownum 伪列 行标号1,2,3…
rowid 伪id
constraint 给约束写个名字,可以不写(也是系统自动创建
索引的名字)
primary key 主键约束
unique key 唯一约束
not null 非空约束
check(col_name ….)
references foreign key
多个表级约束用’,’分隔.
外键后面加:
on delete cascade; delete父表时将删除子表对应的行
on delete set null; delete 父表时将子表对应的列赋值为 null
transaction 事物(undo segment 未提交保存的地方)
锁
synonym 同义詷 create synonym ytf for account;
inline view
view 约束 with check option,with read only;
index (index segment,rowid)
单行函数
数值函数:round,trunc
转换函数:to_char(,”),to_date(,”),to_number
字符类型:upper 大写,lower 小写,initcap 首字母大写,
concat 拼接 length lpad 右对齐 rpad
一般函数 nvl,ltrim/rtrim(去空格的函数 fm也行写字符串里面)
组函数
max,min,count,sum,avg
–过滤条件
in like is_null between_and =
and or not <>,!=,^=
col_name like ‘h_%’ escape ‘\’; ‘找h_开头的
(case when 1=2… then 3…
when 1=4…then 5…
else 6…
end)=decode(1,2,3,4,5,6);
from-where-group_by-having-select-order_by
–执行顺序
alter session set nls_date_format=
‘yyyy mm dd hh24:mi:ss’;
–改变session中的日期格式
alter table tab_name drop constraint_name/primary key;
–删除约束/删除主键约束
alter table tab_name drop(col_name)
–删除一列
alter table tab1_name add 表级约束语法(constraint constraint_name foreign key(col_name) references tab2_name(col_name))
–增加约束
alter table tab_name add(c1 char)
–增加一列
alter table tab_name modify(col_name null);
–将not null改为null列
alter index index_name rebuild;
–重建索引
alter procedure/package/function p_name compile;
–编译过程/包/函数
alter package pkg_ytf compile body;
–编译包体
alter trigger trig_name compile;
–编译触发器
alter trigger trig_name disable/enable
–触发器无效/有效
alter table tab_name disable/enable all triggers;
–该表所有触发器无效/有效
create index index_name on table_name(col);
–按照某表的列创建索引
create table table_name (
col_name1 类型,col_name2 类型….);
–创建表
create table table_name as select…;
–创建表,类型和数据与子查询结果一样
create or replace view as select….;
–创建视图
create sequence se_name start with 1(缺省 1) maxvalue 5
cache 3 ; (day309.sql(day08 42页面))
–创建序列号
create or replace procedure p_name(
v_name in/out/in_out type…)]is[可以定义变量]
begin exception end;
–创建过程
create or replace function f_name(…) return type is
[可以定义变量] begin end;
–创建函数
create or replace package pkg_name is end;
–创建包
create or replace package body pkg_name
is begin end;
–创建包体
insert into table_name values();
–添加一行数据
insert into table_name select….;
–添加子查询的数据
delete from table_name where…;
–删除行,表数据删除高水位线没动,表占的空间没有释放,可以回滚
drop table tab_name purge;
–删除表
drop index/view/sequence/procedure/function/package _name;
–删除索引/视图/序列号
truncate table table_name;
–删除所有记录,DDL语句自动提交,没有回滚,空间释放,不可以回滚
update table_name set col_name=….where…;
–改数据