oracle9i学习心得之一 基本SQL语句

1.SQL语句包括:


  1) 数据查询:select
  2) DML(data manipulation language):insert、update、delete、merge
  3) DDL(data definition language):create、alter、drop、rename、truncate
  4) 事务控制:commit、rollback、savepoint
  5) DCL(数据控制语言):grant、revoke

 

2.基本SELECT语句


  SELECT * | {[DISTINCT] column [alias],...}
  FROM   table;

 

例:SELECT deptno,loc
          FROM   dept;
  
3.显示表的结构


  DESC[RIBE]  tablename

 

4.表说明


1)雇员信息表(emp)

  名称     是否为空?     类型 
  EMPNO    NOT NULL    NUMBER(4) 
  ENAME                VARCHAR2(10) 
  JOB                  VARCHAR2(9) 
  MGR                  NUMBER(4) 
  HIREDATE             DATE 
  SAL                  NUMBER(7,2) 
  COMM                 NUMBER(7,2) 
  DEPTNO               NUMBER(2)
 
2)部门表(dept)

  名称     是否为空?     类型 
  DEPTNO   NOT NULL    NUMBER(2) 
  DNAME                VARCHAR2(14) 
  LOC                  VARCHAR2(13)

 

3) 薪水等级表(salgrade)
   名称     是否为空?    类型 
   GRADE                NUMBER 
   LOSAL                NUMBER 
   HISAL                NUMBER 

 

5.SELECT语句练习

例1:
        SELECT *  FROM dept;


结果:
        DEPTNO     DNAME                    LOC 
          10              ACCOUNTING       NEW YORK 
          20              RESEARCH             DALLAS 
          30              SALES                     CHICAGO 
          40              OPERATIONS        BOSTON 

          ...
  
例2:
        SELECT deptno,loc
        FROM   dept;


结果:
        DEPTNO      LOC 
          10      NEW YORK 
          20      DALLAS 
          30      CHICAGO 
          40      BOSTON 

          ...

 

6.执行SQL语句的工具:


  1)SQL*Plus工具
  2)iSQL*Plus工具
  3)PL/SQL Developer工具

 

7.算术表达式


  使用+,-,*,/可创建一个数据型或日期型数据的表达式


例1:

       SELECT ename,sal,sal+300
       FROM   emp;
结果:
        ENAME      SAL      SAL+300 
        SMITH      2000     2300 
        ALLEN      1600     1900 
        WARD       1250     1550 
        JONES      2975     3275 
        ... 
例2:
       SELECT ename,sal,12*sal+100
       FROM   emp;
结果:
       ENAME     SAL    12*SAL+100 
       SMITH     2000     24100 
       ALLEN     1600     19300 
       WARD      1250     15100 
       JONES     2975     35800 
       ...
例3:
       SELECT ename,sal,12*(sal+100)
       FROM   emp
;
结果:
       ENAME    SAL    12*(SAL+100) 
       SMITH   2000       25200 
       ALLEN   1600       20400 
       WARD    1250       16200 
       JONES   2975       36900 
       ...

8.空值NULL


  -不同于零或者空格
  -是在一种无效的、未赋值、未知的或不可用的值
 

例:
       SELECT ename,job,sal,comm
       FROM   emp;
结果:
       ENAME     JOB       SAL      COMM    
       MARTIN  SALESMAN    1250     1400 
       BLAKE   MANAGER     2850    
       CLARK   MANAGER     2450         
       TURNER  SALESMAN    1500      0 
       ADAMS   CLERK       1100

       ...
  
注:任何包含空值的算术表达式运算后的结果都为空值NULL

例:
     SELECT ename,12*sal,12*sal+comm
     FROM   emp
     WHERE  ename='BLAKE';
结果:
        ENAME  12*SAL  12*SAL+COMM 
        BLAKE   34200    
 
9.列的别名:


  1)紧跟列名或在列名和别名之间加入可选关键字AS
  2)如果别名包含空格或特殊关键字符或区分大小写则需要使用双引号

例1:
     SELECT ename AS name,sal salary
     FROM   emp;
结果:
        NAME    SALARY 
        SMITH    2000 
        ...

例2:
       SELECT ename "Name",sal*12 "Annual Salary"
       FROM  emp;
结果:
        Name      Annual Salary 
        SMITH         24000 
        ALLEN         19200

 


10.连接操作符


  1)用于列与列、列和字符之间的连接
  2)形式上是连个竖杠:||
  3)用于创建字符表达式的结果列
  
例:
     SELECT ename||job AS "Employees"
     FROM   emp;
结果:
         Employees 
        SMITHCLERK 
        ALLENSALESMAN 
        WARDSALESMAN 
        JONESMANAGER 
        ...

  4)原义字符串:
    -是包含在SELECT列表中的字符、数字或日期
    -日期和字符字面值必须用单引号引起来
    -每个字符串都会在每个数据行输出中出现

 

例:
      SELECT ename||' is a '||job AS "Employees"
      FROM   emp;
结果:
               Employees 
        SMITH is a CLERK 
        ALLEN is a SALESMAN 
        WARD is a SALESMAN 
        JONES is a MANAGER 
        ...
 

11. 消除重复行


   在SELECT子句中使用关键字DISTINCT可消除重复行
 
   例:

           SELECT DISTINCT deptno
           FROM   emp;

 

 

 

练习题


1.显示emp表结构

 

  DESC emp

 

2.显示emp表中所有列的数据

 

  SELECT * FROM emp;

 

3.显示emp表雇员编号、雇员名、薪水信息

 

  SEELCT empno,ename,sal
  FROM   emp;

 

4.显示emp表中不重复的工作类别

 

  SELECT DISTINCT job
  FROM   emp;
 
5.显示emp表中empno、sal*12、job,它们对应的别名为编号、年薪、工作类别
 
  SELECT empno "编号",sal*12 "年薪",job "工作类别"
  FROM   emp;

 

6.显示emp表的ename和sal列,要求显示的格式为:XXXX雇员的薪水为XXX。

 

  SELECT ename ||'雇员的薪水为 '||sal
  FROM   emp;

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
前 言 本讲稿(ORACLE8i 数据库基础)是作者在多年的工作和授课中的总结,主要包括两个部分,第一部分是ORACLE SQL*PLUS基础,主要讲述ORACLE 应用系统设计的基本知识和给出一些有用的实例;第二部分是介绍ORACLE PL/SQL知识,主要讲述ORACLE数据库PL/SQL程序设计所用到基本知识,这部分给出进行应用设计所必需的基础知识。这两部分的内容都尽可能做到内容简洁而全面。特点是,1.用简单明了的语句对解释各个部分的内容,省去一些理论性的解释;2.给出作者在应用设计和开发中的一些具体的例子,为软件人员提供一些借鉴,省去查阅大量资料的时间。3.给出了许多资料所没有提供的一些使用技巧,如导出触发器等。总之,内容基本上包括当前Oracle8I的最新内容。同时也覆盖了最新的ORACLE8i OCP培训大纲的内容。不仅包含ORACLE 程序设计人员、DBA所必须掌握的知识,而且还含盖了系统分析员所要求的内容。与本书(讲稿)相伴的还有《Oracle8i/9i初级数据库管理》和《Oracle8i/9i高级数据库管理》。 全书内容简练实用,可作为ORACLE 数据库管理人员参考,也可作为应用开发人员和系统分析与设计人员以及大学计算机专业教学的参考资料。由于作者水平所限,加之ORACLE的产品与内容的浩瀚,在资料的整理与收集中可能有不少错误和不妥之处,希望读者给予批评制正。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值