第一章:SQL数据操作和查询

1.总结:

 Oracle SQL 语句中有数据操纵语言(DML)、数据定义语言(DDL)、           数据控制语言(DCL)、事务控制语言(TCL)等等。

 DML 语句包括增删改查语句,DDL 语句包括数据库对象创建、修改和删除语句,数据控制命令包括 GRANTREVOKE 等,事务控制命令有 COMMITROLLBACK 等。

 数据库中建表常用的类型有:数字类型number(p,s),可变字符串varchar2(length),日期 date。

 Oracle 中 default 是一个值,在 Oracle 中不存在 default 约束。

 Oracle 的增删改语句与 SQL Server 基本一致,都是使用 INSERTUPDATEDELETE完成。

 Oracle 高级查询中要注意:DISTINCTNULLIN、BETWEEN…AND…。 集合操作有:UNIONUNION ALL、INTESECT、MINUS。

 联接查询有内联接和外联接。

2.练习:

--创建一查询,显示与Blake在同一部门工作的雇员的项目和受雇日期,但是Blake不包含在内。
select ename,hiredate from emp where deptno in (select deptno from emp where ename='BLAKE') and ename <> 'BLAKE';

--显示位置在Dallas的部门内的雇员姓名、变化以及工作
SELECT * FROM EMP WHERE DEPTNO IN (SELECT DEPTNO FROM DEPT WHERE LOC='DALLAS');

--显示被King直接管理的雇员的姓名以及工资。
SELECT A.* FROM EMP A,EMP B WHERE A.MGR=B.EMPNO AND B.ENAME='KING';

--创建一查询,显示能获得与Scott一样工资和奖金的其他雇员的姓名、受雇日期以及工资
SELECT * FROM EMP WHERE (SAL,NVL(COMM,0))=(SELECT SAL,NVL(COMM,0) FROM EMP WHERE ENAME='SCOTT');
--创建一查询,显示与 Blake 在同一部门工作的雇员的项目和受雇日期,但是 Blake不包含在内。
  SELECT ENAME, JOB ,HIREDATE FROM EMP WHERE DEPTNO=(SELECT DEPTNO FROMEMP 
  WHERE ENAME='BLAKE') AND ENAME<>'BLAKE';
--显示位置在 Dallas 的部门内的雇员姓名、变化以及工作。
  SELECT ENAME,JOB FROM EMP WHERE DEPTNO=(SELECTDEPTNO FROM DEPT WHERE  LOC=’DALLAS’);
--显示被 King 直接管理的雇员的姓名以及工资。
   SELECT E.ENAME,E.SAL FROM EMP E,EMP EP 
   WHEREE.MGR=EP.EMPNO AND EP.ENAME='KING';
--创建一查询,显示能获得与 Scott 一样工资和奖金的其他雇员的姓名、受雇日期以及工资。
  SELECT ENAME,SAL,HIREDATE FROM EMP WHERE SAL=(SELECT SAL 
  FROM EMP WHERE ENAME='SCOTT')AND NVL(COMM,0)=(SELECT NVL(COMM,0) 
  FROM EMP WHERE ENAME='SCOTT') AND BENAME<>'SCOTT';

你可能感兴趣的:(数据库笔记)