您的位置:首页 > 数据库 > Oracle

Oracle 11g 学习二:scott表结构、简单查询、限定查询和数据排序

2014-07-31 21:28 471 查看
一、scott用户下的表结构

    使用SQL命令:SELECT * FROM tab ;    取得scott用户下的所有表名单

    使用SQL命令:DESC 表名称 ;         取得相应表的表结构

    scott用户下共存在四张表,分别是:DEPT、EMP、SALGRADE、BONUS

    (1) 部门表:DEPT 

        1. DEMPTNO    NUMBER(2)        部门编号,由2位数字组成

        2. DNAME      VARCHAR2(14)     部门名称,由14位字符成

        3. LOC        VARCHAR2(13)     部门位置,由13位字符组成

    (2) 雇员表:EMP

        1. EMPNO      NUMBER(4)        雇员编号,由4位数字组成

        2. ENAME      VARCHAR2(10)
    雇员姓名,由10位字符组成

 
      3. JOB        VARCHAR2(9)      工作岗位,由9位字符组成

 
      4. MGR        NUMBER(4)        雇员对应领导编号,领导也是雇员

 
      5. HIREDATE   DATE             雇员雇佣日期

        6. SAL        NUMBER(7,2)     基本工资,其中两位小数,五位整数,共七位

        7. COMM       NUMBER(7,2)     奖金或佣金,一般只用销售人员有

        8. DEPTNO     NUMBER(2)        雇员所在部门编号

    (3) 工资等级表:SALGRADE

        1. GRADE      NUMBER           工作等级

        2. LOSAL      NUMBER           此等级的最低工资

        3. HISAL      NUMBER           此等级的最高工资

    (4) 工资表:BONUS

        1. ENAME      VARCHAR2(10)     雇员姓名

        2. JOB        VARCHAR2(9)      工作岗位
        3. SAL        NUMBER 
         基本工资
        4. COMM       NUMBER
          奖金
二、简单查询
    1、SQL(Structured Query Language,结构查询语言)语言是一个功能强大的数据库语言,ANSI(美国国家标准委员会)将其定义为关系型数据库的标准语言。SQL语言可以分为以下三组:

       DML(Data Manipulation Language,数据操作语言)用于检索和修改数据;
       DDL(Data Definition Language,数据定义语言)用于定义数据结构,如创建、修改或者删除数据库对象
       DCL(Data Control Language,数据控制语言)用于定义数据库用户的使用权限
    2、简单查询:指的是查询出一张表中所有的数据,简单查询的语法如下:
       SELECT [DISTINCT] *| 字段 [别名] [,字段 [别名]]FROM 表名称 [别名] ;
           例:查询每个雇员的姓名、编号、基本工资  -->  SELECT ename,empno,sal FROM emp ;
       a.DISTINCT:表示消除掉重复的数据,此处重复是指所有字段都相同的两行
           例:SELECT DISTINCT job FROM emp ;
               SELECT DISTINCT ename,job FROM emp ;
       b.在简单查询中可以进行简单的四则运算:
           例:雇员每月有300元饭补和200元车补,年底外加一个月基本工资,现在输出职员姓名、职位和年薪
               SELECT ename,job,(sal+200+300)*12+sal income FROM emp ;
       c.在简单查询中使用“||”连接查寻字段,使用“''”单引号输出字符串
           例:按如下格式输出:雇员编号是:7369的雇员姓名是SMITH,工作职位是:CLERK,基本工资是:800。
               SELECT '雇员编号是:'||empno||'的雇员姓名是'||ename||',工作职位是:'||job||',基本工资是:'||sal||'。' 雇员信息 FROM emp ;
三、限定查询
    限定查询就是在简单查询之中增加过滤操作;限定查询的语法:
    SELECT [DISTINCT] *| 字段 [别名] [,字段 [别名]]FROM 表名称 [别名] ;
    [WHERE 条件(s)]
    在WHERE子句之后可以增加多个条件,包括基本关系运算符:>、>=、<、<=、!=(<>)以及BETWEEN...AND、LIKE、IN、IS NULL、IS NOT NULL、AND、OR、NOT 
    a. 关系运算符
      例:基本工资大于1500的雇员信息:SELECT * FROM emp WHERE sal>1500 ;
          职位是办事员的雇员信息:SELECT * FROM emp WHERE job='CLERK' ;
          基本工资在1500-3000之间的雇员信息:SELECT * FROM emp WHERE sal>=1500 AND sal<=3000 ;
          查询职位是办事员或销售的雇员信息:SELECT * FROM emp WHERE job='CLERK' OR job='SALESMAN' ;
          查询职位是办事员或销售且基本工资大于1500的雇员信息:
              SELECT * FROM emp WHERE (job='CLERK' OR job='SALESMAN')AND sal>=1500
 ;

          查询职位不是办事员的雇员信息:
              SELECT * FROM empWHERE job!='CLERK';
              SELECT * FROM empWHERE
job<>'CLERK';
              SELECT * FROM empWHERE
NOT job='CLERK';
    b. BETWEEN...AND 用法
      例:基本工资在1500-3000之间的雇员信息:SELECT
* FROM emp WHERE sal BETWEEN 1500 AND 3000 ;
    c. IS NULL:判断是否为空
      例:查询所有领取奖金的雇员信息:SELECT * FROM
emp WHERE comm IS NOT NULL ;
                               
      SELECT * FROM emp WHERE NOT comm IS NULL ;
    d. IN:指定查询的范围
      例:查询empno=7369/7566/7799的雇员信息:SELECT
* FROM emp WHERE empno IN(7369,7566,7799);
       NOT IN:表示不在范围内的信息,NOT IN
中不能使用NULL,否则表示全部输出
      例:查询empno=empno=7369/7566/7799之外的雇员信息:
              SELECT * FROM emp WHERE empno NOT IN(7369,7566,7799);
    e. 模糊查询:LIKE、NOT LIKE子句
       使用LIKE或者NOT LIKE子句必须使用到两个匹配符合:"_":表示匹配单个字节;"%":表示匹配任意字节
      例:查询雇员姓名首字母是A的雇员信息:SELECT * FROM emp WHERE ename LIKE 'A%' ;
          查询雇员姓名第二个字母为A的雇员信息:SELECT * FROM emp WHERE ename LIKE '_A%' ;
          查询雇员姓名中带有字母A的雇员信息:SELECT * FROM emp WHERE ename LIKE '%A%' ;
四、数据排序:ORDER BY
    Oracle输出数据默认为升序排序,也可以使用ORDER BY子句指定所需要的排序列;ORDER BY子句是写在SQL语句最后的内容。
    ORDER BY语法:    

    SELECT [DISTINCT] *| 字段 [别名] [,字段 [别名]]FROM 表名称 [别名] 
    [WHERE 条件(s)][ORDER BY 字段 ASC|DESC [,字段 ASC|DESC],...] ;
    注意:排序可以指定多个排序字段;排序分为两种方式:ASC升序,默认;DESC降序
       例:查询雇员信息,工资由高到低,如果工资相同则按照雇佣日期由早到晚顺序排序
           SELECT * FROM emp ORDER BY sal DESC , hiredate ASC ;

   

*************by
jixiangrurui 转载请注明出处*************
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: