ITPub博客

首页 > 数据库 > Oracle > Oracle学习1-Oracle查询语句(hql)详解和oracle一般配置

Oracle学习1-Oracle查询语句(hql)详解和oracle一般配置

Oracle 作者:pipide 时间:2012-12-04 23:32:32 0 删除 编辑
一、Oracle一般操作
 
Oracle中主要有四种语句:dql数据查询语句(select语句(最重要!!!))、dml(数据操作语句)语句、ddl(数据定义语句)、事务控制语句
   A:oracle10G客户端  
     1. 命令行客户端:Sql Plus(客户端),命令行直接输入:sqlplus然后按提示输入用户名(scott),密码(tiger)。     
     2. 图形版的客户端:从开始程序运行:sqlplus是图形版的sqlplus.        
3. 网页版的客户端:http://localhost:5560/isqlplus(用于远程执行sql语句,localhost可以改为远程主机)             
     4、第三方工具: Toad:管理, PlSql Developer:
  B、更改Oracle用户步骤   
    1. 在oracle客户端输入:sqlplus sys/密码 as sysdba    
    2. alter user scott account unlock;(解锁账号)
  C、Oracle10g表结构:table structure      
   (系统自带的表有emp、salgrade、dept、bonus、dual(空表)   
   1. 描述某一张表:desc 表名    
   2. select * from 表名

二、Oracle查询语句(select语句)详解
       1.计算数据可以用系统自带的空表(空表仅有一个字段、一条记录):比如:.select 2*3 from dual所以使用空表查询出来的永远只有一条数据
      
       2.
给sal*12起别名:
select ename,sal*12 annual_sal from emp;与select ename,sal*12
"annual  sal" from emp;

     注意:如果别名中含有特殊字段(空格、中文等)时,别名要加双引号,
    
区别:加双引号保持原大小写,不加全变大写。
      3、查询系统当前时间:select sysdate from dual
     
      4. select ename || ‘abcd’
    || 用来连接两个字符串;其中字符串是用单引号包起来
    注意:如果连接字符串中含有单引号,用两个单引号代替一个单引号

        select ename || 'ab''cd'

    5、任何含有空值字段的数据进行数学表达式计算,结果都是空值:eg
      Select ename ,sal*12+comm from emp  (如果津贴comm为空,计算出来的记录的结果是空值)

    6、distinct (去除重复的记录)  
     select deptno from emp;   
     select distinct deptno from emp;
     select distinct deptno ,job from emp 
 
     去掉deptno,job两者组合的重复。更多的项,就是这么多项的组合的不重复组合。

    7:Where (条件筛选)  
    select * from emp where deptno =10; 
    select * from emp where deptno <>10;不等于10   
    select * from emp where ename ='bike';  
    select ename,sal from emp where sal between 800 and 1500 (>=800 and <=1500)

     日期简单处理:
     Select ename , sal, hiredate from emp where hiredate > ' 20-2月-81'  (查询81年以后的员工信息)
     其中日期一定要按照orale规定的格式来写,以后可以使用任意格式 进行处理:   
    select ename,sal,comm from emp where comm is (not) null; 
    select ename,sal,comm from emp where ename ( not)in ('smith','king','abc');
    select ename,sal from emp where sal  not  in (800, 1500);
  取出不是800和1500的记录

  使用and 或者or拼接多条件查询:
 Eg:select ename,sal from emp where deptno = 10 and (or) sal >1000;

  模糊查询 like :
     %代表任意数量的任意字符
     _代表一个任意字符

        select ename from emp where ename (not like)like '_A%';
    1、如果要查询含有%的,要用转义字符
    eg: Select ename from emp where ename like '%\%%' ;
    2、转义字符可以自定义: escape '自定义的转义字符'    比如:
    eg、select ename from emp where ename like '%$a%%' escape '$';

  排序:order by           
    select * from dept;
    默认按升序(asc)排列,要按降序(desc)用如下语句: 
     select * from dept order by deptno desc;
     Select * from emp where deptno <> 10 order by empno desc;
(条件筛选后在排序)
     select ename,sal,deptno from emp order by deptno asc,ename desc;
     (多条件排序)
<!-- 正文结束 -->

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/21376099/viewspace-1116889/,如需转载,请注明出处,否则将追究法律责任。

上一篇: 没有了~
下一篇: 没有了~
请登录后发表评论 登录
全部评论

注册时间:2009-04-13