网络编程 | 站长之家 | 网页制作 | 图形图象 | 操作系统 | 冲浪宝典 | 软件教学 | 网络办公 | 邮件系统 | 网络安全 | 认证考试 | 系统进程
Firefox | IE | Maxthon | 迅雷 | 电驴 | BitComet | FlashGet | QQ | QQ空间 | Vista | 输入法 | Ghost | Word | Excel | wps | Powerpoint
asp | .net | php | jsp | Sql | c# | Ajax | xml | Dreamweaver | FrontPages | Javascript | css | photoshop | fireworks | Flash | Cad | Discuz!
当前位置 > 网站建设学院 > 网络编程 > 数据库 > Oracle教程
Tag:注入,存储过程,分页,安全,优化,xmlhttp,fso,jmail,application,session,防盗链,stream,无组件,组件,md5,乱码,缓存,加密,验证码,算法,cookies,ubb,正则表达式,水印,索引,日志,压缩,base64,url重写,上传,控件,Web.config,JDBC,函数,内存,PDF,迁移,结构,破解,编译,配置,进程,分词,IIS,Apache,Tomcat,phpmyadmin,Gzip,触发器,socket
数据库:数据库教程,数据库技巧,Oracle教程,MySQL教程,Sybase教程,Access教程,DB2教程,数据库安全,数据库文摘
本月文章推荐
.Oracle诊断案例4-Sql_trace.
.一起学习在linux下使用汇编语言(.
.最高效的删除重复记录方法.
.Oracle数据库不同版本间用exp来导.
.从Oracle数据库的用户错误中恢复.
.实例讲解如何更改字段至兼容的不.
.oltp系统,数据块大小用4k还是8k.
.TestKing Oracle 1Z0-501 Edt1.1.
.教你如何收集Oracle进程中SQL跟踪.
.Oracle中的用户创建和权限的分配.
.Oracle Database 11g将在7月11日.
.Oracle复合数据类型(2).
.Oracle PL/SQL的第一次接触.
.在Oracle中实现数字进制转换完全.
.RedHatLinux AS3 U2 安装 oracle.
.怎样修改查看Oracle字符集.
.PL/SQL学习笔记(一).
.Oracle中忘记System和Sys密码后的.
.详细讲解Oracle SQL*Loader的使用.
.改变或关闭Oracle XDB的ftp和htt.

Oracle SQL 基础

发表日期:2008-2-9


一、关系数据库的一些概念 1、主键的值一般不可以改变 2、外键:指向另一个表或本表的主键或唯一键的字段。外键的值一定要和某一主键相同,或者为空。 3、数据库对像:表,视图,序列,索引,同义词,程序(进程,函数,sql和pl/sql数据)4、sql command 类别     data retrieval数据检索:select     data manipulationlanguage (DML)数据操作语言:insert,update,delete     data definition language (DDL)数据定义语言:create,alter,drop,rename,truncate     transaction control事务控制:commit,rollback,savepoint data control language(DCL)数据控制语言:grant,revoke DCL 和DDL命令的执行会导致一次隐式提交,之前未提交的操作(包括DML 命令)都会提交写入日志文件,并在适当地时候写入数据文件。 二、SQL的语法 1)   连接号: 2)   把两个字符连接起来 eg:select game_card_type_idname from game_card_type; 3)   select distinct dept_id,title from emp: 对多个字段的唯一 4)   order by desc(降序) order by asc(升序) 5)   where column is (not) null 6)   like ‘_a%’   _表示一个字符。%表示多少字符 like ‘%x\_y%’ escape ‘\’:显示包括x_y的字符 7)   where table1.column(+)=table2.column place the operator on the side of the join where there is no value to join to.     8) 联接类型: equijoin:等式查询 non_equijoin:不等式查询 self:自己和自己建立关联 out join:where a.column=b.column(+) 可以用的操作符是:’=’,’and’,不可以用’or’,’in’     9)  COUNT 函数所用的列包含空值时,空值行被忽略。 10)  where 后的in any all 的区别 in :等于子查询的任何一个数 any :与子查询的每一个值相比 只要比其中一个大(小)就可以了 all:与子查询的所有值相比要比所有的的都大(小)    !=ALL作用跟NOT IN 一样    三、SQL*PLUS的环境(可以在glogin.sql中定义初始参数) 1)   START 命令用以执行一个已储存的文件,等同于@ 2)   SAVE命令用以创建一个文件 3)   EDIT命令用以调用编辑器编辑已存文件的内容 4)   CHANGE 是SQL*Plus的编辑命令,用于在当前一行把旧文段转换为新文段 5)   DEL 命令用以删除文本中一行或多行文字 6)   SPOOL命令用以把查询结果储存在一个已有文件中,注重与SAVE区别 7)   GET命令用以一个文件的内容写进一个SQL块中 8)   SPOOL OUT命令用以把文件的结果发送到系统打印机。 9)   set pause off/on:设置页面的滚动。按enter看下一页。 10)  PAGESIZE:指定每页显示的行的数值, 11)  LONG:设置LONG类型数据显示的最大宽度 12)  FEEDBACK:设置查询返回记录的最大值 13)  DESCRIBE :用于显示表和视图的结构,同义词,或指定函数和过程的详述。 14)  Timing:可以看到语句执行的时间 15)  Autotrace:可以看到sql的执行计划,sysdba执行/home/Oracle/prodUCt/9.2.0/sqlplus/admin/plustrce.sql脚本,而且必须把plustrace角色赋给执行用户。执行用户必须运行/home/oracle/product/9.2.0/rdbms/admin/utlXPlan.sql 16)  在各种数据类型中,只有NUMBER数据类型的默认显示是靠右对齐的,而CHAR, DATE和VARCHAR2是靠左对齐的 17)  QUIT 是SQL*PLUS命令,用以结束一个SQL*PLUS的对话。 18)  ttitle:

       ttitle ‘selina’ 设select 的结果的抬头为selina tti :显示ttitle的状态 tti off/on BTitle ‘end’ 设结果的尾部 19)              Column: a)             column name heading ‘名字’format a15 b)             column id justify left format 999999 c)             column start_date format a9 null ‘not hired’//当字段为空的时候则显示成not hired d)             column :显示所有的column设置 e)             column columnname:显示某一个字段的设置 f)             clear column :清除所有column设置 g)             column columnname clear:清除某一字段的设置 h)             以上的column可用col代替.clear可以用cle代替      13)定义变量 用&:由用户输入变量值,此变量可以存在于where后,做为整个查询语句的变量。也可以在order by 后。做为字段的变量。也可以放在select 后,做为字段或表达式的变量。 用&&:假如多个地方引用此变量。。只用输入一次      SQL> SELECT empno, ename, job, &&column_name           FROM emp          ORDER BY &column_name;     accept:由用户输入变量值   accept 变量名 datatype prompt ‘告诉用户需要输入的信息:’ hide   引用的时候:&变名 define(undefined):一开始就定义变量值 四、函数: 1、字符函数 lower:把字符转成小写 upper:把字符转成大写 initcap:把单词的第一个字母变成大写 concat:连接字符  concat(‘good’,’morning’)=goodmoring SUBSTR (column\expression, m[,n]) 用于对字符串进行截取操作,从第m个位置开始,把其后的连续n个字符的部分截取下来,假如m位负值,则从末尾开始计算。 eg:substr(‘string’,1,3) =str           substr(‘string’-3,3)=ing INSTR('String', 'r')=3 LPAD(sal,10,'*') =*******sal     length: 用于返回表达式中的字符数,注重返回的是NUMBER。 NVL(expression1, expression2)
NVL 函数用以把一个空值转换为一个实值,如:
NVL(100/quantity, 0) ,要是quantity为空值,该函数返回一个0。
假如两个字段类型不同必须进行转换。 Min():返回最小值。。假如是字符。。A<a   2、数学函数 round:四舍五入    round(2.566,2)=2.27    round(45,-1)=50 trunc: 截断   trunc(2.566,2)=2.56   trunc(45,-1)=40 mod:   mod(m,n):m-n*flood(m/n)     //flood是取整数   3、日期函数: a)       months_between(date1,date2):算date1和date2之间的月的数量,可以是小数可以是负数 months_between(’01-sep-95’,’11-jan-94’)=1.9774194 b)       add_months(date,n):为date加上N个月,N只可以是整数 c)       next_date(date,’char’):查找date的下一个星期N next_date(’01-sep-95’,’FRIDAY’)=08-SEP-95 d)       last_day(date):查找date月的最后一天。 e)       rount(date):把日期四舍五入 f)       rount(25-MAY-95’,’MONTH’)=01-JUN-95 g)       rount(25-MAY-95’,’YEAR’)=01-JAN-95 h)       trunc(date):把日期截断 i)       trunc (25-MAY-95’,’MONTH’)=01-MAY-95 j)       trunc (25-MAY-95’,’YEAR’)=01-JAN-95 k)       日期中RR与YY的区别,RR格式对日期作类似于舍入的操作,YY格式对日期作类似于截取的操作

                RR   YY
1995 27-oct-95 1995 1995
1995 27-oct-17 2017 1917
2001 27-oct-17 2017 2017
2001 27-oct-95 1995 2095 用法:select to_char(sysdate, 'YY') from dual; select to_char(to_date('95-11-27', 'RR-MM-DD'), 'YYYY-MM-DD') from dual; select to_char(to_date('95-11-27', 'YY-MM-DD'), 'YYYY-MM-DD') from dual; 4、转换函数 TO_CHAR:
 TO_CHAR(date,’fmt’):fm前缀用来去除首尾的空字符或0
 TO_CHAR(total,’fm$999999’)
      假如想转成$0.25,那就要写成fm$9999990.99
 可以把日期转换成字符
     TO_CHAR(log_time,’MM/YY’)
     TO_CHAR(lot_time,’fmdd’’of;’’mm yyyy’)
     具体格式如下    HH24:MI:SS AM-----------15:24:32 pm
   DD’’of’’MONTH-----------12 of MAY
   Ddspth------------------------fourteenth
   Ddsp--------------------------fourteen
   ddth---------------------------4th
   YYYY-----------------------1978
    MM-----------------------------12
    MONTH-------------------------MAY 5、group 函数avg,count,max,min,stddev,sum,variance   五、数据字典 用户表:由用户创建,包含用户的内容 数据字典:由系统建立,包含数据库的信息   前缀: USER_ :由用户创建,显示用户拥有的所有对象。   ALL_ :由受权的用户访问, 用户可以访问的对象名。 DBA_ :由受了DBA权限的人访问,显示数据库的所有对象。 V$ :由受了DBA权限的人访问,显示数据字典数据库服务器性能信息。通常是DBA用于显示系统的统计表和动态性能表。   数据字典 DICTIONARY数据字典提供用户可以访问的数据字典表和视图的描述。
USER_OBJECTS显示用户拥有的对象。
USER_VIEWS显示用户拥有的视图。
USER_TABLES显示用户拥有的表。
ALL_TABLES显示用户可以访问的表。
ALL_VIEWS显示用户可以访问的视图。
USER_CATALOG显示用户拥有的所有表,视图,同义词和序列。
 USER_CONS_COLUMNS显示带约束的列。
DBA_CONS_COLUMNS显示数据库里的所有表,视图和同义词。
USER_TAB_PRIVS_MADE:本用户赋给别的用户赋予权限的表 USER_TAB_PRIVS_RECD:其他用户给本用户赋予权限的表 USER_COL_PRIVS_MADE:本用户赋给别的用户赋予权限的字段 USER_COL_PRIVS_RECD:其他用户给本用户赋予权限的字段
ROLE_SYS_PRIVS:有什么系统权限赋给role ROLE_TAB_PRIVS:有什么关于表的权限赋给role USER_ROLE_PRIVS:role和用户的对应表   常用的表 user_objects:用户对象表(存储用户的所有对象)存储以下的类型的数据 Selina Sql>select distinct object_type from user_objects; INDEX LOB PACKAGE PACKAGE BODY PROCEDURE SEQUENCE SYNONYM TABLE TRIGGER VIEW User_catalog:用户类表,存储以下的类型的数据 Selina Sql>select distinct table_type from user_catalog; SEQUENCE SYNONYM TABLE VIEW   六、建立对象 1、 表 a)     基本概念 Ø数据库会分配一定的空间从而定义表的大小,所以表的大小不用指定。 Ø表可容纳最多1000列。 Ø表可在用户使用数据库的同时创建,而且表的结构可在表联机时修改。 ØRENAME语句的语法 : RENAME old name TO new name; 注重要是表名中包含空格,符号或数字,必须使用双引号 Ø在CREATE TABLE子句中使用子查询,新表中的列数必须与子查询返回的列数相等,列位置对应。另外,除NOT NULL约束外,新列不会继续源列的所有约束。 Ø你不能对一列重命名。在表中添加一列时,你不能指定该列的位置,它会被默认放置在最后。你可以为一列增加长度。 通常当一列包含数据时,你不能修改该列的数据类型,不能减少一列的长度,但当列中包含空值或你不改变列的大小时,你可以把CHAR 转换为VARCHAR2数据类型。 Ø在DROP TABLE table命令后加上CASCADE CONSTRAINTS回把表中的相关约束一并删除。如命令:"DROP TABLE employee CASCADE CONSTRAINTS;"会把employee表中的数据,结构,和相关约束一并删除。 Ø当你创建一个数据类型为VARCHAR2的列时,必须指定长度。 Ø为表加注释:comment on table tablename  is ‘………’; ØCOMMENT ON TABLE命令用于在数据字典里添加关于表,视图或快照的注释。 Ø但你对一表执行了DML语句的INSERT操作时,但没有提交,别人可以同时访问该表,但看不到你所作的修改,由于对象被加锁,所以别人不能作同样的修改。 b)     建表原则 以字母开头 不可以超过30个字 只能由数字,字母,_,$,#组成 用子查询建立表 create table tablename as select …..   c)     删除表 drop table tablename 删除所有的数据 删除所有相关的index 所有待解决的事务会自动提交 不可以回滚 不释放空间  


上一篇:实例解析:DB2中实现Oracle的相关功能 人气:633
下一篇:ORA-12154: TNS: 无法解析指定的连接标识符 人气:4742
浏览全部Oracle教程的内容 Dreamweaver插件下载 网页广告代码 祝你圣诞节快乐 2009年新年快乐