Sql基础篇

2015/02/01 Oracle

Sql基础篇

数据库语言:

  • 数据库操作语言:DML(data manipulation language) select ,insert ,update ,delete ,merge
  • 数据定义语言:DDL(data definition language) create alter drop truncate
  • 事务控制语言:TCL(transation control language) commit rollback savepoint
  • 数据控制语言:DCL(data control language) grant revoke

    数据类型

    常用的数据类型转换

    常见转换:date char number 三者之间的转换

    1. select TO_DATE(‘2015-08-19’,’YYYY-MM-DD’) AS A_DAY FROM DUAL;
    2. select TO_CHAR(SYSDATE,’YYYY-MM-DD’) AS A_DAY FROM DUAL;
    3. select TO_TIMESTAMP(‘2015-08-19 17:40:32.11’,’YYYY-MM-DD HH24:MI:SS.FF’) AS A_DAY FROM DUAL;
    4. select TO_CHAR(SYSTIMESTAMP,’YYYY-MM-DD HH24:MI:SS.FF’) AS A_DAY FROM DUAL;
    5. select TO_NUMBER(REPLACE(TO_CHAR(SYSDATE,’YYYY-MM-DD’),’-‘)) AS A_DAY FROM DUAL;

      常用函数

      decode函数 select deptno,decode(deptno,10,’部门1’,20,’部门2’,’部门3’) from emp;

case表达式 `

select deptno,case when deptno=10 then 部门1’ when deptno=20 then ‘部门2’else’部门3’ end)from emp`;

学习使用函数:

trunc,add_months,month_between,last_day,replace,substr,从cat,abs,round

分组

组函数 sum min max avg count
分组特性 group by ....having  ## 集合查询操作 ##
  • 交叉连接(笛卡尔积)
  • 等值,非等值连接
  • 内连接
  • 外连接(左外,右外,全连接)
  • 自然连接
  • 集合运算
    1. union(求合集,重复记录只显示一次)
    2. union all (求合集,显示所有记录)
    3. intersect(求交集,显示公共的数据部分)
    4. minus(集合相减,那个表在前就以那个表为主)

      子查询

      非关联子查询:主查询和子查询是相对独立的,唯一的,子查询查询结果和主查询进行比较 select a.ename,a.sal from emp a where a.deptno=(select b.deptno from dept b where b.loc=’new york’) 关联子查询:主查询和子查询是产生关联关系的,主查询的一个列字段代入到子查询中进行比较 select a.deptno,(select b.loc from dept b where b.deptno=a.deptno) from emp a; in和exists ,in是做全表扫描,exists是做是否存在,非全表扫描。

      ROWNUM使用

      使用ROWNUM需要注意:使用”<”可以查询结果,使用”>”没有结果,必须使用别名的形式查询,”>”才能有结果

      select * from emp where rownum <5
      select  * from(select rownum no ,id,name from student) where no>2;
      

Search

    Table of Contents