Oracle 语言基础

 1,基本 select 语句

    select  *|{[distinct] column|expression [alias],...}

      from  table;

 distinct 删除重复行

2,过滤和排序

  where 子句紧随 from子句

  字符和日期要包含单引号中 默认日期格式是DD-MON-RR;

  比较运算 = ,>, >=, <, <=,<>不等于也可以是(!=) 

    还有between and  ,in(set)  ,like(%代表零个或者多个字符,_代表一个字符),   is  null ,  escape  回避特殊符号的 

  逻辑运算   AND ,OR,NOT

  GRDER BY 子句    (ASC 升序  DESC 降序)   GRODER BY 子句在select语句的结尾。

3,单行函数

  大小写控制函数 LOWER() 变小写 , UPPER()变大写  ,   INITCAP() 首字母大写

  字符控制函数 CONCAT(连接),SUBSTR(截取),LENGTH(计算长度),INSTR(截取的字符在哪位置),LPAD(对左边进行填充),TRIM(删除两边的空格,也可以指定),RPAD(对右边进行填充);

  数字函数 ROUND(四舍五入),TRUNC(截取),MOD(求余)

  日期  MONTHS_BETWEEN(‘01-JAN-95‘,‘11-JAN-94‘) 两个日期相差的月数    ADD_MONTHS(‘11-JAN-94‘,6) 向指定日期的下一个日期

     NEXT_DAY(‘01-SEP-95‘,‘FRIDAY‘ )指定日期的下一个日期      LAST_DAY(‘01-FEB-95‘)  本月的最后一天

      ROUND (‘SYSDATE‘,‘MONTH‘) 四舍五入,  TRUNC (‘SYSDATE‘,‘MONTH‘) 截断

  转换函数  TO_CHAR()函数对日期的转换和对数字的转换 ,TO_NUMBER 将字符转换成数字, TO_DATE()将字符转换成日期

  通用函数  NVL() 将空值转换一个已知的值,NVL2()不为空返回第一个否则返回第二个,NULLIF()相等返回null不相等返回第一个

          COALESCE()如果哦第一个表达式为空,则返回下一个表达式,找到一个不为空的值。

  条件表达式 CASE  id    WHEN    ‘ ‘   THEN

              WHEN    ‘ ‘   THEN

                ELSE   eid    

        DECODE (id ,  ‘ ‘ , value

                 ‘ ‘ , value

                   ‘ ‘ , value

                    salary)

4,分组函数

  AVG(平均值), SUM(合计),MIN(最小值),MAX(最大值),COUNT(记数)   

  组函数忽略空值 使用NVL函数是分组函数无法忽略空值

  可以使用GROUP BY 子句将表中的数据分成若干组

  在select 列表中所有未包含在组函数中的列都应该包含在GROUP BY 子句中

  注意:不能在WHERE子句中使用组函数

      不能在HAVING子句中使用组函数

5,多表查询

  自然连接

    NATURAL JOIN 子句 会以两个表中具有相同名字的列为条件创建等值连接

    USING 子句 可以使用USING子句指定等值连接中需要用到的列 

    NATURAL JOIN 和USING 子句经常同时使用

    ON 子句创建连接 可以使用ON子句指定额外的连接条件 这个连接条件是与其它条件分开的ON子句使语句具有更高的易读性

  CROSS JOIN 产生叉集和笛卡尔集是相同的

  外连接 (+)显示 没有+号的不满足条件的数据

    左外连接  LEFT OUTER JOIN

    右外连接 RIGHT OUTER JOIN 

    满外连接 FULL OUTER JOIN

6,子查询

    单行子查询  =,>=,>,<,<=,<>

    多行子查询 IN,ANY,ALL

7,集合运算

    UNION/UNION ALL 并集

    INTERSECT 交集

    MINUS 差集

8,DML数据操作语言

  INSERT 语句 插入

  UPDATE 语句 更新

  DELETE 语句 删除

    DELETE和TRUNCATE

        DELETE操作可以rollback 可以闪回 可能产生碎片,并且不释放空间

        TRUNCATE 清空表

9,数据库事务

  一个或者多个DML语句

  一个DDL语句

  一个DCL语句

  事务以第一个DML语句的执行作为开始,以下面的其中之一作为结束

                        显示结束:commit rollback

                        隐式结束(自动提交):DDL语言,DCL语言 exit(事务正常退出)

                        隐式回滚(系统异常终止):关闭窗口,死机,掉电

  使用 SAVEPOINT语句在当前事务中创建保存点

  使用ROLLBACK TO SAVEPOINT语句回滚到创建的保存点

10,数据库的隔离级别

  READ UNCOMMITTED (读未提交数据)

  READ COMMITED(读已提交)  oracle默认级别

  REPEATABLE READ(可重复度)  mysql默认级别

  SERIALIZABLE(串行化)

11,创建和管理表

  CREATE TABLE语句 必须具备CTEATE TABLE权限

  数据类型                   描述

  VARCHAR2(SIZE)     可变长字符数据

  CHAR(SIZE)       定长字符数据

  NUMBER(P,S)    可变长数值数据

  DATE        日期型数据

  LONG        可变长字符数据,最大可以达到2G

  CLOB        字符数据,最大可以达到4G

  RAW AND LONG RAW  原始的二进制数据

  BLOB          二进制数据,最大可达到4G

  BFILE          存储外部文件的二进制数据,最大4G

  ROWID          行地址

  ALTER TABLE 语句

      ADD追加一个新列

      TABLE ALTERED 修改一个列

      DROP COLUMN 删除一个列

  DROP TABLE 语句 删除表   不能回滚 但是可以闪回

  RENAME   TO 语句  改变对象的名称

  TRUNCATE   TABLE 语句  清空表  不能回滚  

约束

  NOT NULL  不为空

  UNIQUE  唯一

  PRIMARY  KEY 主键

  FOREIGN KEY 外键

  CHECK 定义每一行记录所有必须满足的条件

12,其它数据看对象

  视图 建立在已有表的基础上

    CREATE (OR REPLACE)  VIEW   

        AS 

    视图定义中包含以下元素不能DELETE(组函数,GROUP BY 子句,DISTINCT 关键字,TOWNUM 伪列)

    视图中定义包含以下元素之一时不能使用UPDATE(组函数,GROUP BY子句,DISTINCT 关键字,ROWNUM 伪列,列的定义为表达式)

        DROP VIEW VIEW; 删除视图

  序列 CREATE SEQUENCE 定义序列

      NEXTVAL 返回序列中下一个有效的指,任何用户都可以引用

      CURRVAL 中存放序列的当前值

      NEXTVAL 应在 CURRVAL 之前指定 二者应同时有效

  索引

      自动创建:在定义 PRIMARY KEY 或者UMIQUE 约束后系统自动在相应的列上创建唯一性索引

      手动创建:用户可以在其他列上创建非唯一的索引,以加速查询

      CREATE INDEX index

        ON table

      同义词使用同义词访问相同的对象

          方便访问其它用户的对象

          缩短对象名字的长度  

          CREATE SYNONYM  synonym

                  FOR  object

 

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。