日期:2014-05-16  浏览次数:20555 次

oracle学习笔记(一)
Oracle SQL(Oracle 9i 9.2.0.1.0)

一、DataBase
         保存数据,以表的形式表现数据
二、SQL

SQL(structure query language  结构化查询语言),是操作关系型数据库中的对象

DDL(data definition language 数据定义语言),用于建表或删表操作,以及对表约束进行修改。
create table , alter table , drop table 对表结构的增删操作。

DML(Data manipulation language 数据操作语言),向表中插入纪录,修改纪录
        insert , update , delete , merge
   transaction ,事务控制语言,由DML语句组成的,commit; ,rollback;                           
   select 查询语句
   dcl 授权语句 grant

三、Oracle
DBMS 数据库管理系统
   有Oracle提供,还提供AS,应用服务器
   DBA 数据库管理员

四、相关操作 

echo $ORACLE_SID  查看现有的Oracle数据库


1、sqlplus 访问数据库命令(本地访问/远程访问),和数据库建立连接的命令,是数据库操作的环境
   sqlplus 用户名/密码

2、show user 显示当前用户的用户名

   改变身份可以直接connect 用户名/密码   --- 这个是sqlplus命令
   在sqlplus中可以使用 ! 可以在shell和sqlplus间切换,!shell命令 可以在sqlplus中使用shell命令。
   实际上是sqlplus开了子进程来执行shell命令。

3、Oracle数据库中的表分两类:用户表(用户使用操作的表),系统表(数据库系统维护的表,也叫数据字典)
   对用户表的DDL操作出发了对系统表的DML操作!

五、基本语法

1、select查询语句

select table_name from user_tables;(查询系统表)
以上的查询语句就是查询本用户下所拥有的所有表的表名。

投影操作,只查看选择的字段的信息。
选择操作,查看字段中的特定某些信息。
联接操作,多表查询,通过表间连接,查寻出多表中的信息

(1)select table_name from user_tables;(查询系统表)
     以上的查询语句就是查询本用户下所拥有的所有表的表名。
    
(2)sqlplus的buffer中会缓存最后一条sql语句,可以使用"/"来执行这最后一条sql语句,也可以使用
     edit命令来编辑最后一条sql语句。
     l命令(list)(sqlplus命令)可以显示buffer中最后一条命令。  
    
     sqlplus命令可以缩写
    
(3)desc [表名]
     这是一条sqlplus命令,注意他不是sql语句,这条命令用于查看表的结构。describe的缩写
     [字段名] [字段的类型],这是使用完desc命令后显示的表结构。      
    
(4)select [表的字段名1],[表的字段名2], ... from 表名;
     select * from 表名; 查寻表中所有字段的信息    
    
(5)关键字不能拆分,sql语句,以及表名,字段名是大小写不敏感的。
     sql语句要以";"结尾,来表示sql语句结束,如果不加";"系统不会执行此条sql语句,并提示。    
     在Oracle中字符显示是左对齐,数值右对齐。
    
(6)在select 语句中可以使用数学表达式。
     select [表达式(必须包含本表字段名)],[...],.... from 表名;
     运算的优先级的先乘除后加减,同级自左向右运算,括号改变优先级。

(7)别名
     select [字段名或表达式] ["别名"],[...] ["..."],.... from 表名;
     可以通过在字段名或表达式后加空格"别名",可以给列,或者表达式结果其别名。    
     表达别名必须加双引号。
    
(8)字符串拼接使用||符号
     select 目标字段名||' '||目标字段名 from 表名;

     注意:在Oracle中的字符或字符串要用单引号,双引号用来起别名
     别名中需要使用空格,或是大小写敏感时需要用".."包含。    
    
练习:
自己写一条SQL语句,执行的结果是select * from ...;
其中...是每张系统表的表名
即在每张系统表的表名前加“select * from”  ,后加“;”

select 'select * from '||table_name||';' from user_tables; 
    
    
2、处理错误
(1)!oerr ora [错误号] ,系统可以显示错误的原因和如何修改。如果命令错误输入可以使用edit或ed来修改输入错误。
     实际上是在编辑缓存文件中的最后一条sql语句。
     也可以使用 (change) c /错误字段/正确字段,来进行替换操作进行修改。
     只有在Linux平台使用
     ! 相当于 host ,没有断连接,只是切换了一下,执行she