数据库(学习整理)----4--Oracle数据查询(基础点1)

其他:
    计算机中的内存是线性的,一维。

    length('')计算字符的个数,而不是字节的个数
    
    Oracle中的日期类型和数值类型的数据可以做运算符(>,=,<,<>)比较


如果在启动Oracle数据库的时候出现了:ora-12514的错误编号的提示。
解决方案:
    去Oracle安装目录下面找到:C:oracleproduct10.2.0db_1NETWORKADMIN目录下面:
     找到:listener.ora文件和tnsnames.ora文件  
     修改文件的访问权限,管理员身份打开,
     修改文件中的:Host:对应的数据为:自己电脑的IP:
            如何修改:localhost 或者 127.0.0.1 或者 当前电脑的真是IP

    
1、查询:
    
    关键字        后面可以使用
    
    select        *、字段列表、表达式、函数、查询语句

    from            表名、查询语句、视图列表

    where           (分组前)条件

    group by        分组

    having          (分组后)条件

    order by         排序 (升、降)



2、Oracle中的4组模糊关键字

    1、like、not like

    2is nullis not null

    3、between  and    、not  between  and 

    4in(a,b,c)   not in(a,b,c)


3、取别名:2中方式

    1、字段名 as  别名  
        
        举例:
            select ename as 姓名 from emp;(推荐)

            select ename as "姓名" from emp;(不推荐)

    2、字段名  别名

        举例:    
            select ename  姓名 from emp;(不推荐)

4、数据的拼接:
    拼接方式:
        使用符号:|| 来拼接数据
    
    举例:
        select '姓名:'||ename||',薪水:'||sal  as 员工薪水信息 from emp;

        结果显示:
            员工薪水信息
            姓名:Jason ,薪水:10000
            姓名:Jack , 薪水:20000
            .....

    说明:
        (1)Oracle中的数据拼接和Java中的数据拼接:
            Java中:
                使用"+"
            Oracle中:
                使用||2):只有在2中情况下常用单引号:
                    1、字符型数据
                    2、日期型数据
5、排序:order by
    
    asc:升序
    desc:降序
    默认是asc升序    
    
    (1)、一次排序

        使用:
            order by  字段名 [asc/desc];

         或者

            order by  表达式 [asc/desc];

       (2)、二次排序:


        使用:
            order by  字段名1 [asc/desc],字段名2 [asc/desc] ;

         或者

            order by  字段名1 [asc/desc],表达式 [asc/desc];

    说明:
        Oracle中可排序的类型只有:数值型/日期型/字符型



6、联合查询:union
    
    说明:
        1、联合指的是表的上下拼接,不是列的拼接!
        2、使用三个一致条件:(数量一致,类型一致,顺序一致)。
        3、最终显示的列的列名按照第一个select的列为准!
    
    使用举例:
        select ename,sal as 薪水 from scott.emp where rownum<=2
        union 
        select ename as 姓名,sal from scott.emp;
    查询结果:
        ENAME    薪水
        ADAMS    1100.00
        ALLEN    1600.00
        BLAKE    2850.00
        CLARK    2450.00
        FORD    3000.00
        JAMES    950.00

7、查询指定条数的数据:
    
    关键字:
            rowid   行游标的值,行的地址,在遍历当前行之前就会有值!
                rownum  当前行的一个伪列,
        (伪列)    当查询发生时产生,查询结束时死亡!

    特别说明:
            rownum:只能使用:<和<=,
                      并且只有在:
            select * from emp where rownum=1;这种情况下才能使用=

    举例:
        需求:如何查取6-10行数据!

        SQL语句:
            select * from scott.emp 
            where  scott.emp.empno not in (select scott.emp.empno 
                               from scott.emp where rownum<=5)
            and rownum<=5;
    
    信息提取:分页功能:
        
            select * from scott.emp 
            where  scott.emp.empno not in (select scott.emp.empno 
                               from scott.emp where rownum<=当前页码*每条显示页数)
            and rownum<=每页条数;

8、给表取别名:
    方法很简单:
        格式:
            表名  别名
    特别注意:
        在查询语句中,对表取别名之后,就不能再用表名了,应该用刚取好的别名!



原文地址:https://www.cnblogs.com/newwind/p/5674425.html