Oracle基础归档

Posted by dingqiang.l on March 8, 2018

查询 SELECT

  1. 第一种写法:SELECT column_1,column2,… FROM table_name;(推荐)
  2. 第二种写法:SELECT * FROM table_name;(不推荐)

删除 DELETE

  1. 删除表中所有数据:DELETE FROM table_name;
  2. 删除表中指定数据:DELETE FROM table_name WHERE 条件

插入 INSERT

  1. 第一种写法:INSERT INTO table_name(column_1,column_2,…) VALUES(value_1,value_2,…);
  2. 第二种写法:INSERT INTO table_name VALUES(column_1,column_2,…);

    注意:插入的值数量要与字段数量一致,否则会出错

插入 UPDATE

  1. 写法:UPDATE table_name SET column_1 = value_1,column_2 = value_2,…WHERE 条件;

添加注释

  1. 添加表的注释:CONMENT ON TABLE table_name IS ‘注释内容’;
  2. 添加字段注释:CONMENT ON COLUMN table_name.column_name IS ‘注释内容’;

字符串截取,substr()函数

  1. 语法:substr(要截取的字符串,截取的起始位置,截取的长度);//返回截取的值
  2. 例子:substr(‘Hello World’,0,1) //返回结果为 ‘H’ *从字符串第一个字符开始截取长度为1的字符串

    起始位置为负数时,表示字符从右边开始取

decode()函数

  1. decode(字段或字段的运算,值1,返回值1,值2,,返回值2,值3,,返回值3,…,默认值)
  2. 运行的结果是,当字段或字段的运算的值等于值1时,得到结果为返回值1,等于值2时,得到结果为返回值2,…,否则默认值
  3. 如果条件复杂,可以用 case when then表达式

    CASE 字段或字段的运算 WHEN 表达式1 THEN 结果1 WHEN 表达式1 THEN 结果2 … WHEN 表达式n THEN 结果n ELSE 默认值

内连接 INNER JOIN

  1. 含义:只返回符合匹配条件的两个表的列的结果集
  2. 语法:SELECT column_1,column_2,… FROM table_name1 INNER JOIN table_name2 ON或WHERE 条件

外连接

1、外连接分为左连接、右连接、完整外部联接 2、左连接

  • 左连接也称左外连接:LEFT JOIN 或 LEFT OUTER JOIN
  • 语法:SELECT t1.column_1,t1.column_2,…,t2.column_1,t2.column_2,… FROM table_name1 t1 LEFT JOIN table_name2 t2 ON 条件
  • 左连接所得的结果集包含了左表子句中指定的左表的所有行,而不仅仅是联接列所匹配的行,加上根据条件返回右表相应字段,不匹配则值为NULL

3、右连接

  • 右连接也称右外连接:RIGHT JOIN 或 RIGHT OUTER JOIN
  • 语法:SELECT t1.column_1,t1.column_2,…,t2.column_1,t2.column_2,… FROM table_name1 t1 RIGHT JOIN table_name2 t2 ON 条件
  • 右连接所得的结果集包含了右表子句中指定的右表的所有行,而不仅仅是联接列所匹配的行,加上根据条件返回左表相应字段,不匹配则值为NULL

4、完整外部联接:full join 或 full outer join

  • 完整外部联接返回左表和右表中的所有行。当某行在另一个表中没有匹配行时,则另一个表的选择列表列包含空值。。
  • 语法:SELECT t1.column_1,t1.column_2,…,t2.column_1,t2.column_2,… FROM table_name1 t1 FULL JOIN table_name2 t2 ON 条件

    字符串连接符

    1. 使用   链接,例如:字段1   ’-‘ 字段2 = 字段1-字段2

char类型转时间格式

  1. 20180409154900 :to_date(strDate, ‘yyyy-mm-dd,hh24:mi:ss ‘) = 2018-04-09 15:49:00
  2. select TO_DATE(‘20180410181630’,’yyyy-mm-dd,hh24:mi:ss’) from dual;