`
yjgyjg4
  • 浏览: 118137 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

oracle 語法命令備忘

阅读更多
[/color][color=green]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
引用
1. 内联结:将两个表中存在联结关系的字段符合联结关系的那些记录形成记录集的联结。

2. 外联结:分为外左联结和外右联结,
        左联结A、B表的意思就是将表A中的全部记录和表B中联结的字段与表A的联结字段符合联结条件的那些记录形成的记录集的联结,这里注意的是最后出来的记录集会包括表A的全部记录。

右联结A、B表的结果和左联结B、A的结果是一样的,也就是说:

Select A.name B.name From A Left Join B On A.id=B.id

和Select A.name B.name From B Right Join A on B.id=A.id执行后的结果是一样的。

          3.全联结:将两个表中存在联结关系的字段的所有记录取出形成记录集的联结(这个不需要记忆,只要是查询中提到了的表的字段都会取出,无论是否符合联结条件,因此意义不大)。

        4.内外联结的区别是内联结将去除所有不符合条件的记录,而外联结则保留其中部分。外左联结与外右联结的区别在于如果用A左联结B则A中所有记录都会保留在结果中,此时B中只有符合联结条件的记录,而右联结相反

分享到:
评论

相关推荐

    Oracle存储过程学习经典[语法+实例+调用].

    #### 三、Oracle存储过程的若干问题备忘 **1. 数据表别名的使用** - **注意**: 在Oracle中,数据表别名不能使用关键字`AS`来指定。 **2. SELECT INTO语句的使用** - **要求**: 使用`SELECT INTO`时,必须确保...

    oracle存储过程学习经典入门

    关于 Oracle 存储过程的若干问题备忘 在学习 Oracle 存储过程时,需要了解一些常见问题的解决方法。例如,在 Oracle 中,数据表别名不能加 as。在存储过程中,select 某一字段时,后面必须紧跟 into,如果 select ...

    Oracle经典语法的调用

    关于Oracle存储过程的若干问题备忘 - **数据表别名**: 在Oracle中,数据表别名不能使用`AS`关键字。 - **SELECT INTO**: 当在存储过程中使用`SELECT INTO`语法时,必须确保数据库中存在相应的记录,否则会引发“NO...

    oracle存储超详细速成学习资料(语法+实例+调用)

    3. **Oracle 存储过程的若干问题备忘** - 数据表别名不能使用`AS`关键字,应该直接写为`table_name alias_name`。 - 在存储过程中,`SELECT`后的字段必须跟`INTO`指定变量,除非使用游标处理整行记录。 - `SELECT...

    oracle用户下.bash_profile文件修改

    本文档即为在安装Oracle时,对oracle用户下的.bash_profile文件进行修改的具体内容备忘。 首先,我们需要了解.bash_profile文件的作用。该文件是bash shell的配置文件之一,在用户登录时被读取执行,用于设置用户的...

    oracle存储过程学习经典[语法+实例+调用].doc

    #### 关于Oracle存储过程的若干问题备忘 1. **数据表别名不能加as**:在Oracle中,为数据表定义别名时,不使用关键字`as`,例如:`SELECT * FROM table_name t`。 2. **使用SELECT INTO**:在存储过程中,使用`...

    oracle存储过程学习经典[语法+实例+调用]

    关于Oracle存储过程的若干问题备忘中提到了几个关键点: 1. 在Oracle中,数据表别名不能加as。 2. 在存储过程中,使用select某字段时,后面必须紧跟into,这是因为需要将查询结果存储在变量中。如果select整个记录,...

    oracle存储过程学习经典[语法+实例+调用].docx

    3. **关于Oracle存储过程的若干问题备忘** - 数据表别名在Oracle中不使用`as`关键字,如:`SELECT * FROM table t;` - 在存储过程中,`SELECT`语句后跟`INTO`用于将查询结果存入变量,没有记录则会抛出`NO_DATA_...

    oracle存储过程(语法+实例).docx

    3. **关于 Oracle 存储过程的若干问题备忘** - 数据表别名不能使用`as`,应直接使用别名,如 `table t`。 - 在存储过程中,`SELECT` 后的字段必须跟 `INTO` 关键字,将结果保存到变量中,除非使用游标处理多行记录...

    Oracle PlSql 存储过程

    四、 关于 Oracle 存储过程的若干问题备忘 在使用 Oracle 存储过程时,需要注意以下几点: 1. 在 Oracle 中,数据表别名不能加 as。 在 Oracle 中,数据表别名不能加 as,这是因为 Oracle 的语法规则不允许这么做...

    oracle存储过程学习经典语法+实例+调用.doc

    **关于Oracle存储过程的若干问题备忘** 1. **数据表别名**:在Oracle中,数据表别名不需要使用`as`关键字,可以直接使用`table_name alias_name`。 2. **SELECT INTO**:在存储过程中,如果需要从查询结果中获取...

    Oracle+PlSql存储过程

    **关于Oracle存储过程的若干问题备忘** 1. 数据表别名在Oracle中不使用`as`关键字,而是直接跟别名,如`table_name alias_name`。 2. 在存储过程中,`SELECT`语句通常需要与`INTO`关键字结合,将数据插入变量。如果...

    oracle存储过程学习经典

    #### 关于Oracle存储过程的若干问题备忘 1. **数据表别名限制**:在Oracle中,使用数据表别名时不能使用`AS`关键字,这与某些其他数据库系统有所不同。 2. **SELECT INTO语法**:当使用`SELECT INTO`语句时,必须...

    oracle 存储过程学习经典

    #### 四、Oracle存储过程的基本语法 - **创建存储过程**: ```sql CREATE [OR REPLACE] PROCEDURE [schema.]procedure_name (argument [IN|OUT|INOUT] datatype [, argument [IN|OUT|INOUT] datatype]) [AUTHID ...

    学习ORACLE的技巧

    4. 举一反三,积累经验:解决问题后,思考类似问题可能的解决方案,通过编写备忘录记录下来。这有助于加深理解,提高问题解决能力。对于重要问题,可以整理成案例分析,以便日后参考。 5. 不求甚解,适时放手:学习...

    Oracle PlSql存储过程

    **关于Oracle存储过程的若干问题备忘** 1. **数据表别名**:在Oracle中,为表指定别名时不使用`AS`关键字,而是直接使用`table_name alias_name`。 2. **SELECT INTO**:在存储过程中,使用`SELECT`语句时,若要将...

    oracle存储过程学习经典入门.doc

    **关于Oracle存储过程的若干问题备忘** 1. 数据表别名在Oracle中不需要`AS`关键字,可以直接使用`table_name alias_name`。 2. `SELECT`语句在存储过程中如果要获取单行数据,必须使用`INTO`指定变量接收,如`SELECT...

Global site tag (gtag.js) - Google Analytics