¼¸¸ö´æ´¢¹ý³Ì£¬ºÜ¼òµ¥µÄ£¬µ«ÊÇÎÒ´ÓÀ´Ã»ÓÐѧϰ¹ý£¬ºÇºÇ£¬Õâ¸öÕýÊÇÎÒÒªÀ´ÅàѵµÄÄ¿µÄ
-- =============================================
-- Author:
-- Create date: 2010Äê05ÔÂ12ÈÕ
-- Description: ´Ë¹ý³ÌÓÃÓÚ²éѯËùÓÐÓû§Ãû¼°ÃÜÂë
-- =============================================
CREATE PROCEDURE users_select_all
AS
BEGIN
select * from users
END
GO
-- =============================================
-- Author:
-- Create date: 2010Äê05ÔÂ12ÈÕ
-- Description: ´Ë¹ý³ÌÓÃÓÚ²éѯ·ûºÏÓû§ÃûºÍÃÜÂëµÄÓû§
-- =============================================
create PROCEDURE users_select_name @uname varchar(10)='%'
AS
BEGIN
select * from users where username like @uname
END
GO
users_select_name 'СÃ÷6'
-- =============================================
-- Author:
-- Create date: 2010Äê05ÔÂ12ÈÕ
-- Description: ´Ë¹ý³ÌÓÃÓÚÊä³ö·ûºÏÓû§ÃûºÍÃÜÂëµÄÓû§ÌõÊý
-- =============================================
create PROCEDURE users_selec ......
»ù±¾µÄSql±àдעÒâÊÂÏî
¾¡Á¿ÉÙÓÃIN²Ù×÷·û£¬»ù±¾ÉÏËùÓеÄIN²Ù×÷·û¶¼¿ÉÒÔÓÃEXISTS´úÌæ¡£
²»ÓÃNOT IN²Ù×÷·û£¬¿ÉÒÔÓÃNOT EXISTS»òÕßÍâÁ¬½Ó+Ìæ´ú¡£
OracleÔÚÖ´ÐÐIN×Ó²éѯʱ£¬Ê×ÏÈÖ´ÐÐ×Ó²éѯ£¬½«²éѯ½á¹û·ÅÈëÁÙʱ±íÔÙÖ´ÐÐÖ÷²éѯ¡£¶øEXISTÔòÊÇÊ×Ïȼì²éÖ÷²éѯ£¬È»ºóÔËÐÐ×Ó²éѯֱµ½ÕÒµ½
µÚÒ»¸öÆ¥ÅäÏî¡£NOT EXISTS±ÈNOT INЧÂÊÉԸߡ£µ«¾ßÌåÔÚÑ¡ÔñIN»òEXIST²Ù×÷ʱ£¬Òª¸ù¾ÝÖ÷×Ó±íÊý¾ÝÁ¿´óСÀ´¾ßÌ忼ÂÇ¡£
²»ÓÓ<>”»òÕß“!=”²Ù×÷·û¡£¶Ô²»µÈÓÚ²Ù×÷·ûµÄ´¦Àí»áÔì³ÉÈ«±íɨÃ裬¿ÉÒÔÓÓ<” or “>”´úÌæ¡£
Where×Ó¾äÖгöÏÖIS NULL»òÕßIS NOT
NULLʱ£¬Oracle»áֹͣʹÓÃË÷Òý¶øÖ´ÐÐÈ«±íɨÃè¡£¿ÉÒÔ¿¼ÂÇÔÚÉè¼Æ±íʱ£¬¶ÔË÷ÒýÁÐÉèÖÃΪNOT
NULL¡£ÕâÑù¾Í¿ÉÒÔÓÃÆäËû²Ù×÷À´È¡´úÅжÏNULLµÄ²Ù×÷¡£
µ±Í¨Åä·û“%”»òÕß“_”×÷Ϊ²éѯ×Ö·û´®µÄµÚÒ»¸ö×Ö·ûʱ£¬Ë÷Òý²»»á±»Ê¹Óá£
¶ÔÓÚÓÐÁ¬½ÓµÄÁГ||”£¬×îºóÒ»¸öÁ¬½ÓÁÐË÷Òý»áÎÞЧ¡£¾¡Á¿±ÜÃâÁ¬½Ó£¬¿ÉÒÔ·Ö¿ªÁ¬½Ó»òÕßʹÓò»×÷ÓÃÔÚÁÐÉϵĺ¯ÊýÌæ´ú¡£
Èç¹ûË÷Òý²»ÊÇ»ùÓÚº¯ÊýµÄ£¬ÄÇôµ±ÔÚWhere×Ó¾äÖжÔË÷ÒýÁÐʹÓú¯Êýʱ£¬Ë÷Òý²»ÔÙÆð×÷Óá£
Where×Ó¾äÖбÜÃâÔÚË÷ÒýÁÐÉÏÊ¹Ó ......
»ù±¾µÄSql±àдעÒâÊÂÏî
¾¡Á¿ÉÙÓÃIN²Ù×÷·û£¬»ù±¾ÉÏËùÓеÄIN²Ù×÷·û¶¼¿ÉÒÔÓÃEXISTS´úÌæ¡£
²»ÓÃNOT IN²Ù×÷·û£¬¿ÉÒÔÓÃNOT EXISTS»òÕßÍâÁ¬½Ó+Ìæ´ú¡£
OracleÔÚÖ´ÐÐIN×Ó²éѯʱ£¬Ê×ÏÈÖ´ÐÐ×Ó²éѯ£¬½«²éѯ½á¹û·ÅÈëÁÙʱ±íÔÙÖ´ÐÐÖ÷²éѯ¡£¶øEXISTÔòÊÇÊ×Ïȼì²éÖ÷²éѯ£¬È»ºóÔËÐÐ×Ó²éѯֱµ½ÕÒµ½
µÚÒ»¸öÆ¥ÅäÏî¡£NOT EXISTS±ÈNOT INЧÂÊÉԸߡ£µ«¾ßÌåÔÚÑ¡ÔñIN»òEXIST²Ù×÷ʱ£¬Òª¸ù¾ÝÖ÷×Ó±íÊý¾ÝÁ¿´óСÀ´¾ßÌ忼ÂÇ¡£
²»ÓÓ<>”»òÕß“!=”²Ù×÷·û¡£¶Ô²»µÈÓÚ²Ù×÷·ûµÄ´¦Àí»áÔì³ÉÈ«±íɨÃ裬¿ÉÒÔÓÓ<” or “>”´úÌæ¡£
Where×Ó¾äÖгöÏÖIS NULL»òÕßIS NOT
NULLʱ£¬Oracle»áֹͣʹÓÃË÷Òý¶øÖ´ÐÐÈ«±íɨÃè¡£¿ÉÒÔ¿¼ÂÇÔÚÉè¼Æ±íʱ£¬¶ÔË÷ÒýÁÐÉèÖÃΪNOT
NULL¡£ÕâÑù¾Í¿ÉÒÔÓÃÆäËû²Ù×÷À´È¡´úÅжÏNULLµÄ²Ù×÷¡£
µ±Í¨Åä·û“%”»òÕß“_”×÷Ϊ²éѯ×Ö·û´®µÄµÚÒ»¸ö×Ö·ûʱ£¬Ë÷Òý²»»á±»Ê¹Óá£
¶ÔÓÚÓÐÁ¬½ÓµÄÁГ||”£¬×îºóÒ»¸öÁ¬½ÓÁÐË÷Òý»áÎÞЧ¡£¾¡Á¿±ÜÃâÁ¬½Ó£¬¿ÉÒÔ·Ö¿ªÁ¬½Ó»òÕßʹÓò»×÷ÓÃÔÚÁÐÉϵĺ¯ÊýÌæ´ú¡£
Èç¹ûË÷Òý²»ÊÇ»ùÓÚº¯ÊýµÄ£¬ÄÇôµ±ÔÚWhere×Ó¾äÖжÔË÷ÒýÁÐʹÓú¯Êýʱ£¬Ë÷Òý²»ÔÙÆð×÷Óá£
Where×Ó¾äÖбÜÃâÔÚË÷ÒýÁÐÉÏÊ¹Ó ......
PL/SQL×î²îʵ¼ù
http://benben.javaeye.com/blog/278164
1. ³¬³¤µÄPL/SQL´úÂë
Ó°Ï죺¿Éά»¤ÐÔ£¬ÐÔÄÜ
Ö¢×´£º
ÔÚ¸´ÔӵįóÒµÓ¦ÓÃÖУ¬´æÔÚ¶¯éü³É°ÙÉÏǧÐеĴ洢¹ý³Ì»òÉÏÍòÐеİü¡£
ΪʲôÊÇ×î²î£º
Ì«³¤µÄPL/SQL´úÂë²»ÀûÓÚÔĶÁ£¬µÚÈý·½¹¤¾ßÔÚµ÷ÊÔʱҲ»á³öÏÖ´úÂëÐлìÂÒµÈÎÊÌâ¡£PL/SQL´æ´¢¶ÔÏ󣨴洢¹ý³Ì¡¢°ü¡¢º¯Êý¡¢´¥·¢Æ÷µÈ£©ÐÐÊýÉÏÏÞԼΪ6000000ÐУ¬µ«Êµ¼Ê¹¤×÷ÖУ¬µ±°ü´óС³¬¹ý5000Ðоͻá³öÏÖµ÷ÊÔÎÊÌâ¡£
½â¾öÖ®µÀ£º
PL/SQL´úÂëÔÚÖ´ÐÐǰ»á±»¼ÓÔØµ½shared poolÖУ¬shared poolÒÔ×Ö½ÚΪµ¥Î»£¬UNIXÏÂΪ64K£¬×ÀÃæ»·¾³ÏÂΪ32K£¬¿ÉÒÔͨ¹ý²éѯÊý¾Ý×ÖµäUSER_OBJECT_SIZEµÄPARSED_SIZE×ֶβ鿴¶ÔÏó´óС¡£¶ÔÓڽϴóµÄ°ü£¬Ó¦²ÉÓòð°ü²ßÂÔ£¬³éÈ¡ ......
×¢£º³ö´¦ÒѲ»¿É¿¼£¬²»¹ý£¬ÆäÖв»ÉÙÓï¾ä»¹ÊÇÂù¾«ÃîµÄ¡£
Student(S#(ѧºÅ),Sname(ÐÕÃû),Sage(ÄêÁä),Ssex(ÐÔ±ð)) ѧÉú±í
Course(C#(¿Î³Ì±àºÅ),Cname(¿Î³ÌÃû³Æ),T#(ÀÏʦ±àºÅ)) ¿Î³Ì±í
SC(S#(ѧºÅ),C#(¿Î³Ì±àºÅ),score(·ÖÊý)) ³É¼¨±í
Teacher(T#(ÀÏʦ±àºÅ),TnameSname(ÐÕÃû)) ½Ìʦ±í
ÎÊÌ⣺
1¡¢²éѯ“001”¿Î³Ì±È“002”¿Î³Ì³É¼¨¸ßµÄËùÓÐѧÉúµÄѧºÅ£»
select a.S# from (select s#,score from SC where C#='001') a,(select s#,score
from SC where C#='002') b
where a.score>b.score and a.s#=b.s#;
2¡¢²éѯƽ¾ù³É¼¨´óÓÚ60·ÖµÄͬѧµÄѧºÅºÍƽ¾ù³É¼¨£»
select S#,avg(score)
from sc
group by S# having avg(score) >60;
3¡¢²éѯËùÓÐͬѧµÄѧºÅ¡¢ÐÕÃû¡¢Ñ¡¿ÎÊý¡¢×ܳɼ¨£»
select Student.S#,Student.Sname,count(SC.C#),sum(score)
from Student left Outer join SC on Student.S#=SC.S#
group by Student.S#,Sname
4¡¢²éѯÐÕ“ÀÄÀÏʦµÄ¸öÊý£»
select count(distinct(Tname))
......
ʵÀý1£ºÖ»·µ»Øµ¥Ò»¼Ç¼¼¯µÄ´æ´¢¹ý³Ì¡£
ÒøÐдæ¿î±í£¨bankMoney£©µÄÄÚÈÝÈçÏÂ
Id
userID
Sex
Money
001
Zhangsan
ÄÐ
30
002
Wangwu
ÄÐ
50
003
Zhangsan
ÄÐ
40
ÒªÇó1£º²éѯ±íbankMoneyµÄÄÚÈݵĴ洢¹ý³Ì
create procedure sp_query_bankMoney
as
select * from bankMoney
go
exec sp_query_bankMoney
×¢* ÔÚʹÓùý³ÌÖÐÖ»ÐèÒª°ÑÖеÄSQLÓï¾äÌæ»»Îª´æ´¢¹ý³ÌÃû£¬¾Í¿ÉÒÔÁ˺ܷ½±ã°É£¡
ʵÀý2£¨Ïò´æ´¢¹ý³ÌÖд«µÝ²ÎÊý£©£º
¼ÓÈëÒ»±Ê¼Ç¼µ½±íbankMoney£¬²¢²éѯ´Ë±íÖÐuserID= ZhangsanµÄËùÓдæ¿îµÄ×ܽð¶î¡£
Create proc insert_bank @param1 char(10),@param2 varchar(20),@param3 varchar(20),@param4 int,@param5 int output
with encryption ---------¼ÓÃÜ
as
insert bankMoney (id,userID,sex,Money)
Values(@param1,@param2,@param3, @param4)
select @param5=sum(Money) from bankMoney where userID='Zhangsan'
go
ÔÚSQL Server²éѯ·ÖÎöÆ÷ÖÐÖ´Ðиô洢¹ý³ÌµÄ·½·¨ÊÇ£º
declare @total_price int
exec insert_bank '004','Zhangsan','ÄÐ',100,@total_price output
print '×ÜÓà¶îΪ'+convert(varchar,@total_price)
go
ÔÚÕâÀïÔÙ啰àÂÒ»Ï ......
SQLÓï¾ä¼¶±ðµÄÓÅ»¯ÊÇÎÒÃÇʵ¼Ê¹¤×÷ÖнӴ¥×î¶àµÄ£¬¼¸ºõËùÓеÄÊý¾Ý¿âÓ¦ÓÃ˵µ½µ×¶¼ÊÇSQLÓï¾äµÄ¾ßÌåÖ´ÐУ¬Òò´ËÈçºÎ¶ÔSQL½Å±¾±¾Éí½øÐÐÓÅ»¯£¬Ìá¸ßÖ´ÐÐЧÂʾÍÏÔµÃÓÈÎªÖØÒª¡£ÒÔÏÂÊÇһЩͨÓõÄÉè¼ÆÔÔò¡£
(1)ʹÓÃselectÓï¾ä²éѯʱ£¬¾¡Á¿²»ÒªÊ¹ÓÃselect *¡¡Óï¾ä£¬¶øÊÇÓ¦¸ÃÖ¸Ã÷¾ßÌåÒª²éѯµÄ×ֶΣ¬ÌáÈ¡µÄ×Ö¶ÎÊýÁ¿Ô½ÉÙ£¬²éѯµÄËÙ¶ÈÔ½¿ì¡£
¡¡¡¡(2)ʹÓÃOrder by Óï¾äÅÅÐòʱ£¬×îºÃ°´ÕÕ¾Û´ØË÷ÒýµÄ×Ö¶ÎÅÅÐò£¬ÕâÑù»á´ó´óÌá¸ßÅÅÐòµÄËÙ¶È¡£
(3)¾¡Á¿²»ÒªÊ¹ÓÃor¹Ø¼ü×Ö£¬»òÊÇ in(),·ñÔò»áÒýÆðÈ«±íɨÃ裬´ó´ó¼õµÍÊý¾ÝµÄ¼ìË÷ËÙ¶È¡£
±ÈÈçÊý¾ÝÁ¿½Ï´óʱ£¨¼¸Ê®Íò¼Ç¼£©£¬²»ÒªÊ¹ÓÃÈçϵÄSQLÓï¾ä£º
Select count(*) from student where id in('0','1')
Select count (*) from student where id='0' or id='1'
Ó¦¸Ã²ð·Ö³ÉÈçÏÂÁ½ÌõSQLÓï¾ä£º
select count(*) from student where id ='0'
select count (*)from student where id='1'
(4)¶ÔµÑ¿¨¶û»ý,ÓÎ±ê£¬Ñ ......