oracle 笔记2

来源:互联网 发布:蓝牙模块hc06 java 编辑:程序博客网 时间:2024/06/10 06:00
 <DIV>&nbsp;
<DIV style="MARGIN-TOP: 5px; MARGIN-LEFT:15px"><B>关键字:</B> Database &nbsp;oracle,database&nbsp;&nbsp;&nbsp;&nbsp;</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>例:selectfirst_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排序是按照存储顺序输出的,orderby后面可以跟字段名,别名,位置,也可以有多个字段,当第一个字段的值一样时,按第二个字段排序<BR>排序子句 ASC(默认,升序) DESC(降序) <BR>orderby 目标列名(别名)排序顺序(不写排序顺序,会默认为升序排序)</P>
<P>例:select first_name from s_emp order by first_name;<BR>select first_name from s_emp order by first_namedesc;</P>
<P>注意:升序空值在结果的末尾,降序空值在结果的最前面。</P></TD></TR></TBODY></TABLE></DIV></DIV>
0 0