应届生备战未来工作之Oracle学习1

来源:互联网 发布:证大淘宝达人贷 编辑:程序博客网 时间:2024/05/16 17:19

今天,下午和晚上看了会ORACLE的知识。下面是,今天总结的几个知识点:

1.  SQL 结构查询语言 Structured Query Language 

2.  在Oracle 10g或以上的版本中,出于安全的考虑,所有Oracle的默认用户,包括scott都被锁住。此时,可以system或sys用户登录数据库  

 解锁 用户scott     
      alter user scott identified by tiger account unlock


3. 万一scott用户中的某个对象出现了问题, 恢复用户scott

        以数据库管理员身份登录,找到数据库系统中的脚本文件scott.sql,运行它可以重建用户scott和它所拥有的一切。即

SQL>@$ORACLE_HOME\rdbm\admin\scott.sql,在我的机子上如下:

SQL> @E:\oracle\product\10.2.0\db_1\RDBMS\ADMIN\scott.sql


4.  删除表
DROP TABLE tablename[CASCADE CONSTRAINTS]

如果该表和其他表有约束关系,则选择[]中的参数,即级联删除索引。


5.  iSQL*Plus

        登录Oracle方式之一,使用网络版的SQL*Plus,即iSQL*Plus,通过浏览器登录。这首先需要获得iSQL*Plus服务的HTTP端口号,因此要进入$ORACLE_HOME\install目录(我的是 E:\oracle\product\10.2.0\db_1\install)找到portlist.ini,这里面存有iSQL*Plus服务的HTTP端口号,为5560. 打开浏览器,输入http://localhost:5560/isqlplus(如果是远程登录,则将localhost换成主机名或IP地址)


6.  SQL*Plus默认的列标题结果显示是:
1.字符和日期数据为左对齐
2.数字型数据为右对齐


7.  文本字符串

      是包含在SELECT字句中的字符、数字或表达式,而不是任何的列名或者列的别名。如果文本字符是日期型和数字型,就必须将它们用单引号括起来。
8.  连接运算符

      由两个竖线(||)表示,把用于一个或多个列的字符串连接在一起。


9.  查询时去除重复行
    select distinct 列名
    from 表名
    

   注意:当查询比较大的表时应尽量避免使用distinct,因为Oracle系统是通过排序的方式完成distinct这一功能的,所以会造成Oracle系统的效率降低。

10. 
投影(Project):在查询语句中中选择指定的列
语句(Statement):一个完整的SQL命令
子句(Clause):每一个关键字和后面跟着的选项

11.选择(SELECTION)操作:
     使用where子句来限制哪些行(记录)要显示,这就是选择操作。


12.  常用的比较运算符:>、>=、<、<=、=(注意和C的区别)、<>或!=


13. between下限and上限
      显示结果包括下限和上限
      该运算符如果用于字符型和日期型数据,则这两种类型的数据必须用单引号括起来
      在between前加not,就可得到不在该范围的纪录


14.  使用转义(escape)操作符
若要查询的的字符串中含有"_"或"%"时,使用转义操作符
如有表dept_temp

    DEPTNO DNAME          LOC
---------- -------------- -------------
        10 ACCOUNTING     NEW YORK
        20 RESEARCH       DALLAS
        30 SALES          CHICAGO
        40 OPERATIONS     BOSTON
        88 IT_RESEARCH    BEIJING
那么查询部门名以IT_开始的所有数据行
SQL> select *
  2  from dept_temp
  3  where dname like 'IT\_%' escape '\';


    DEPTNO DNAME          LOC
---------- -------------- -------------
        88 IT_RESEARCH    BEIJING
当然可以用escape指定任意字符为转义字符


15.   利用ORDER BY 字句对查询的结果进行排序,ASC为升序(默认), DESC为降序。
如果使用ORDER BY字句,则该字句一定是SQL语句的最后一个字句。


16.  ORDER BY 字句中使用别名或表达式或列号
(1)使用别名
SQL> select empno "Employee Num", ename Name, (sal+500)*12 "Annual Salary"
  2  from emp
  3  order by "Annual Salary" desc;

Employee Num NAME       Annual Salary
------------ ---------- -------------
        7839 KING               66000
        7902 FORD               42000
        7566 JONES              41700
        7698 BLAKE              40200
        7782 CLARK              35400
        7499 ALLEN              25200
        7844 TURNER             24000
        7934 MILLER             21600
        7654 MARTIN             21000
        7521 WARD               21000
        7900 JAMES              17400
(2)使用表达式
SQL> select empno "Employee Num", ename Name, (sal+500)*12 "Annual Salary"
  2  from emp
  3 order by (sal+500)*12 desc

Employee Num NAME       Annual Salary
------------ ---------- -------------
        7839 KING               66000
        7902 FORD               42000
        7566 JONES              41700
        7698 BLAKE              40200
        7782 CLARK              35400
        7499 ALLEN              25200
        7844 TURNER             24000
        7934 MILLER             21600
        7654 MARTIN             21000
        7521 WARD               21000
        7900 JAMES              17400


(3)ORDER BY中使用列号(这种用法,不提倡使用)
order by后面的数字表示按第几列进行排序

SQL> select empno "Employee Num", ename Name, (sal+500)*12 "Annual Salary"
  2  from emp
  3 order by 3 desc
 
Employee Num NAME       Annual Salary
------------ ---------- -------------
        7839 KING               66000
        7902 FORD               42000
        7566 JONES              41700
        7698 BLAKE              40200
        7782 CLARK              35400
        7499 ALLEN              25200
        7844 TURNER             24000
        7934 MILLER             21600
        7654 MARTIN             21000
        7521 WARD               21000
        7900 JAMES              17400