oracle_sql

----------------------------------------------------------------------sql-----------------------------------------------------------------

 # select后的字段列表必须包括在group by后的字段中,group by后不可跟别名,having子句对分组进行过滤,只有group by后的字段才可作为having的条件

select columns from table_name group by columns

# 多表插入,多表插入的values必须使用select查出来的数据

# insert all,在每个判断条件时,是以course所有数据为基础

insert all when cid = '01' or cid = '02' then into temp when cid != '02' then into temp2 select cid from course c

# insert first,一个判断条件执行后在course表中选取数据,下一个判断条件,是以上一个判断后剩余的数据为基础

insert first when cid = '01' or cid = '02' then into temp when cid != '02' then into temp2 select cid from course c

# merge语法

# using后查询结果为空,后面语句都不会执行

MERGE INTO [your table-name] [rename your table here] 
USING ( [write your query here] )[rename your query-sql and using just like a table] 
ON ([conditional expression here] AND [...]...) 
WHEN MATCHED THEN [here you can execute some update sql or something else ] 
WHEN NOT MATCHED THEN [execute something else here ! ] 

----------------------------------------------------------------------优化-----------------------------------------------------------------

# 需要返回的数据越多,执行查询的时间越长

# order by放在语句最后,在排序前会计算排序数据的大小,选择在内存或是临时磁盘空间来排序,数据量越大,排序开销越大

----------------------------------------------------------------------表-----------------------------------------------------------------

# 创建表

create table table_name (column_name1 varchar(10),column_name2 number(1))

create course2 as select * from course;

alter table table_name1 rename to table_name2   # 修改表名

desc table_name  #查看表字段

select * from all_tables where owner = 'usern_name'   #查看所有表

# 增加表字段

alter table fp_t_ctagency add (admdivcode varchar2(9) not null);

comment on table fp_t_ctagency.admdivcode is '行政区划编码';

# 查看注释

select * from user_tab_comments 

# 创建表空间

create tablespace test datafile '/home/severus/test.dbf' size 200M;

# 创建用户,指定表空间

create user test identified by test;

----------------------------------------------------------------------权限-----------------------------------------------------------------

# 赋予权限(role),connect连接,resource连接+数据库对象,dbc连接+数据库对象+数据库结构

grant connect,resource,dba to test

# 查看用户所具有的权限

select * from dba_sys_privs where grantee = 'test';

# 查看当前用户权限

select * from user_sys_privs;

# 查看当前会话权限

select * from session_sys_privs;

-------------------------------------test-----------------------------------

# 通配符 % _

# 使用通配符效率下降;通配符%在搜索内容开头搜索效率最低

# commit,rollback

# 已经提交的事务不可回滚,

# 事务处理用来管理 INSERT 、 UPDATE 和 DELETE 语句,不能回退 CREATE 或 DROP 操作

# 执行sql脚本,不需后缀

@sql_file_name

start sql_file_name

----------------------------------------------------------------------命令--------------------------------------------------------------

list     #查看sql缓冲器

你可能感兴趣的:(Oracle)