oracle 語法命令備忘

1.利用现有的表创建新表: 
  create table <new_Table> as select {*|colunm} from 旧表name 
  如果加入where 1=2 则不包含数据表中的数据。 
2. 日期函数 
  2.1〉ADD_MONTHS:返回给指定的日期加上指定月数后的日期值 格式:  add_months(d,n)其中 d 是日期,n 是月数 例: 
select emp_date,add_months(emp_date,2) from emp; 
  2.2> MONTHS_BETWEEN :返回两个日期之间的月数 格式:months_between(d1,d2) 
  2.3> LAST_DAY: 返回指定日期当月的最后一天的日期值 格式:last_day(d) 
  2.4> ROUND: 返回日期值,此日期四舍五入为格式模型指定的单位 格式: round(d, [fmt])  例: round('2009-05-05','day或year或month') 
  2.5> NEXT_DAY: 返回指定的下一个星期几的日期 格式:next_day(d,day) 
   例:next_day(sysdate,'星期一') 
  2.6> TRUNC:将指定的日期截断为由格式模式指定的单位日期 
    例:trunc('2005-08-27','year') 截断后为2005-01-01 按年截断 
     trunc('2005-08-27','day') 截断后为2005-08-20 按周截断 
   2.7> EXTRACT: 提取日期中特定部分 例: 
   extract(year from sysdate) year可以替换成month,day,hour等 
3.执行一个sql脚本命令:start file_name或 @file_Name 
4.回滚:ROLLBACK 提交commit 
5.是否显示用dbms_output.put_line包进行输出的信息: 
  set serverout {on|off} 
6.连接到指定的数据库: 
connect user_name/password @数据库名 
7.创建表空间语法: 
create TABLESPACE 表空间名 DATAFILE '文件名称路径' 
size 10M AutoEXTEND ON; 
例:create tablespace testSpace 
    datafile 'd/oracle/data/testSpace.dbf' 
    size 10M 
    Autoextend on; 
autoextend on用来启用和禁用数据文件的自动扩展 
8.创建新用户并授权 
8.1> create user 用户名 IDENTIFIED BY 密码 
       [default 表空间名][temporary 临时表空间] 
8.2> GRANT CONNECT TO 用户名 
       即授权给此用户连接权限并可以建立表 
格式 : grant 关键字 to 用户 
8.3>撤销用户权限: 
      revoke {update|关键字} on 表名 from 用户名; 
9. 修改用户口令: 
alter user 用户名 identified by 新密码 
10.删除拥有模式对象的用户:drop user 用户名 cascade; 
11.oracle中的伪例: 
  11.1>rowid :返回该行地址,可以使用rowid来定位表中的一行 
  11.2>rownum:即第一行为1第二行为2,以此类推 
  例:select rowid,列名 from 表 where .... 
     select * from 表 where rownum<11 
12.添加列或修改 
12.1> alert table table_name add (column type); 
12.2> alert table table_name drop column; 
12.3> alert table table_name modify(column type) 
13.删除表命令: 
  13.1>truncate table table_name 
即删除表中所有数据,但保持表结构,无法回滚,速度快于delete 
  13.2>delete table table_name 可以回滚,其他同上,速度慢过truncate 
13.3>drop table table_name 即删除表和所有数据 
14.select 中的关键字 
  distinct:只返回不同的列值 
例:select distinct column from table_name; 
15.创建序列命令: 
create sequence 序列名 
[start with integer]-- 第一个序列号 
[increment by integer]-- 序列号的间隔 
[maxvalue integer|nomaxvalue] --序列号最大值 nomaxvalue默认 
[minvalue integer|nominvalue] --最小值 
[cycle|nocycle] --cycle指定序列在到达最大或最小值后将继续从头开始生成 
[cache integer|nocache] --预选分配一组序列,可不写,默认分配20个 
  15.1>访问序列关键字: 
   nextvalue:返回序列的下一个值 
   currval:返回序列当前值 
   例:select 序列名.currval from dual; 
16.创建视图:create or replace view 视图名 
as select .... 
[with check option[constraint constraint]] --指定只能插入或更新视图可以访问的行 
[with read only]--确保在此视图中不能进行任何操作 
17.创建索引命令 
create index index_name on table_name(column) 
[tablespace tablespace_name] --指定表空间 
18.>语法:if-then--else 
  IF condition THEN 
 Statements 1; 
 Statements 2; 
 .... 
  END IF 
/**************** 
IF..THEN...ELSE 
语法: 
IF condition THEN 
 Statements 1; 
 Statements 2; 
 .... 
ELSE 
 Statements 1; 
 Statements 2; 
 .... 
END IF  

  如果条件condition为TRUE,则执行THEN到ELSE之间的语句,否则执行ELSE到END IF之间的语句。 

  IF 可以嵌套,可以在IF 或IF ..ELSE语句中使用IF或IF..ELSE语句。 

if (a>b) and (a>c) then 
  g:=a; 
else 
  g:=b; 
  if c>g then 
   g:=c; 
  end if 
end if 

  IF..THEN..ELSIF 

  语法: 

IF condition1 THEN 
 statement1; 
ELSIF condition2 THEN 
 statement2; 
ELSIF condition3 THEN 
 statement3; 
ELSE 
 statement4; 
END IF; 
 statement5; 
如果条件condition1为TRUE则执行statement1,然后执行statement5,否则判断condition2是否为TRUE,若为TRUE则执行statement2,然后执行statement5,对于condition3也是相同的,如果condition1,condition2,condition3都不成立,那么将执行statement4,然后执行statement5。 

19.case语法:case '...' when.....then.....else...end case; 
20.创建过程和函数create or repcace procedure 过程名[(parm1,parm2,...)] 
{is|as} 
[此处可以声明变量] 
begin  ......... end 过程名 
21.函数function 
create or repcace function function_name[(parm1,...)] 
return type---返回类型 
{is|as} 
[声明变量] 
begin .....end function_name 
22.声明显示游标: 
cursor cursor_name[(parm1,parm2)] 
[return 行类型] is select ..... 
控制游标使用: 
open:打开游标 
fetch:用于从游标中提取行数据 
例:fetch 游标名 into 变量 
close:关闭游标 
逻辑运算符  and or 例:if(...and ...).... 
23.查询多列合并为一列使用: 
select colum1||colum2 from table_name 
或者 select concat(colum1,colum2) from table_name

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值