星辰日月00

欲多则心散,心散则志衰,志衰则思不达也!

  博客园 :: 首页 :: 新随笔 :: 联系 :: 订阅 :: 管理 ::

随笔分类 -  SQL基础

1 2 下一页

摘要:子程序包括过程和函数。这里的所谓函数是指用户自定义函数。从pl/sql程序设计的角度,也可以把子程序认为是pl/sql命名块,它存放在数据字典中,可以在应用程序中进行多次调用。子程序存放在数据库服务器中,以编译方式运行,执行速度快。子程序一般是完成特定功能的pl/sql程序块,具有一定的通用性,可以被不同应用程序多次调用,这样就简化了应用程序的开发与维护,并能提高应用程序的性能。让用户程序通过调用子程序访问数据库,而不是让用户程序直接访问数据库,这样做可以确保数据库的安全。一、过程如果在用户应用中经常要执行某些操作,那么就可以将这些操作构造为一个过程。默认情况下,用户定义的过程为该用户所拥有, 阅读全文
posted @ 2012-06-21 20:04 星辰日月00 阅读(249) 评论(0) 推荐(0)

摘要:触发器是存放在数据库中的一种特殊类型的子程序。它不能被用户程序直接调用,而是当特定事件或操作发生时由系统自动调用执行。触发器主要用于对数据库特定操作、特定事件的监控和响应。这些特定的事件或操作包括启动数据库、登录数据库、关闭数据库等系统事件、执行DML和DDL等操作。一、概念1.触发器的分类(1)DML触发器,依据于基本表或简单视图建立的触发器;(2)instead of触发器,依据于复杂视图建立的触发器;(3)系统事件触发器,依据系统事件或DDL操作建立的触发器。2.触发器的简介触发器是存放在数据库中的一种特殊类型的子程序。有PL/SQL块构成的触发器,只能包含select、insert、u 阅读全文
posted @ 2012-04-05 13:53 星辰日月00 阅读(1050) 评论(0) 推荐(0)

摘要:原文地址:http://hi.baidu.com/benben1006/blog/item/187deb77bc0e5319b151b974.html数据库在通过连接两张或多张表来返回记录时,都会生成一张中间的临时表,然后再将这张临时表返回给用户。在使用left jion时,on和where条件的区别如下:1、on条件是在生成临时表时使用的条件,它不管on中的条件是否为真,都会返回左边表中的记录。2、where条件是在临时表生成好后,再对临时表进行过滤的条件。这时已经没有left join的含义(必须返回左边表的记录)了,条件不为真的就全部过滤掉。假设有两张表:表1:tab2idsize110 阅读全文
posted @ 2012-03-29 17:02 星辰日月00 阅读(3320) 评论(2) 推荐(1)

摘要:三、游标for循环游标for循环是为简化游标使用过程而专门设计的。使用游标for循环检索游标时,游标的打开、数据的提取、数据是否检索到的判断与游标的关闭都是oracle系统自动进行的。在pl/sql程序中使用for循环,过程清晰,简化了对游标的处理。当使用游标开发pl/sql应用程序时,为了简化程序代码,建议大家使用游标for循环。1.语句格式一:先在定义部分定义游标,然后在游标for循环中引用该游标。 for record_name in cursor_name loop statement1; statement2; end loop; --curosr_nam... 阅读全文
posted @ 2012-03-29 12:25 星辰日月00 阅读(403) 评论(0) 推荐(0)

摘要:在PL/SQL程序中执行查询语句SELECT或数据操纵语句DML时,一般都可能产生或处理一组记录,游标是为处理这些记录而分配的一段内存区。SQL语句对表进行操作时,每次可以同时对多条记录进行操作;但是许多主语言(如C++、Delphi、java等开发工具)编制的应用程序,通常不能把整个结果集作为一个单元来处理,这些应用程序需要有一种机制来保证每次只处理结果集中的一行,PL/SQL语言的游标提供了这种机制。一、游标应用基础在PL/SQL程序中执行查询语句SELECT或数据操纵语句DML时,产生一记录集。根据记录集中记录数量的不同,将游标分为两类,其中记录集只有单行数据时,系统自动进行定义游标,称 阅读全文
posted @ 2012-03-28 08:07 星辰日月00 阅读(882) 评论(0) 推荐(0)

摘要:--pl/sql程序执行过程中出现的错误,称之为异常。根据其严重程序,需要做不同的处理。一、异常的基本概念没有错误处理的pl/sql应用程序不是一个完善的应用程序,这样的程序代码在执行过程中,经常会出现程序不能正常执行,执行中的程序突然终止执行,甚至造成系统崩溃。为了能够设计出对可能出现的各种错误进行相应处理的程序,pl/sql语言提供了异常处理机制。1.异常处理机制pl/sql程序的错误分为两类:一类是pl/sql的语法错误,它由pl/sql编译器发现并给出错误信息。另一类是运行时错误,编译器发现的错误,由于不能修改程序就无法执行,因此编译错误由程序员来修改。oracle中对运行时错误的处理 阅读全文
posted @ 2012-03-24 15:56 星辰日月00 阅读(339) 评论(0) 推荐(0)

摘要:pl/sql语言是oracle对关系数据库语言sql的过程化扩充。一、顺序结构 1 declare 2 v_student students%rowType; 3 begin 4 select * into v_student 5 from students 6 where student_id = 10213; 7 dbms_output.put_line('姓名:'|| v_student.name); 8 dbms_output.put_line('性别:'|| v_student.sex); 9 dbms_output.put_line('专业: 阅读全文
posted @ 2012-03-22 08:20 星辰日月00 阅读(491) 评论(0) 推荐(0)

摘要:一、执行SELECT语句在PL/SQL程序中,使用SELECT INTO语句查询一条记录的信息。语法格式:SELECT expression_list INTO variable_list | record_ variable FROM table_name WHERE condition;--expression_list指定选择的列或表达式;variable_list指定接收查询结果的标量变量名--record_variable用于指定接收查询结果的记录变量名,接收查询结果可以使用标量变量也可以--使用记录变量,当使用标量变量时,变量的个数、顺序应该与查询的目标数据相匹配。... 阅读全文
posted @ 2012-03-20 11:39 星辰日月00 阅读(3817) 评论(0) 推荐(0)

摘要:一、PL/SQL语言基础1.PL/SQL块简介--构成PL/SQL程序的基本单元是语句块,所有的PL/SQL程序都是由语句块构成的,--每个语句块完成特定的功能,语句块可以具有名字(命名块),也可以不具有名字(匿名块),语句块之间还可以相互嵌套。(1)块结构DECLARE Declarations --定义部分:主要定义程序中所要使用到的常量、变量、数据类型、游标、异常处理等。----------------------------------------------------BEGIN --执行部分:它是PL/SQL块的功能实现部分,该部分通过一系列语句和流程控制, Ex... 阅读全文
posted @ 2012-03-20 11:34 星辰日月00 阅读(411) 评论(0) 推荐(0)

摘要:视图是通对一个或多个表定义查询得到的,视图定义所依据的表被称为基表。视图是由表导出的“表”,因此视图是一个“虚”表。使用某些视图还可以对基表进行DML操作。利用视图可以简化查询语句的构成,降低查询的复杂性。一、建立视图语法格式:CREATE [OR REPLACE] VIEW view_name--[OR REPLACE]说明如果名为view_name的视图已经存在,就替换它。AS subquery [WITH READ ONLY];--[WITH READ ONLY]指定该视图为只读视图,只能用于检索。--视图是由subquery定义的。根据subquery的复杂程度,视图可以是基于一个表的 阅读全文
posted @ 2012-03-16 09:15 星辰日月00 阅读(291) 评论(0) 推荐(0)

摘要:当数据库中数据记录很多时,建立索引可以提高检索速度。索引对于数据库的作用与目录对书的作用是一样的。一、建立索引语法格式:CREATE [UNIQUE] INDEX index_nameON table_name (column_name [,column_name...])[TABLESPACE table_space];CREATE INDEX name_idx ON students1(name);CREATE UNIQUE INDEX phone_number_idx ON student1(phone_number);--唯一索引二、获得索引信息1.获得索引基本信息SELECT ind 阅读全文
posted @ 2012-03-16 09:14 星辰日月00 阅读(190) 评论(0) 推荐(0)

摘要:表是Oracle数据库中最基本的对象。对数据库的操作最终都是基于表进行的。一、建立表1.直接建立表语法格式:CREATE TABLE table_name( column_name datatype [CONSTRAINT constraint_name DEFAULT default_expression...]) [TABLESPACE tablespace_name]; --默认时,建立的表存储在建表用户的默认表空间中。数据库完整性约束条件: RPIMARY KEY P --唯一标识表中的行。 NOT NULL C --规定某一列不允许取空值。 CHECK C --规定一列... 阅读全文
posted @ 2012-03-10 16:48 星辰日月00 阅读(452) 评论(0) 推荐(0)

摘要:数据控制语言完成授予和回收用户对数据库的使用权限(由DBA决定)。Oracle通过数据控制语言的GRANT语句完成权限授予操作,REVOKE语句完成权限收回操作。授予的结果存入Oracle的数据字典中,当用户提出操作数据库请求时,Oracle会根据对数据字典中授权情况的检查,决定是执行还是拒绝该操作请求。一.数据库权限--权限是指能够在数据库中执行某种操作或者访问某个数据库对象的权力。--Oracle中的权限分为两类,即系统权限和对象权限。1.系统权限System Privileges系统权限是在数据库中执行某种特定操作的权力。系统权限并不针对某一个特定的对象,而是针对整个数据库范围。常用系统 阅读全文
posted @ 2012-03-10 16:35 星辰日月00 阅读(377) 评论(0) 推荐(0)

摘要:四、转换函数转换函数接受某种数据类型的参数,将其转换为另一种数据类型作为函数的返回值,从而实现把数值从一种数据类型转换为另一种数据类型的功能。常用,整形、浮点型、字符串、日期:1.整型转字符型to_char(1)2.字符串转整形to_number('1')3.字符串转浮点型to_number('1.1')4.浮点型转字符串to_char(1.1)5.字符串转日期to_date('2007-04-26','yyyy-mm-dd') 6.字符串转时间戳 to_date('2007-04-26 08:08:08', 阅读全文
posted @ 2012-03-07 15:01 星辰日月00 阅读(398) 评论(0) 推荐(0)

摘要:三、日期时间函数日期时间函数接受日期时间类型参数,这些参数由表中列或表达式构成。日期时间数据在Oracle数据库中,是以世纪、年、月、日、时、分、称的形式存储的。日期显示格式默认为“DD-MON-YY”的形式。1.ADD_MONTHS(x,n)--返回日期x加上n个月所对应的日期。n为正数,则返回值表示x之后的日期;n为负数,则返回值表示x之前的日期。SELECT ADD_MONTHS('08-8月-2008', 12) FROM dual; --2009-08-082.CURRENT_DATE--返回当前会话时区所对应的日期时间。SELECT CURRENT_DATE FRO 阅读全文
posted @ 2012-03-07 14:55 星辰日月00 阅读(475) 评论(0) 推荐(0)

摘要:二、字符函数字符函数接受字符型和数字型参数,这些参数由表中列或表达式构成。1.ASCII(x)--返回单个字符x的ASCII码,或字符串x首个字符的ASCII码。SELECT ASCII('a'),ASCII('A') FROM dual; --97,652.CHR(x)--返回ASCII码为x的字符。SELECT CHR(97), CHR(65), CHR(48) FROM dual; --a,A,03.CONCAT(X,Y)--将字符串x与字符串y连接起来所形成的字符串作为结果返回。SELECT CONCAT('学生姓名:','小李飞 阅读全文
posted @ 2012-03-07 11:57 星辰日月00 阅读(216) 评论(0) 推荐(0)

摘要:根据函数是对一行记录还是多行记录进行操作,SQL函数分为单行函数和多行函数。其中,单行函数每次只对一行记录进行操作,并得到一行返回结果;多行函数每次可以对多行记录进行操作,但得到一行返回结果。SQL单行函数主要有5种,分别为数字函数、字符函数、日期时间函数、转换函数和正则表达式函数。多行函数也被称为列函数或分组函数,如求平均值函数AVG(x)。大多数单行函数都可以直接在PL/SQL程序中使用,但多行函数不能在PL/SQL程序中直接使用。一、数字函数1.ABS(x)--x的绝对值。SELECT ABS(88), ABS(-88) FROM dual; --88,882.ACOS--反余弦值SEL 阅读全文
posted @ 2012-03-07 11:45 星辰日月00 阅读(534) 评论(0) 推荐(0)

摘要:5.含有子查询的DML语句在数据操作语言中可以使用子查询语句,完成操作过程较复杂,功能较强的DML操作。(1)插入数据INSERT语句中使用子查询将某表的数据查询子集插入到另一个表中。语句格式:INSERT INTO <table_name> [(column_name [, column_name, ...])] subquery--subquery用于指定表提供数据的子查询--建立计算机专业学生students_computer表:CREATE TABLE students_computer(student_id NUMBER(5) CONSTRAINT student_com 阅读全文
posted @ 2012-03-04 16:58 星辰日月00 阅读(279) 评论(0) 推荐(0)

摘要:4.数据库完整性数据库完整性包括三个方面的约束规则,分别是实体完整性、参照完整性和自定义完整性约束规则。(1)实体完整性实体完整性是指关系的主属性,即表的主键不能为NULL,也不能取重复值。INSERT INTO students(name, specialty)VALUES ('王一','计算机');第1行出现错误:ORA-01400,无法将NULL插入("SYSTEM"."STUDENTS"."STUDENT_ID")。UPDATE students SET student_id = NULL--在 阅读全文
posted @ 2012-03-04 16:52 星辰日月00 阅读(589) 评论(0) 推荐(0)

摘要:数据操作语言DML包括INSERT、DELETE、UPDATE等语句。它们分别进行数据增、删、改的功能。Oracle处理DML语句的结果时,以事务(transaction)为单位进行,一个事务为一个工作的逻辑单元,是一个SQL语句序列,在执行每一个DML语句时,所有的操作都在内存中完成,在执行完一系列DML语句后,需要决定由DML语句所做的修改,是全部或部分地保留到硬盘文件上,还是全部撤销。一、数据操作语言1.插入数据INSERTINSERT语句的作用是将数据行追加到表或视图的基表中。INSERT INTO students --此情况可省略列名(顺序和数量一致)VALUES(10138,10 阅读全文
posted @ 2012-03-04 16:45 星辰日月00 阅读(2997) 评论(0) 推荐(0)

1 2 下一页