use Master
go
if object_id('SP_SQL') is not null
drop proc SP_SQL
go
create proc [dbo].[SP_SQL](@ObjectName sysname)
as
set nocount on ;
declare @Print varchar(max)
if exists(select 1 from syscomments where ID=object_id(@ObjectName) and encrypted=1)
begin
Print N'對ÏóÒѼÓÃÜ!'
return
end
if coalesce(object_id(@ObjectName,N'P'),object_id(@ObjectName,N'FN'),object_id(@ObjectName,N'IF'),object_id(@ObjectName,N'TF'),object_id(@ObjectName,N'TR'),object_id(@ObjectName,N'V')) is null
begin
Print N'對ÏóÖ»針對º¯數¡¢´æ儲過³Ì¡¢觸發Æ÷¡¢視圖!'
return
end
print 'Use '+db_Name()
print 'Go'  ......
PL/SQLʵÀý·ÖÎö
µÚÎåÕÂ
1¡¢PL/SQLʵÀý·ÖÎö
1£©ÔÚ¡¾SQLPlus Worksheet¡¿ÖÐÖ±½ÓÖ´ÐÐÈçÏÂSQL´úÂëÍê³ÉÉÏÊö²Ù×÷¡£(´´½¨±í)
¨D¨D¨D¨D¨D¨D¨D¨D¨D¨D¨D¨D¨D¨D¨D¨D¨D¨D¨D¨D¨D¨D¨D¨D¨D¨D¨D¨D¨D¨D¨D
CREATE TABLE "SCOTT"."TESTTABLE" ("RECORDNUMBER" NUMBER(4) NOT NULL, "CURRENTDATE" DATE NOT NULL)
TABLESPACE "SYSTEM"
2£©ÒÔadminÓû§Éí·ÝµÇ¼¡¾SQLPlus Worksheet¡¿£¬Ö´ÐÐÏÂÁÐSQL´úÂëÍê³ÉÏòÊý¾Ý±íSYSTEM.testableÖÐÊäÈë100¸ö¼Ç¼µÄ¹¦ÄÜ¡£
¨D¨D¨D¨D¨D¨D¨D¨D¨D¨D¨D¨D¨D¨D¨D¨D¨D¨D¨D¨D¨D¨D¨D¨D¨D¨D¨D¨D¨D¨D¨D
set serveroutput on
declare
maxrecords constant int:=100;
i int:=1;
begin
for i in 1..maxrecords loop
insert into SCOTT.testtable(recordnumber,currentdate)
values(i,sysdate);
end loop;
dbms_output.put_line('³É¹¦Â¼ÈëÊý¾Ý£¡');
commit;
end;
2¡¢ÔÚ¡¾SQLPlus Worksheet¡¿ÖÐÖ´ÐÐÏÂÁÐPL/SQL³ÌÐò£¬¸Ã³ÌÐò¶¨ÒåÁËÃûΪageµÄÊý×ÖÐͱäÁ¿£¬³¤¶ÈΪ3£¬³õʼֵΪ26¡£
¨D¨D¨D¨D¨D¨D¨D¨D¨D¨D¨D¨D¨D¨D¨D¨D¨D¨D¨D¨D¨D¨D¨D¨D¨D¨D¨D¨D¨D¨D¨D
declare
age number(3):=26;
begin
commit;
end;
3¡¢ÔÚ¡¾SQLPlus Worksheet¡¿ÖÐ ......
4£®Êý¾ÝÀàÐÍת»»º¯Êý
¡ñÒþʽת»»
¸³ÖµÊ±¿É½øÐеÄÒþʽת»»ÓÐ
VARCHAR2»òCHAR —¡µNUMBER
VARCHAR2»òCHAR —¡µDATE
NUMBER —¡µVARCHAR2
DATE —¡µVARCHAR2
±í´ïʽÖпɽøÐеÄÒþʽת»»ÓÐ
VARCHAR2»òCHAR —¡µNUMBER
VARCHAR2»òCHAR —¡µDATE
¡ñÏÔʽת»»
TO_CHAR(number|date[,’fm___’])°´¸ñʽ°ÑÊý×Ö»òÈÕÆÚת»»³ÉVARCHAR2
TO_NUMBER(char)½«Êý×Ö×Ö·û´®×ª»¯³ÉÊý×Ö
TO_DATE(char[,’fm___’])°´¸ñʽ°Ñ×Ö·û´®×ª»»³ÉÈÕÆÚ
5£®³£¹æº¯Êý
¡ñNVL(expression1,expression2)£ºÈç¹ûexpression1ÖÐÓпÕÖµ´æÔÚ½«Ëüת»¯³É
expression2掙歜
¡ñDECODE(columnname|expression,search1,result1[,search2,result2,…][,default])
  ......
ÄãÊÇ·ñÔÚǧ·½°Ù¼ÆÓÅ»¯SQL Server Êý¾Ý¿âµÄÐÔÄÜ?Èç¹ûÄãµÄÊý¾Ý¿âÖк¬ÓдóÁ¿µÄ±í¸ñ£¬°ÑÕâЩ±í¸ñ·ÖÇø·ÅÈë¶ÀÁ¢µÄÎļþ×é¿ÉÄÜ»áÈÃÄãÊÜÒæ·Ëdz¡£SQL Server 2005ÒýÈëµÄ±í·ÖÇø¼¼Êõ£¬ÈÃÓû§Äܹ»°ÑÊý¾Ý·ÖÉ¢´æ·Åµ½²»Í¬µÄÎïÀí´ÅÅÌÖУ¬Ìá¸ßÕâЩ´ÅÅ̵IJ¢Ðд¦ÀíÐÔÄÜÒÔÓÅ»¯²éѯÐÔÄÜ¡£
¡¡¡¡SQL ServerÊý¾Ý¿â±í·ÖÇø²Ù×÷¹ý³ÌÓÉÈý¸ö²½Öè×é³É£º
¡¡¡¡1. ´´½¨·ÖÇøº¯Êý
¡¡¡¡2. ´´½¨·ÖÇø¼Ü¹¹
¡¡¡¡3. ¶Ô±í½øÐзÖÇø
¡¡¡¡ÏÂÃæ½«¶Ôÿ¸ö²½Öè½øÐÐÏêϸ½éÉÜ¡£
¡¡¡¡²½ÖèÒ»£º´´½¨Ò»¸ö·ÖÇøº¯Êý
¡¡¡¡´Ë·ÖÇøº¯ÊýÓÃÓÚ¶¨ÒåÄãÏ£ÍûSQL ServerÈçºÎ¶ÔÊý¾Ý½øÐзÖÇøµÄ²ÎÊýÖµ([u]how[/u])¡£Õâ¸ö²Ù×÷²¢²»Éæ¼°Èκαí¸ñ£¬Ö»Êǵ¥´¿µÄ¶¨ÒåÁËÒ»Ïî¼¼ÊõÀ´·Ö¸îÊý¾Ý¡£
¡¡¡¡ÎÒÃÇ¿ÉÒÔͨ¹ýÖ¸¶¨Ã¿¸ö·ÖÇøµÄ±ß½çÌõ¼þÀ´¶¨Òå·ÖÇø¡£ÀýÈ磬¼Ù¶¨ÎÒÃÇÓÐÒ»·ÝCustomers±í£¬ÆäÖаüº¬Á˹ØÓÚËùÓпͻ§µÄÐÅÏ¢£¬ÒÔÒ»Ò»¶ÔÓ¦µÄ¿Í»§±àºÅ(´Ó1µ½1,000,000)À´Çø·Ö¡£ÎÒÃǽ«Í¨¹ýÒÔϵķÖÇøº¯Êý°ÑÕâ¸ö±í·ÖΪËĸö´óСÏàͬµÄ·ÖÇø£º¡¡¡¡
CREATE PARTITION FUNCTION customer_partfunc (int)
¡¡¡¡AS RANGE RIGHT
¡¡¡¡FOR VALUES (250000, 500000, 750000)
¡¡¡¡ÕâЩ±ß½çÖµ¶¨ÒåÁËËĸö·ÖÇø¡£µÚÒ»¸ö·ÖÇø°üÀ¨ËùÓ ......
1¡¢ËµÃ÷£º¸´ÖƱí(Ö»¸´Öƽṹ,Ô´±íÃû£ºa бíÃû£ºb) (Access¿ÉÓÃ)
·¨Ò»£ºselect * into b from a where 1 <>1
·¨¶þ£ºselect top 0 * into b from a
2¡¢ËµÃ÷£º¿½±´±í(¿½±´Êý¾Ý,Ô´±íÃû£ºa Ä¿±ê±íÃû£ºb) (Access¿ÉÓÃ)
insert into b(a, b, c) select d,e,f from b;
3¡¢ËµÃ÷£º¿çÊý¾Ý¿âÖ®¼ä±íµÄ¿½±´(¾ßÌåÊý¾ÝʹÓþø¶Ô·¾¶) (Access¿ÉÓÃ)
insert into b(a, b, c) select d,e,f from b in ‘¾ßÌåÊý¾Ý¿â’ where Ìõ¼þ
Àý×Ó£º..from b in '"&Server.MapPath(".")&"\data.mdb" &"' where..
4¡¢ËµÃ÷£º×Ó²éѯ(±íÃû1£ºa ±íÃû2£ºb)
select a,b,c from a where a IN (select d from b ) »òÕß: select a,b,c from a where a IN (1,2,3)
5¡¢ËµÃ÷£ºÏÔʾÎÄÕ¡¢Ìá½»È˺Í×îºó»Ø¸´Ê±¼ä
select a.title,a.username,b.adddate from table a,(select max(adddate) adddate from table where table.title=a.title) b
6¡¢ËµÃ÷£ºÍâÁ¬½Ó²éѯ(±íÃû1£ºa ±íÃû2£ºb)
select a.a, a.b, a.c, b.c, b.d, b.f from a LEFT OUT JOIN b ON a.a = b.c
7¡¢ËµÃ÷£ºÔÚÏßÊÓͼ²éѯ(±íÃû1£ºa )
select * from (SELECT a,b,c from a) T where t.a > 1;
8¡¢ËµÃ÷£ ......
sql isnullº¯ÊýµÄʹÓÃ
ISNULL
ʹÓÃÖ¸¶¨µÄÌæ»»ÖµÌæ»» NULL¡£
Óï·¨
ISNULL ( check_expression , replacement_value )
²ÎÊý
check_expression
½«±»¼ì²éÊÇ·ñΪ NULLµÄ±í´ïʽ¡£check_expression ¿ÉÒÔÊÇÈκÎÀàÐ͵ġ£
replacement_value
ÔÚ check_expression Ϊ NULLʱ½«·µ»ØµÄ±í´ïʽ¡£replacement_value ±ØÐëÓë check_expresssion ¾ßÓÐÏàͬµÄÀàÐÍ¡£
·µ»ØÀàÐÍ
·µ»ØÓë check_expression ÏàͬµÄÀàÐÍ¡£
×¢ÊÍ
Èç¹û check_expression ²»Îª NULL£¬ÄÇô·µ»Ø¸Ã±í´ïʽµÄÖµ£»·ñÔò·µ»Ø replacement_value¡£
ʾÀý
A. ½« ISNULL Óë AVG Ò»ÆðʹÓÃ
ÏÂÃæµÄʾÀý²éÕÒËùÓÐÊéµÄƽ¾ù¼Û¸ñ£¬ÓÃÖµ $10.00 Ìæ»» titles ±íµÄ price ÁÐÖеÄËùÓÐ NULL ÌõÄ¿¡£
USE pubs
GO
SELECT AVG(ISNULL(price, $10.00))
from titles
GO
ÏÂÃæÊǽá¹û¼¯£º
--------------------------
14.24
(1 row(s) affected)
B. ʹÓà ISNULL
ÏÂÃæµÄʾÀýΪ titles ±íÖеÄËùÓÐÊéÑ¡ÔñÊéÃû¡¢ÀàÐͼ°¼Û¸ñ¡£Èç¹ûÒ»¸öÊéÃûµÄ¼Û¸ñÊÇ NULL£¬ÄÇôÔÚ½á¹û¼¯ÖÐÏÔʾµÄ¼Û¸ñΪ 0.00¡£
USE pubs
GO
SELECT SUBSTRING(title, 1, 15) AS Title, type AS Type,
ISNULL(price, 0.00) AS Price
from titles
GO
ÏÂÃæÊǽá¹û¼ ......