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

oracle 笔记2

2016-10-31 09:10 441 查看
 <DIV> 

<DIV style="MARGIN-TOP: 5px; MARGIN-LEFT:
15px"><B>关键字:</B> Database  
oracle,database    
</DIV>

<DIV style="MARGIN-TOP: 10px; MARGIN-LEFT: 15px; OVERFLOW:
auto">

<TABLE width="100%">

<TBODY>

<TR>

<TD>

<P>Oracle SQL(Oracle 9i 9.2.0.1.0)</P>

<P>一、DataBase <BR>保存数据,以表的形式表现数据
<BR>二、SQL</P>

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

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

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

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

<P>四、相关操作 <BR><BR>echo $ORACLE_SID
查看现有的Oracle数据库 <BR></P>

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

<P>2、show user 显示当前用户的用户名</P>

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

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

<P>五、基本语法</P>

<P>1、select查询语句</P>

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

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

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

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

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

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

<P>3、sqlplus设置 <BR>set pause on
回车响应,分屏显示,只在本会话中有效 <BR>set pause off
关闭分屏显示。 <BR>set pause "..." 设置分屏显示的提示信息。
<BR>set pause on 先输出提示信息,回车响应,分屏显示
<BR>set head off 提头输出关闭 <BR>set feed off
结尾输出关闭 <BR>set echo off 回写关闭 <BR>spool
文件名.sql 写入指定文件 <BR>spool off 关闭写入。
</P>

<P>4、sql脚本
<BR>也就是在文件中写有sql语句的文件,可以在sqlplus中运行。
<BR>引入sql脚本 <BR>sqlplus 用户名/密码 @sql脚本
(注意:在用户名密码输入结束后一定要加空格然后再写@sql脚本)
<BR>在脚本中最后一行写上“exit”,则运行完脚本以后,回到shell上
<BR><BR><BR>5、 <BR>Oracle中的空值
空值会当无穷大处理,其实空值根本就不会存储,只是看作是无穷大。</P>

<P>Oracle中控制处理函数
NVL(字段名,值),这个字段中的空值替换为指定值,如果不为空,则会返回其原值。
<BR>例:select
first_name,salary*12*(1+NVL(commission_pct,0)/100) "total salary"
from s_emp;</P>

<P>distinct关键字,去掉重复行(这个关键字会触发排序操作)
<BR>例: select distinct dept_id,title from s_emp;
<BR>distinct 可以使dept_id与title的联合唯一
<BR>注意:distinct,关键字之后会对from之前的字段进行排重操作。</P>

<P>六、选择操作 <BR><BR>1、order by
排序是按照存储顺序输出的,order
by后面可以跟字段名,别名,位置,也可以有多个字段,当第一个字段的值一样时,按第二个字段排序
<BR>排序子句 ASC(默认,升序) DESC(降序) <BR>order
by 目标列名(别名)
排序顺序(不写排序顺序,会默认为升序排序)</P>

<P>例:select first_name from s_emp order by first_name;
<BR>select first_name from s_emp order by first_name
desc;</P>

<P>注意:升序空值在结果的末尾,降序空值在结果的最前面。</P></TD></TR></TBODY></TABLE></DIV></DIV>
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: