版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
SQL語(yǔ)句大全
一語(yǔ)句功能
■?數(shù)據(jù)操作
SELECT-從數(shù)據(jù)庫(kù)表中檢索數(shù)據(jù)行和列
INSERT--向數(shù)據(jù)庫(kù)表添加新數(shù)據(jù)行
DELETE--從數(shù)據(jù)庫(kù)表中刪除數(shù)據(jù)行
UPDATE--更新數(shù)據(jù)庫(kù)表中的數(shù)據(jù)
-數(shù)據(jù)定義
CREATETABLE--創(chuàng)建一個(gè)數(shù)據(jù)庫(kù)表
DROPTABLE―從數(shù)據(jù)庫(kù)中刪除表
ALTERTABLE一修改數(shù)據(jù)庫(kù)表結(jié)構(gòu)
CREATEVIEW一創(chuàng)建一個(gè)視圖
DROPVIEW―從數(shù)據(jù)庫(kù)中刪除視圖
CREATEINDEX一為數(shù)據(jù)庫(kù)表創(chuàng)建一個(gè)索引
DROPINDEX一從數(shù)據(jù)庫(kù)中刪除索引
CREATEPROCEDURE--創(chuàng)建一個(gè)存儲(chǔ)過(guò)程
DROPPROCEDURE一從數(shù)據(jù)庫(kù)中刪除存儲(chǔ)過(guò)程
CREATETRIGGER--創(chuàng)建一個(gè)觸發(fā)器
DROPTRIGGER一從數(shù)據(jù)庫(kù)中刪除觸發(fā)器
CREATESCHEMA一向數(shù)據(jù)庫(kù)添加一個(gè)新模式
DROPSCHEMA--從數(shù)據(jù)庫(kù)中刪除一個(gè)模式
CREATEDOMAIN一創(chuàng)建一個(gè)數(shù)據(jù)值域
ALTERDOMAIN--變更域定義
DROPDOMAIN―從數(shù)據(jù)庫(kù)中刪除一個(gè)域
一數(shù)據(jù)限制
GRANT一授予用戶訪問(wèn)權(quán)限
DENY--拒絕用戶訪問(wèn)
REVOKE--解除用戶訪問(wèn)權(quán)限
--事務(wù)限制
COMMIT--結(jié)束當(dāng)前事務(wù)
ROLLBACK一中止當(dāng)前事務(wù)
SETTRANSACTION一定義當(dāng)前事務(wù)數(shù)據(jù)訪問(wèn)特征
--程序化SQL
DECLARE一為查詢?cè)O(shè)定游標(biāo)
EXPLAN一為查詢描述數(shù)據(jù)訪問(wèn)支配
OPEN--檢索查詢結(jié)果打開(kāi)一個(gè)游標(biāo)
FETCH-檢索一行查詢結(jié)果
CLOSE一關(guān)閉游標(biāo)
PREPARE--為動(dòng)態(tài)執(zhí)行準(zhǔn)備SQL語(yǔ)句
EXECUTE--動(dòng)態(tài)地執(zhí)行SQL語(yǔ)句
DESCRIBE一描述準(zhǔn)備好的查詢
—局部變量
declare@idchar(10)
-set@id=110010001,
select@id='10010001,
--全局變量
?一必需以@@開(kāi)頭
-IFELSE
declare@xint@yint@zint
select@x=1@y=2@z=3
if@x>@y
print'x>y'--打印字符串'x>y'
elseif@y>@z
print'y>z'
elseprintz>y'
begin
select@c=100*@x+@y
print@c一打印變量c的值
select@y=@y+1
end
select@x=@x+1
select@y=1
end
-WAITFOR
--例等待1小時(shí)2分零3秒后才執(zhí)行SELECT語(yǔ)句
waitfordelay)01:02:03)
select*fromemployee
一例等到晚上11點(diǎn)零8分后才執(zhí)行SELECT語(yǔ)句
waitfortime)23:08:00'
select*fromemployee
***SELECT***
select*例名)fromtable_name(表名)wherecolumn_nameoperator
value
ex:(宿主)
select*fromstock_informationwherestockid=str(nid)
stockname='str_name'
stocknamelike'%findthis%'
stocknamelike'[a-zA-Z]%'(。指定值的范圍)
stocknamelike'[AF-M]%'(八解除指定范圍)
只能在運(yùn)用like關(guān)鍵字的where子句中運(yùn)用通配符)
orstockpath='stock_path'
orstocknumber<1000
andstockindex=24
notstock***='man'
stocknumberbetween20and100
stocknumberin(10,20,30)
orderbystockiddesc(asc)排序,desc-降序,asc-升序
orderby1,2by列號(hào)
stockname=(selectstocknamefromstock_informationwhere
stockid=4)
子查詢
除非能確保內(nèi)層select只返回一個(gè)行的值,
否則應(yīng)在外層where子句中用一個(gè)in限定符
selectdistinctcolumn_nameformtable_namedistinct指
定檢索獨(dú)有的列值,不重復(fù)
selectstocknumber/'stocknumber+10'=stocknumber+10
fromtable_name
selectstockname,"stocknumber"=count(*)fromtable_name
groupbystockname
groupby將表按行分組,指定列中有相同的值
havingcount(*)=2having選定指定的組
select
fromtable1,table2
wheretable1.id*=table2.id左外部連接,table1中有的而
table2中沒(méi)有得以null表示
table1.id=*table2.id右外部連接
selectstocknamefromtable1
union[all]union合并查詢結(jié)果集,all-保留重復(fù)行
selectstocknamefromtable2
insertintotable_name(Stock_name,Stock_number)value
(,,xxx"/'xxxxn)
value(selectStockname,Stocknumberfrom
Stock_tab1e2)--value為select語(yǔ)句
***update***
updatetable_namesetStockname="xxx"[whereStockid=3]
Stockname=default
Stockname=null
Stocknumber=Stockname+4
***delete***
deletefromtablenamewhereStockid=3
truncatetablename刪除表中全部行,仍保持表的完整性
droptabletable_name完全刪除表
***altertable***--修改數(shù)據(jù)庫(kù)表結(jié)構(gòu)
altertabledatabase.owner.table_nameaddcolumn_namechar(2)
null….
sp_helptable_name——顯示表已有特征
createtabletable_name(namechar(20),agesmallint,Iname
varchar(30))
insertintotable_nameselect實(shí)現(xiàn)刪除列的方法(創(chuàng)建新
表)
altertabletable_namedropconstraintStockname_default——?jiǎng)h
除Stockname的default約束
***function(/*常用函數(shù)*/)***
——統(tǒng)計(jì)函數(shù)——
AVG一求平均值
COUNT--統(tǒng)計(jì)數(shù)目
MAX一求最大值
MIN一求最小值
SUM一求和
-AVG
usepangu
selectavg(e_wage)asdept_avgWage
fromemployee
groupbydept_id
-MAX
--求工資最高的員工姓名
usepangu
selecte_name
fromemployee
wheree_wage=
(selectmax(e_wage)
fromemployee)
-STDEVQ
--STDEV()函數(shù)返回表達(dá)式中全部數(shù)據(jù)的標(biāo)準(zhǔn)差
-STDEVPO
—STDEVPO函數(shù)返回總體標(biāo)準(zhǔn)差
-VAR()
一VAR()函數(shù)返回表達(dá)式中全部值的統(tǒng)計(jì)變異數(shù)
-VARPO
VARP()函數(shù)返回總體變異數(shù)
算術(shù)函數(shù)
/***三角函數(shù)***/
SIN(float_expression)--返回以弧度表示的角的正弦
COS(float_expression)--返回以弧度表示的角的余弦
TAN(float_expression)一返回以弧度表示的角的正切
COT(float_expression)--返回以弧度表示的角的余切
/***反三角函數(shù)***/
ASIN(float_expression)一返回正弦是FLOAT值的以弧度表示的角
ACOS(float_expression)--返回余弦是FLOAT值的以弧度表示的角
ATAN(float_expression)--返回正切是FLOAT值的以弧度表示的角
ATAN2(float_expressionl,float_expression2)
―返回正切是float_expressionl/float_expres-sion2的以弧度表示的
角
DEGREES(numeric_expression)
―把弧度轉(zhuǎn)換為角度返回與表達(dá)式相同的數(shù)據(jù)類型可為
-INTEGER/MONEY/REAL/FLOAT類型
RAD[ANS(numeric_expression)一把角度轉(zhuǎn)換為弧度返回與表達(dá)式相
同的數(shù)據(jù)類型可為
-INTEGER/MONEY/REAL/FLOAT類型
EXP(float_expression)-返回表達(dá)式的指數(shù)值
LOG(float_expression)一返回表達(dá)式的自然對(duì)數(shù)值
LOG10(float_expression)—返回表達(dá)式的以1。為底的對(duì)數(shù)值
SQRT(float_expression)--返回表達(dá)式的平方根
/***取近似值函數(shù)*叱/
CEILING(numeric_expression)--返回>=表達(dá)式的最小整數(shù)返回的數(shù)據(jù)
類型與表達(dá)式相同可為
-INTEGER/MONEY/REAL/FLOAT類型
FLOOR(numeric_expression)--返回<=表達(dá)式的最小整數(shù)返回的數(shù)據(jù)
類型與表達(dá)式相同可為
-INTEGER/MONEY/REAL/FLOAT類型
ROUND(numeric_expression)--返回以integejexpression為精度
的四舍五入值返回的數(shù)據(jù)
一類型與表達(dá)式相同可為INTEGER/MONEY/REAL/FLOAT類型
ABS(numeric_expresskm)—返回表達(dá)式的確定值返回的數(shù)據(jù)類型與表
達(dá)式相同可為
-INTEGER/MONEY/REAL/FLOAT類型
SIGN(numeric_expression)一測(cè)試參數(shù)的正負(fù)號(hào)返回。零值1正數(shù)或
-1負(fù)數(shù)返回的數(shù)據(jù)類型
一與表達(dá)式相同可為INTEGER/MONEY/REAL/FLOAT類型
PI()一返回值為兀即3.14936
RAND([integer_expression|)―用任選的[integer_expression]做種子
值得出。-1間的隨機(jī)浮點(diǎn)數(shù)
字符串函數(shù)
ASCIIO一函數(shù)返回字符表達(dá)式最左端字符的ASCII碼值
CHARQ--函數(shù)用于將ASCII碼轉(zhuǎn)換為字符
一假如沒(méi)有輸入。~255之間的ASCII碼值CHAR函數(shù)會(huì)返回一個(gè)
NULL值
LOWERQ一函數(shù)把字符串全部轉(zhuǎn)換為小寫(xiě)
UPPER。一函數(shù)把字符串全部轉(zhuǎn)換為大寫(xiě)
STRQ-函數(shù)把數(shù)值型數(shù)據(jù)轉(zhuǎn)換為字符型數(shù)據(jù)
LTRIM。一函數(shù)把字符串頭部的空格去掉
RTRIM。一函數(shù)把字符串尾部的空格去掉
LEFTQ,RIGHTO,SUBSTRINGO--函數(shù)返回部分字符串
CHARINDEX(),PATINDEX()―函數(shù)返回字符串中某個(gè)指定的子串出現(xiàn)
的起先位置
SOUNDEX0--函數(shù)返回一個(gè)四位字符碼
-SOUNDEX函數(shù)可用來(lái)查找聲音相像的字符串但SOUNDEX函數(shù)對(duì)數(shù)
字和漢字均只返回0值
DIFFERENCE。--函數(shù)返回由SOUNDEX函數(shù)返回的兩個(gè)字符表達(dá)式
的值的差異
-0兩個(gè)SOUNDEX函數(shù)返回值的第一個(gè)字符不同
--1兩個(gè)SOUNDEX函數(shù)返回值的第一個(gè)字符相同
-2兩個(gè)SOUNDEX函數(shù)返回值的第一二個(gè)字符相同
--3兩個(gè)SOUNDEX函數(shù)返回值的第一二三個(gè)字符相同
-4兩個(gè)SOUNDEX函數(shù)返回值完全相同
QUOTENAMEQ一函數(shù)返回被特定字符括起來(lái)的字符串
"selectquotename('abc,,'{')quotenamel'abc')
運(yùn)行結(jié)果如下
{abc}[abc]*/
REPLICATEf)--函數(shù)返回一個(gè)重復(fù)charactejexpression指定次數(shù)的
字符串
/*selectreplicate('abc',3)replicate('abc',-2)
運(yùn)行結(jié)果如下
abcabcabcNULL*/
REVERSE。一函數(shù)將指定的字符串的字符排歹ij依次顛倒
REPLACE。一函數(shù)返回被替換了指定子串的字符串
/*selectreplace('abcl23g','123','def)
運(yùn)行結(jié)果如下
abcdefg*/
SPACEO--函數(shù)返回一個(gè)有指定長(zhǎng)度的空白字符串
STUFF。--函數(shù)用另一子串替換字符串指定位置長(zhǎng)度的子串
數(shù)據(jù)類型轉(zhuǎn)換函數(shù)一一
CASTO函數(shù)語(yǔ)法如下
CAST()(<expression>AS<data_type>[length])
CONVERTO函數(shù)語(yǔ)法如下
CONVERT()(<data_type>[length],<expression>[,style])
selectcast(100+99aschar)convert(varchar(12),getdatef))
運(yùn)行結(jié)果如下
199Jan152000
—日期函數(shù)—
DAY()—函數(shù)返回date_expression中的日期值
MONTHQ—函數(shù)返回date_expression中的月份值
YEAR。一函數(shù)返回date_expression中的年份值
DATEADD(<datepart>,<number>,<date>)
--函數(shù)返回指定日期date加上指定的額外日期間隔number產(chǎn)生的新
日期
DATEDIFF(<datepart>,<number>,<date>)
一函數(shù)返回兩個(gè)指定日期在datepart方面的不同之處
DATENAME(<datepart>,<date>)一函數(shù)以字符串的形式返回日期的
指定部分
DATEPART(<datepart>,<date>)一函數(shù)以整數(shù)值的形式返回日期的指
定部分
GETDATE0一函數(shù)以DATETIME的缺省格式返回系統(tǒng)當(dāng)前的日期和時(shí)
間
一_系統(tǒng)函數(shù)__
APP_NAME()--函數(shù)返回當(dāng)前執(zhí)行的應(yīng)用程序的名稱
COALESCE。--函數(shù)返回眾多表達(dá)式中第一個(gè)非NULL表達(dá)式的值
COL_LENGTH(<'table_name'>,<'column_name'>)一函數(shù)返回表中指
定字段的長(zhǎng)度值
COL_NAME(<table_id>,<column_id>)--函數(shù)返回表中指定字段的名
稱即列名
DATALENGTHO--函數(shù)返回?cái)?shù)據(jù)表達(dá)式的數(shù)據(jù)的實(shí)際長(zhǎng)度
DB_ID(['database_name'])--函數(shù)返回?cái)?shù)據(jù)庫(kù)的編號(hào)
DB_NAME(database_id)--函數(shù)返回?cái)?shù)據(jù)庫(kù)的名稱
HOST」D()--函數(shù)返回服務(wù)器端計(jì)算機(jī)的名稱
HOST_NAME()一函數(shù)返回服務(wù)器端計(jì)算機(jī)的名稱
IDENTITY(<data_type>[,seedincrement])[AScolumn_name])
-IDENTITY!)函數(shù)只在SELECTINTO語(yǔ)句中運(yùn)用用于插入一個(gè)
identitycolumn列到新表中
/*selectidentity(int,1,1)ascolumn_name
intonewtable
fromoldtable*/
ISDATEO--函數(shù)推斷所給定的表達(dá)式是否為合理日期
ISNULL(<check_expression>,<replacement_value>)--函數(shù)將表達(dá)
式中的NULL值用指定值替換
ISNUMERICQ--函數(shù)推斷所給定的表達(dá)式是否為合理的數(shù)值
NEWID。一函數(shù)返回一個(gè)UNIQUEIDENTIFIER類型的數(shù)值
NULLIF(<expression1>,<expression2>)
—NULLIF函數(shù)在expression1與expression2相等時(shí)返回NULL值
若不相等時(shí)則返回expression1的值
sql中的保留字
actionaddaggregateall
alterafterandas
ascavgavg_row_lengthauto_increment
betweenbigintbitbinary
blobboolbothby
cascadecasecharcharacter
changecheckchecksumcolumn
columnscommentconstraintcreate
crosscurrent_datecurrent_timecurrent_timestamp
datadatabasedatabasesdate
datetimedayday_hourday_minute
day_seconddayofmonthdayofweekdayofyear
decdecimaldefaultdelayed
delay_key_writedeletedescdescribe
distinctdistinctrowdoubledrop
endelseescapeescaped
enclosedenumexplainexists
fieldsfloat
float4floatsflushforeign
fromforfullfunction
globalgrantgrantsgroup
havingheaphigh_priorityhour
hour_minutehour_secondhostsidentified
ignoreinindexinfile
innerinsertinsert_idint
integerintervalintiint2
int3int4int8into
ifisisamjoin
keykeyskilllast_insert_id
leadingleftlengthlike
lineslimitloadlocal
locklogslonglongblob
longtextlow_prioritymaxmax_rows
matchmediumblobmediumtextmediumint
middleintmin_rowsminuteminute_second
modifymonthmonthnamemyisam
naturalnumericnonot
nullonoptimizeoption
optionallyororderouter
outpartialpassword
precisionprimaryprocedureprocess
processlistprivilegesreadreal
referencesreloadregexprename
replacerestrictreturnsrevoke
rlikerowrowssecond
selectsetshowshutdown
smallintsonamesql_big_tablessql_big_selects
sql_low_priority_updatessql_log_offsql_log_update
sql_select_limit
sql_small_resultsql_big_resultsql_warningsstraight_join
startingstatusstringtable
tablestemporaryterminatedtext
thentimetimestamptinyblob
tinytexttinyinttrailingto
typeuseusingunique
unlockunsignedupdateusage
valuesvarcharvariablesvarying
varbinarywithwritewhen
whereyearyear_monthzerofill
查看全文
常用SQL吩咐和ASP編程
在進(jìn)行數(shù)據(jù)庫(kù)操作時(shí),無(wú)非就是添加、刪除、修改,這得設(shè)計(jì)到一些常用
的SQL語(yǔ)句,如下:
SQL常用吩咐運(yùn)用方法:
(1)數(shù)據(jù)記錄篩選:
sql="select*from數(shù)據(jù)表where字段名=字段值orderby字段名
[desc]"
sql="select*from數(shù)據(jù)表where字段名like%字段值%orderby字
段名[desc]"
sql="selecttop10*from數(shù)據(jù)表where字段名orderby字段名
[desc]"
sql="select*from數(shù)據(jù)表where字段名in(值1,值2,值3)”
sql="select*from數(shù)據(jù)表where字段名between值1and值2"
(2)更新數(shù)據(jù)記錄:
sql="update數(shù)據(jù)表set字段名=字段值where條件表達(dá)式”
sql="update數(shù)據(jù)表set字段1=值1,字段2=值2字段口二值n
where條件表達(dá)式”
(3)刪除數(shù)據(jù)記錄:
sql="deletefrom數(shù)據(jù)表where條件表達(dá)式"
sql="deletefrom數(shù)據(jù)表”(將數(shù)據(jù)表全部記錄刪除)
(4)添加數(shù)據(jù)記錄:
sql="insertinto數(shù)據(jù)表(字段1,字段2,字段3???)valuess(值1,值2,
值3…)”
sql="insertinto目標(biāo)數(shù)據(jù)表select*from源數(shù)據(jù)表”(把源數(shù)據(jù)表的記
錄添加到目標(biāo)數(shù)據(jù)表)
(5)數(shù)據(jù)記錄統(tǒng)計(jì)函數(shù):
AVG(字段名)得出一個(gè)表格欄平均值
COUNTf*|字段名)對(duì)數(shù)據(jù)行數(shù)的統(tǒng)計(jì)或?qū)δ骋粰谟兄档臄?shù)據(jù)行數(shù)統(tǒng)計(jì)
MAX(字段名)取得一個(gè)表格欄最大的值
MIN(字段名)取得一個(gè)表格欄最小的值
SUM(字段名)把數(shù)據(jù)欄的值相加
引用以上函數(shù)的方法:
sql="selectsum(字段名)as別名from數(shù)據(jù)表where條件表達(dá)式”
setrs=conn.excute(sql)
用rs(”別名”)獲得統(tǒng)的計(jì)值,其它函數(shù)運(yùn)用同上。
(5)數(shù)據(jù)表的建立和刪除:
CREATETABLE數(shù)據(jù)表名稱(字段1類型1(長(zhǎng)度),字段2類型2(長(zhǎng)
度)……)
例:CREATETABLEtabOl(namevarchar(50),datetimedefault
now())
DROPTABLE數(shù)據(jù)表名稱(永久性刪除一個(gè)數(shù)據(jù)表)
在ASP編程時(shí),下面這些語(yǔ)句是必需知道的:
1.連接數(shù)據(jù)庫(kù)
a.ASP與Access數(shù)據(jù)庫(kù)連接:
<%@language=VBscript%>
<%
dimconn,mdb(”數(shù)據(jù)庫(kù)名稱.mdb")
setconn=server.createobject("adodb.connection")
conn.open"driver={microsoftaccessdriver
(*.mdb)};uid=admin;pwd=數(shù)據(jù)庫(kù)密碼;dbq="&mdbfile
%>
b.ASP與SQL數(shù)據(jù)庫(kù)連接:
<%@language=VBscript%>
<%
dimconn
setconn=server.createobject("ADODB.connection")
con.open"PROVIDER=SQLOLEDB;DATASOURCE=SQL服務(wù)器名
稱或IP地址;UID=sa;PWD=數(shù)據(jù)庫(kù)密碼;DATABASE:數(shù)據(jù)庫(kù)名稱
%>
建立記錄集對(duì)象:
setrs=server.createobject("adodb.recordset")
rs.openSQL語(yǔ)句,conn,3,2
2.記錄集對(duì)象的方法:
rs.movenext將記錄指針從當(dāng)前的位置向下移一行
rs.moveprevious將記錄指針從當(dāng)前的位置向上移一行
rs.movefirst將記錄指針移到數(shù)據(jù)表第一行
rs.movelast將記錄指針移到數(shù)據(jù)表最終一行
rs.absoluteposition=N將記錄指針移到數(shù)據(jù)表第N行
rs.absolutepage=N將記錄指針移到第N頁(yè)的第一行
rs.pagesize=N設(shè)置每頁(yè)為N條記錄
rs.pagecount依據(jù)pagesize的設(shè)置返回總頁(yè)數(shù)
rs.recordcount返回記錄總數(shù)
rs.bof返回記錄指針是否超出數(shù)據(jù)表首端,true表示是,false為否
rs.eof返ID記錄指針是否超出數(shù)據(jù)表末端,true表示是,false為否
rs.delete刪除當(dāng)前記錄,但記錄指針不會(huì)向下移動(dòng)
rs.addnew添加記錄到數(shù)據(jù)表末端
rs.update更新數(shù)據(jù)表記錄
附:
常數(shù)常數(shù)值說(shuō)明
adLockReadOnly1缺省值,Recordset對(duì)象以只讀方式啟動(dòng),無(wú)法運(yùn)
行AddNew>Update與Delete等方法
adLockPrssimistic2當(dāng)數(shù)據(jù)源正在更新時(shí),系統(tǒng)會(huì)短暫鎖住其他用戶的
動(dòng)作,以保持?jǐn)?shù)據(jù)一樣性。
adLockOptimistic3當(dāng)數(shù)據(jù)源正在更新時(shí),系統(tǒng)并不會(huì)鎖住其他用戶的
動(dòng)作,其他用戶可以對(duì)數(shù)據(jù)進(jìn)行增、刪、改的操作。
adLockBatchOptimistic4當(dāng)數(shù)據(jù)源正在更新時(shí),其他用戶必需將
CursorLocation屬性改為adUdeClientBatch才能對(duì)數(shù)據(jù)進(jìn)行增、刪、
改的操作。
分類:(一般分類)::評(píng)論(。)::靜態(tài)鏈接網(wǎng)址::引用(。)
<!>
SQLSERVER2000功略(4)自動(dòng)化管理
發(fā)表人:kendy517|發(fā)表時(shí)間:2007年二月09日,11:56
面對(duì)大量反復(fù)的工作,即使一個(gè)優(yōu)秀的管理員也會(huì)感到很大的負(fù)擔(dān)。但為
了保持服務(wù)器維持在最佳運(yùn)行狀態(tài),這些又時(shí)不得不作的工作。這時(shí),
SQLSERVER想你所想,供應(yīng)了自動(dòng)化的管理措施。在我們工作之前,
我們須要了解自動(dòng)化背后的好助手一SQLSERVERAgent,這個(gè)就是
SQLSERVER的代理程序,他是運(yùn)行在后臺(tái)的服務(wù),可謂是幕后英雄!
那他有什么功能呢,如下:
①作業(yè)調(diào)度。
②執(zhí)行作業(yè)。
③產(chǎn)生報(bào)警。
④在指定的事務(wù)發(fā)生時(shí),通知指定的管理員或操作員。
說(shuō)到這里,我們就談?wù)勛詣?dòng)化中的角色:操作員,作業(yè),警報(bào)。
操作員:所謂的操作員只是人名與其通信方式(可有電子郵件地址,呼叫
器或NETSEND的目的地三種)的設(shè)置而已。只要將服務(wù)器管理人員的
聯(lián)絡(luò)方式都以操作員設(shè)置妥當(dāng)時(shí),當(dāng)SQLSERVER遇到各種須要處理的
狀況,SQLSERVERAgent就會(huì)通過(guò)指定的方式通知管理人員前來(lái)完成,
以達(dá)到與時(shí)的解除各種問(wèn)題。
作業(yè):作業(yè)是SQLSERVERAgent諸多功能中最常用的。所謂作業(yè)就是
可讓SQLSERVERAgent自動(dòng)執(zhí)行的一組操作,它既可以自動(dòng)執(zhí)行(這
個(gè)就涉與到調(diào)度),也可以手動(dòng)執(zhí)行。在定義作業(yè)必需留意以下內(nèi)容:作
業(yè)的名稱,作業(yè)的種類,作業(yè)的全部者,作業(yè)的說(shuō)明文字。
警報(bào):就是指針對(duì)特殊的事務(wù),要發(fā)信給操作員的設(shè)置。在作業(yè)的設(shè)置中
的“通知”頁(yè)面中指定了要將作業(yè)執(zhí)行狀態(tài)通知操作員時(shí),其實(shí)就是在設(shè)
置警報(bào)(如下圖)
L__lscreen.width-333)this.width=screen.width-333',border="0"
galleryimg="no"/>
在定義警報(bào)時(shí),可有兩種設(shè)置事務(wù)的方式,一種是指明白針對(duì)某特定事務(wù),
也就是只要在服務(wù)器發(fā)生該事務(wù)。另一種是指定事務(wù)的嚴(yán)峻度(Serverity),
只要是達(dá)到指定嚴(yán)峻程度的全部事務(wù),SQLSERVERAgent就會(huì)發(fā)信通
知操作員。
了解了概念,就是動(dòng)手的時(shí)候了,這些我們就以圖片給與說(shuō)明,第一個(gè)我
們新建“操作員“,過(guò)程如下:
n,
I__________Lcreen.width-333)this.width=sc】een.width-333,t
boidei="0"galleryimg="no"/>
接著新建“作業(yè)“過(guò)程如下:
screen.width-333)this.width=screen.width-333”
borde尸“0"galleryimg="no"/>
borde尸“0"galleryimg="no'/>
再來(lái)看看“警報(bào)”的創(chuàng)建過(guò)程:
screen.width-333)this.width=screen.width-333"border="0"
galleryimg="iio”/>
(留意在建立警報(bào)的“響應(yīng)”欄目里,對(duì)應(yīng)著相應(yīng)的作業(yè)和操作員)
談過(guò)了這些功能,是不是覺(jué)得真是很便利呀,當(dāng)然了良好的運(yùn)用不僅僅就
這簡(jiǎn)潔的幾步,這須要大家在應(yīng)用中適時(shí)的總結(jié)以適應(yīng)我們的須要?,F(xiàn)在,
我們?cè)僬務(wù)撘粋€(gè)SQLSERVER
的另一項(xiàng)不錯(cuò)的功能一腳本。
所謂的利用腳本,就是可以將數(shù)據(jù)庫(kù)對(duì)象或服務(wù)器中的其他對(duì)象以腳本
(Script)方式存入文件,也就是存成SQL程序以供我們接著利用。
同樣腳本也可以用于這里的自動(dòng)化管理。例如:我們可以將操作員,作業(yè)
和警報(bào)等對(duì)象存成Script文件后,再拿到別的服務(wù)器上加以利用。這是不
是在不同的服務(wù)器上創(chuàng)建相同的操作員等重復(fù)的工作了。這就是腳本的效
率所在。
假如須要存為腳本文件,可以在企業(yè)管理器中右擊相應(yīng)的對(duì)象在“全部任
務(wù)”/"生成SQL腳本”吩咐,設(shè)置確定即可。
談了上面的自動(dòng)化管理的方式是很好用的,但好像是不是缺乏全面性,要
為自己的服務(wù)器構(gòu)建一套完善的自動(dòng)化維護(hù)機(jī)制,可能須要花費(fèi)不少心
力,但是將大部分的日常維護(hù)工作適度的自動(dòng)化,多少可以減輕管理上的
負(fù)擔(dān),為此SQLSERVER還供應(yīng)了一項(xiàng)可以將整套數(shù)據(jù)庫(kù)維護(hù)工作自動(dòng)
化的功能,這就是數(shù)據(jù)庫(kù)的維護(hù)支配。
我們可以在企業(yè)管理器中執(zhí)行“工具"/數(shù)據(jù)庫(kù)維護(hù)支配器,這樣就見(jiàn)到
了如F界面,依次設(shè)置即可。
這次的探討就說(shuō)到這里,關(guān)于自動(dòng)化管理,我不用說(shuō)大家都明白,合理的
設(shè)置會(huì)給你的工作帶來(lái)什么樣的影響,好好體會(huì),讓工作更加輕松!
分類:(一般分類)::評(píng)論(0)::靜態(tài)鏈接網(wǎng)址::引用(0)
<!>
SQLSERVER2000功略⑶一數(shù)據(jù)庫(kù)的登陸與其用戶權(quán)限
發(fā)表人:kendy517|發(fā)表時(shí)間:2007年二月09日,11:54
SQLSERVER2000功略⑶一數(shù)據(jù)庫(kù)的登陸與其用戶權(quán)限
SQLSERVER2000功略一數(shù)據(jù)庫(kù)的登陸與其用戶權(quán)限
說(shuō)過(guò)了兩章純粹的理論,是不是有乏味的感覺(jué),好,我們從這一講就進(jìn)入
實(shí)質(zhì)的管理階段。首先,我們探討的是SQLSERVER平安管理中的登陸
和權(quán)限問(wèn)題。
SQLSERVER的登陸是平安管理的第一關(guān)。這個(gè)確定了那些人可以運(yùn)用
SQLSERVER(就像進(jìn)屋時(shí)的房門(mén)鑰匙)。關(guān)于登陸限制,SQLSERVER
則采納了兩種不同的檢查方式:windows驗(yàn)證和windows,sqlserver
混合驗(yàn)證。前者就是我們登陸windows時(shí)的用戶帳號(hào),而后者則是在保
留前者的前提下也允許SQLSERVER中建立的登陸帳號(hào)。這也是為用戶
供應(yīng)便利的選擇。
我們擁有了登陸的帳號(hào),就可以進(jìn)入SQLSERVER的限制中心,那我們
可以做些什么哪?這個(gè)確定是有限制的進(jìn)行的。SQLSERVER中的訪問(wèn)
權(quán)限分為兩方面,分別是:服務(wù)器本身的操作權(quán)限和數(shù)據(jù)庫(kù)的訪問(wèn)權(quán)限。
我們分別加以簡(jiǎn)介:
服務(wù)器的操作權(quán)限是從真?zhèn)€服務(wù)器來(lái)說(shuō)的,是面對(duì)全部數(shù)據(jù)庫(kù)的定義。例
如:是否有權(quán)創(chuàng)建或者刪除登陸帳號(hào),是否可以建立數(shù)據(jù)庫(kù)等等。這些也
就是通過(guò)設(shè)置服務(wù)器角色(serverrole)來(lái)實(shí)現(xiàn)的。SQLSERVER內(nèi)建
了七個(gè)服務(wù)器角色,分別代表七種服務(wù)器工作的操作權(quán)。
數(shù)據(jù)庫(kù)的訪問(wèn)權(quán)限就是針對(duì)某一個(gè)數(shù)據(jù)庫(kù)而言的。他可以分為兩層,第一
層是限制何人訪問(wèn)數(shù)據(jù)庫(kù),其次層限制可訪問(wèn)數(shù)據(jù)庫(kù)中的那些表,視圖和
存儲(chǔ)過(guò)程,以與是否可以用select,insert,update等等。這個(gè)權(quán)限往往是
通過(guò)數(shù)據(jù)庫(kù)角色得以實(shí)現(xiàn)的。
(服務(wù)器角色不行以自定義,數(shù)據(jù)庫(kù)角色可以自定義)
僅僅知道上面這些概念是不行的,因?yàn)镾QLSERVER中的權(quán)限是比較困
難的,因?yàn)楸舜酥g可能存在某些權(quán)鏈。所以僅僅概念是不簡(jiǎn)潔說(shuō)清的,
我們探討的就是基礎(chǔ)的東西,懂得了這些在真正工作中才可以更好的駕馭
管理技能。我們簡(jiǎn)潔的談?wù)剻?quán)鏈的問(wèn)題吧!
由于每個(gè)對(duì)象都有他自己的擁有權(quán)信息,這個(gè)對(duì)象可能和其他對(duì)象存在確
定的依存關(guān)系,比如:一個(gè)視圖是從另外一個(gè)視圖建立過(guò)來(lái)的。這些相互
依存的對(duì)象關(guān)系可能拉的很長(zhǎng),因此相依存的對(duì)象的擁有權(quán)就形成一個(gè)由
上而下的鏈結(jié),這在SQLSERVER中就稱作擁有權(quán)鏈(Ownership
Chain)o正是由于這樣,可能所產(chǎn)生的訪問(wèn)權(quán)限變得特別困難。所以,
我們?cè)谶@里提出以視圖和存儲(chǔ)過(guò)程來(lái)限制訪問(wèn)范圍。通過(guò)視圖確定用戶可
以訪問(wèn)的內(nèi)容,然后把視圖的相關(guān)權(quán)限給予詳細(xì)的用戶,這樣可以有效的
減輕權(quán)限設(shè)置的工作量(特殊是用戶訪問(wèn)范圍跨度較大的狀況F)。除了
視圖,我們也可以自定義存儲(chǔ)過(guò)程來(lái)對(duì)數(shù)據(jù)的訪問(wèn)加以限制,即把一組可
查詢某特定數(shù)據(jù)的語(yǔ)句存成存儲(chǔ)過(guò)程,然后將其execute權(quán)限設(shè)置給用
戶,用戶就可以執(zhí)行他來(lái)取得數(shù)據(jù)了。這樣省去了許多困難的授權(quán)過(guò)程,
是不是很便利呀!
簡(jiǎn)潔的說(shuō)了說(shuō)這些,我們?cè)賮?lái)談?wù)凷QLSERVER中特殊的東西:sa帳號(hào),
public數(shù)據(jù)庫(kù)角色,guest數(shù)據(jù)庫(kù)用戶。
Sa是SQLSERVER默認(rèn)的管理員帳號(hào),主要是為了向下兼容而設(shè)置的。
這個(gè)也就是安裝好SQLSERVER時(shí)就有的帳號(hào),而且權(quán)限極大,所以在
安裝過(guò)程中最好把他的密碼進(jìn)行設(shè)置,不要為空。這個(gè)帳號(hào)相當(dāng)于服務(wù)器
角色中的systemadministrator,而且不行以刪除。
Public數(shù)據(jù)庫(kù)角色是一個(gè)公共的數(shù)據(jù)庫(kù)角色,也就是說(shuō)當(dāng)你新建一個(gè)數(shù)據(jù)
庫(kù)角色的時(shí)候,默認(rèn)的就屬于這個(gè)角色。這個(gè)也是不行刪除的。所以為了
平安期間,我們對(duì)public數(shù)據(jù)庫(kù)對(duì)象不要給予過(guò)多的權(quán)限(除非有這個(gè)
須要)。
Guest是一個(gè)特殊的數(shù)據(jù)庫(kù)用戶,類似于windowsNT/2000下的guest
帳號(hào),都是給未經(jīng)授權(quán)的用戶供應(yīng)某種程度的訪問(wèn)權(quán)限。假如不須要這個(gè)
用戶可以將其刪除。
說(shuō)了這些概念,其實(shí)現(xiàn)都是通過(guò)“企業(yè)管理器”實(shí)現(xiàn)的,我們就這些談?wù)?/p>
用相應(yīng)的系統(tǒng)存儲(chǔ)過(guò)程:
登陸管理:sp_addlogin新增帳號(hào)
sp_droplogin刪除帳號(hào)
sp_grantlogins允許某windows帳號(hào)訪問(wèn)
sp_denylogins禁止某windows帳號(hào)訪問(wèn)
sp_revokelogins刪除某windows帳號(hào)訪問(wèn)
sp_helplogin查看帳號(hào)信息
sp_addsrvrolemember將某用戶添力口至ij服務(wù)器角色
sp_dropsrvrolemember將某用戶從數(shù)據(jù)庫(kù)角色中刪除
sp_helpsrvrole查看服務(wù)器角色的信息
數(shù)據(jù)庫(kù)用戶管理:sp_grantaccess建立數(shù)據(jù)庫(kù)用戶
sp_revokedbaccess刪除數(shù)據(jù)庫(kù)用戶
sp_helpuser查看用戶信息
數(shù)據(jù)庫(kù)角色管理:sp_addrole建立數(shù)據(jù)庫(kù)角色
sp_addrolemember將用戶加入數(shù)據(jù)庫(kù)角色
sp_helprole查看數(shù)據(jù)庫(kù)角色信息
sp_helprolemember查看某數(shù)據(jù)庫(kù)角色的全部成員
sp_droprole刪除角色
sp_droprolemember刪除角色中的某一成員
好了,看了上面的不要感覺(jué)麻煩呀,這可是讓你高效工作的珍寶呀,熟能
生巧,我們一起聯(lián)系多了,其實(shí)駕馭就覺(jué)得很輕松了!接著努力?。海?/p>
分類:(一般分類)::評(píng)論(0)::靜態(tài)鏈接網(wǎng)址::引用(0)
<!>
SQLSERVER2000攻略⑴一工作流程篇
發(fā)表人:kendy517|發(fā)表時(shí)間:2007年一月09日,11:51
SQLSERVER2000是windows平臺(tái)上一個(gè)重要的數(shù)據(jù)管理工具。了解
數(shù)據(jù)庫(kù)的摯友對(duì)他確定很熟識(shí)。我們就此在這里作一系列的探討,希望通
過(guò)這次的溝通我們對(duì)SQLSERVER200。有個(gè)深刻的理解。首先,我們探
討一卜他的工作流程,這可是工作的基礎(chǔ)呀,好,我們起先了!
簡(jiǎn)潔的說(shuō),SQLSERVER2000是個(gè)采納主從結(jié)構(gòu)的關(guān)系數(shù)據(jù)庫(kù)系統(tǒng)。哈,
是不是太簡(jiǎn)潔,終歸現(xiàn)在市面上的數(shù)據(jù)庫(kù)產(chǎn)品幾乎都是這個(gè)結(jié)構(gòu)。我們來(lái)
深化一點(diǎn),所謂SQLSERVER的主從結(jié)構(gòu)(Client/Server),就是由
SQLSERVER扮演存放數(shù)據(jù)和供應(yīng)數(shù)據(jù)給客戶端的角色,當(dāng)用戶要取用
數(shù)據(jù)時(shí),則可調(diào)用各種不同的客戶端應(yīng)用程序,通過(guò)SQLSERVER所支
持的接口,向SQLSERVER供應(yīng)懇求,然后取得數(shù)據(jù)庫(kù)中的數(shù)據(jù)并返回
給用戶。這個(gè)過(guò)程應(yīng)當(dāng)好理解吧。
看了這個(gè)是不是覺(jué)得很easy呀!其實(shí),這只是比較傳統(tǒng)的雙層式
Client/Server結(jié)構(gòu),近年來(lái)三層式或者多層式主從結(jié)構(gòu)的應(yīng)用正在流行。
例如:協(xié)作微軟的BackOffice中的其他服務(wù)器產(chǎn)品,即可建立多層主從
運(yùn)算模式。
了解了基本的數(shù)據(jù)流程,那是不是要問(wèn)是什么實(shí)現(xiàn)客戶端與服務(wù)器之間的
溝通哪?這個(gè)是個(gè)比較有意義的問(wèn)題。我們知道了作什么,就應(yīng)改知道他
是怎么做的。所謂,打破沙鍋問(wèn)究竟!我們說(shuō)一下工作原理:SQLSERVER
供應(yīng)了多種不同的接口讓客戶端(應(yīng)用程序)順當(dāng)與服務(wù)器進(jìn)行溝通,在
此接口的基礎(chǔ)上,由NET-Library(網(wǎng)絡(luò)函數(shù)庫(kù))建立兩邊IPC
(InterprocessCommication)通訊管道來(lái)進(jìn)行工作。詳細(xì)的說(shuō)就是:
當(dāng)客戶端程序運(yùn)用某種接口向服務(wù)器提出查詢懇求時(shí),數(shù)據(jù)庫(kù)接口驅(qū)動(dòng)程
序調(diào)用客戶端的Net-library,而Net-library則調(diào)用IPC應(yīng)用程序接口產(chǎn)
生IPC,通過(guò)IPC送達(dá)服務(wù)端,服務(wù)端接受懇求后經(jīng)SQLSERVER處理,
以同樣的方式將結(jié)果送回客戶端。(這個(gè)過(guò)程有兩個(gè)狀況,Client和Server
在同一臺(tái)計(jì)算機(jī)上,Net-library會(huì)運(yùn)用localIPC,假如是網(wǎng)絡(luò)存取,則會(huì)
有雙方所運(yùn)用的網(wǎng)絡(luò)協(xié)議產(chǎn)生RemoteIPC)圖示如下:
了解了外部工作機(jī)制,咱們看看服務(wù)端是怎么分工的,終歸多數(shù)的數(shù)據(jù)工
作是由服務(wù)器完成的。整體上說(shuō),整個(gè)SQLSERVER的數(shù)據(jù)管理系統(tǒng)分
為如下幾個(gè)組件:
AOpenDataService(ODS):負(fù)責(zé)處理由Net-library送來(lái)的查詢懇求,
ODS會(huì)調(diào)用SQLSERVER的內(nèi)部功能來(lái)完成客戶端的需求。
▲SQLServerService:這個(gè)SQLSERVER的“心臟”負(fù)責(zé)管理我們的
數(shù)據(jù)庫(kù),以與全部建立,查詢和修改的數(shù)據(jù)庫(kù)的操作。此數(shù)據(jù)庫(kù)管理系統(tǒng)
的核心又分為幾個(gè)單元,其中最主要的兩個(gè)單元就是負(fù)責(zé)解SQL語(yǔ)法和
支配查詢執(zhí)行支配等工作的關(guān)系引擎(RelationalEngine),以與負(fù)責(zé)管
理數(shù)據(jù)庫(kù)文件和文件讀寫(xiě)等工作的存儲(chǔ)引擎(StorageEngine)。這兩個(gè)
組件之間則是通過(guò)OLEDB接口來(lái)通信的。
▲SQLSERVERAgentfSQLSERVER代言程序):可以說(shuō)此組件是重要
性僅次于SQLSERVERService的組件,這個(gè)服務(wù)供應(yīng)了有關(guān)工作編排,
以與服務(wù)器有問(wèn)題時(shí)通知管理員等相關(guān)功能的支持。
▲MSDTCService:假如將SQLSERVER安裝在多臺(tái)服務(wù)器上,要讓客
戶端能夠在單個(gè)事務(wù)中對(duì)不同的服務(wù)器(數(shù)據(jù)源)進(jìn)行處理,就須借助
MSDTC(MicrosoftDistributedTransactionCoordinator)Service來(lái)
負(fù)責(zé)這類分布式事務(wù)的協(xié)調(diào)工作,以確保在各個(gè)數(shù)據(jù)庫(kù)上的更改操作能正
確完成。
了解了上面的過(guò)程,是不是有點(diǎn)印象了,來(lái)我們理清一下思路,問(wèn)一下自
己:客戶端的工作懇求怎么傳遞給服務(wù)器的?服務(wù)器又是怎么處理相應(yīng)的
懇求的?仔細(xì)想想這兩個(gè)問(wèn)題,其實(shí)你會(huì)覺(jué)得原來(lái)“不過(guò)如此"!八_八
分類:(一般分類)::評(píng)論(0)::靜態(tài)鏈接網(wǎng)址::引用(0)
<!>
SQLSERVER中運(yùn)用存儲(chǔ)過(guò)程(StoredProcedure)
發(fā)表人:kendy517|發(fā)表時(shí)間:2007年二月09日,11:50
隨著SQLSERVER不斷的學(xué)習(xí),相識(shí)的深化,我們會(huì)發(fā)覺(jué)越來(lái)越多的功
能呈現(xiàn)在我們面前,這些功能都是特別強(qiáng)大的,在我們應(yīng)用中發(fā)揮著特別
有意義的作用,也因此感知作為一個(gè)大型的數(shù)據(jù)庫(kù)管理系統(tǒng)的魅力所在。
從這一篇起先,我們著手探討“存儲(chǔ)過(guò)程”觸發(fā)器”游標(biāo)”
事務(wù)“和”鎖”的應(yīng)用,假如嫻熟的駕馭了這些,我想駕馭SQLSERVER
的實(shí)力將是一個(gè)新的層次。學(xué)習(xí)是為了應(yīng)用,駕馭就是為了解決問(wèn)題。希
望通過(guò)我們一起的學(xué)習(xí),我們都可以很好的利用這個(gè)工具為我們服務(wù)。這
是我們學(xué)習(xí)的目的也是我們的奮斗目標(biāo)。好,我們接著吧!
說(shuō)起存儲(chǔ)過(guò)程,我們先了解他的概念,這是我們探討必走的第一步:存儲(chǔ)
過(guò)程就是將所須要的工作,預(yù)先以SQL程序?qū)懞?,命名后進(jìn)行保存,以
后須要作這些工作時(shí)可以運(yùn)用EXECUTE指令來(lái)調(diào)用,即可自動(dòng)完成相
應(yīng)任務(wù)。這里的存儲(chǔ)過(guò)程也是自動(dòng)化的一個(gè)方面,總之就是為了便利管理
的一種措施。讓我來(lái)說(shuō)說(shuō)他的優(yōu)點(diǎn)吧:
1.執(zhí)行效率高(這點(diǎn)不容置疑)
2.統(tǒng)一的操作流程:也就是通過(guò)存儲(chǔ)過(guò)程的操作避開(kāi)了一些操作過(guò)程中
可能無(wú)意中認(rèn)為的錯(cuò)誤,只要確定了制作存儲(chǔ)過(guò)程時(shí)是正確地,以后在調(diào)
用過(guò)程中就不用擔(dān)憂了。大家運(yùn)用時(shí)流程是一樣的。
3.重復(fù)運(yùn)用
4.平安性:這一點(diǎn)我們?cè)跀?shù)據(jù)庫(kù)的平安策略里探討過(guò),可以參考前邊的
文章。也就是說(shuō):我們可以利用存儲(chǔ)過(guò)程作為數(shù)據(jù)存儲(chǔ)的管道。可以讓客
戶在確定的范圍內(nèi)對(duì)數(shù)據(jù)進(jìn)行操作。另外,存儲(chǔ)過(guò)程是可以加密的,這樣
別人就看不到他的內(nèi)容了。
存儲(chǔ)過(guò)程分為三類:
系統(tǒng)存儲(chǔ)過(guò)程(SystemstoredProcedure)sp_開(kāi)頭,為SQLSERVER
擴(kuò)展存儲(chǔ)過(guò)程(ExtendedstoredProcedure),也就是外掛程序,用于
擴(kuò)展SQLSERVER的功能,以sp_或者xp_開(kāi)頭,以DLL的形式單獨(dú)存
在。
bordei="0"galleryimgdno”/>
A(視察上面的你會(huì)發(fā)覺(jué)系統(tǒng)存儲(chǔ)過(guò)程和擴(kuò)展存儲(chǔ)過(guò)程都是在master數(shù)
據(jù)庫(kù)中。sp_開(kāi)頭的可是全局的,任何一個(gè)數(shù)據(jù)庫(kù)都可以干脆調(diào)用的。)
用戶定義的存儲(chǔ)過(guò)程(User-definedstoredProcedure),這個(gè)就是用
戶在詳細(xì)的數(shù)據(jù)庫(kù)中自己定義的,名字最好不要以sp_和xp_開(kāi)頭,防止
混亂。
了解了基本概念,就到應(yīng)用的階段了。
首先創(chuàng)建一個(gè)存儲(chǔ)過(guò)程(在pubs數(shù)據(jù)庫(kù)中),我們命名為MyProce示例代
碼如下(功能為向stores表中插入stor_id,stor_name兩個(gè)字段值):
createprocedureMyProce
@paramlchar(4),@param2varchar(40)—定義參數(shù),作為存儲(chǔ)過(guò)程
的接口
withencryption一存儲(chǔ)過(guò)程加密
asinsertstores(stor_id,stor_name)values(@param1,@param2)
go
我們?nèi)绱苏{(diào)用:
execMyProce'111111'Leijun,book,--參數(shù)賦值,調(diào)用存儲(chǔ)
過(guò)程
用企業(yè)管理器創(chuàng)建如圖所示:
假如我們要修改,可以查看相應(yīng)的存儲(chǔ)過(guò)程的“屬性“,如上圖在"文本
“窗體中修改。
但是留意我們這個(gè)因?yàn)橛昧藈ithencryption語(yǔ)句,所以,打開(kāi)時(shí)將有下
面的提示,不允許查看,這也就是加密。
H
I__________lscreen.width-333)this.width=scieen.width-333”
borde尸“0"galleryimg="no'/>
看了上面的是不是有所了解了,其實(shí)創(chuàng)建時(shí)還有其他的參數(shù)可以運(yùn)用,我
們這里只是一個(gè)簡(jiǎn)潔的例子,更多的應(yīng)用須要我們?cè)趯?shí)踐中不斷的總結(jié),
這樣才能更加敏捷的應(yīng)用。下面我們?cè)賮?lái)看一個(gè)創(chuàng)建的例子(這個(gè)的作用
是在authors表中查找一個(gè)人名,表中把一個(gè)名字分為兩字段存儲(chǔ)了,假
如查到了,打印“查有此人ID:"與其au_id字段值):
CREATEprocedureSearchMe
@param1varcharl10),@param2varchar(30)
select@param2=au_id
fromauthors
whereau_fname+au_lname=@param1
if@@rowcount>0--全局變量,記錄影響到的行
print,查有此人ID:'+@param2
GO
我們這樣執(zhí)彳?。篍xecSearchMe<leijun,,null
由于查找到了所以顯示如下:
H
I__________lscreen.width-333)this.width=scieen.width-333”
borde尸“0"galleryimg="no'/>
例子就簡(jiǎn)潔列舉這些,因?yàn)樗拿艚菪院艽?,所以我們只?jiǎn)潔的說(shuō)明一下,
假如要更好的利用,這就須要我們不斷的摸索了。
下面我們談?wù)勥\(yùn)用過(guò)程中我了解到的留意事項(xiàng):
1.在存儲(chǔ)過(guò)程中,有些建立對(duì)象的語(yǔ)句是不行運(yùn)用的:create
default,createtrigger,createprocedure,createview,createrule.
2.在同一數(shù)據(jù)庫(kù)中,不同的全部者可以建立相同名稱的對(duì)象名。例如:
a.sample,b.sample,c.sample三個(gè)數(shù)據(jù)表可以同時(shí)存在。假如存儲(chǔ)過(guò)程
中未指明對(duì)象的全部者(例如存儲(chǔ)過(guò)程中的語(yǔ)句select*fromsample,
這句中的sample沒(méi)有指明全部者),在執(zhí)行的過(guò)程中默認(rèn)的全部者杳找
依次是:相應(yīng)的存儲(chǔ)過(guò)程的建立者一>相應(yīng)數(shù)據(jù)庫(kù)的全部者。假如這個(gè)查
找過(guò)程中沒(méi)有把全部者確定下來(lái),系統(tǒng)就要報(bào)錯(cuò)。
(這里我額外插一句:假如須要嚴(yán)密的數(shù)據(jù)操作,在任何操作中盡量加上
全部者,例如le燈un.sample)
3.在存儲(chǔ)過(guò)程名稱前邊添加#或者##,所建立的存儲(chǔ)過(guò)程則是“臨時(shí)
存儲(chǔ)過(guò)程“(#是局部臨時(shí)存儲(chǔ)過(guò)程,##是全局臨時(shí)存儲(chǔ)過(guò)程)。
上面的都是一些簡(jiǎn)潔忽視的,特殊是其次條,我們確定的仔細(xì)思索,或許
這些有意無(wú)意的忽視是我們?cè)斐慑e(cuò)誤的根源??!
轉(zhuǎn)載自:leijun
分類:(一般分類)::評(píng)論(0)::靜態(tài)鏈接網(wǎng)址::引用(。)
<!>
[Php+APACHE+MySQL][或在windows已裝IIS下的]配置
發(fā)表人:kendy517|發(fā)表時(shí)間:2007年二月。9日,09:30
前段時(shí)間的文章:
可以一看,但是其對(duì)本篇價(jià)值是1%.希望本篇能補(bǔ)充之缺陷.
一:下載安裝程序
Apache可以從下載
PHP可以從下載.
mysql在下載.
二安裝程序(以下以2k為例說(shuō)明,其他windows系統(tǒng)的類似)
首先假如您安裝了HS的話,Internet服務(wù)管理器一〉默認(rèn)web站點(diǎn)右
擊一>停止.
1:先是Apache,有4.2M左右,沒(méi)啥說(shuō)的,點(diǎn)擊安裝到D盤(pán),為了方西系統(tǒng)
重裝,D盤(pán)便利.一路會(huì)很簡(jiǎn)潔的安裝的勝利.
2:php5.1.X的安裝版是2.44m左右,可以點(diǎn)擊安裝,選擇服務(wù)器的時(shí)候
選擇apache,不過(guò),沒(méi)有組建擴(kuò)展,還有下載擴(kuò)展的dll文件包(有的19m
左右,不確定),復(fù)制到C:WINNT書(shū)目下面的.可以干脆復(fù)制到d盤(pán)文件下面
也可以,筆者不知道為什么選擇了第一種.
3:MySQL我下載的是4.1.7版本,36.7M左右,也是一路點(diǎn)擊,然后啟動(dòng)
之.
三:必要設(shè)置
假如我們要運(yùn)用CGI二進(jìn)制文件,那么我們耍將如下指令插入到Apache
的d.conf配置文件中,以設(shè)置CGI二進(jìn)制文件:
PHP以CGI方式安裝到Apache:
ScriptAlias/php/"D:/php/n
AddTypeapplication/x-d-php.php
Actionapplication/x-d-php"/php/php.exe”
假如我們想把PHP作為Apache2.0的模塊,那么就確定要移動(dòng)
php4ts.dll至|jwinnt/system32(WindovzsNT/2000)或
windows/system32(WindowsXP),覆蓋原有文件(假如有的話),
對(duì)于PHP5,這個(gè)文件是php5ts.dllo然后我們要插入如下兩行到
d.conf中,以使我們的PHP作為Apache的PHP-Module安裝:
PHP以模塊方式安裝到Apache:
;ForPHP5dosomethinglikethis:
LoadModulephp5_module"c:/php/php5apache2.dll"
AddTypeapplication/x-d-php.php
添加這2行代碼到d.conf,d.conf文件可通過(guò)計(jì)算機(jī)搜尋找
出.哈哈….
再在里面找出:
DocumentRoot"D:/web/web/php"
相關(guān)行,可以修改成自己的php網(wǎng)站根書(shū)目.
假如你把那些擴(kuò)展都復(fù)制到C:winnt下面的話.
測(cè)試:vhtml>
<body>
<?phpinfoQ;?>
</body>
<html>
應(yīng)當(dāng):正常可以看到的.
關(guān)于連接MySQL的,請(qǐng)看:
為了您的HS能接著工作,請(qǐng)?jiān)趇nternet信息服務(wù)>默認(rèn)web站點(diǎn)
右擊屬性一。IP地址:192?168.1.105,端口:81,否則會(huì)提示端口以已
運(yùn)用之類的信息.
完畢,有問(wèn)題請(qǐng)立刻提出,早安.
天氣:大雨,ccdot發(fā)表于2006-1-212:48:43,閱讀了460次,共有個(gè)1回
復(fù).
花了大半天的時(shí)間,最終把全新的php平臺(tái)建了起來(lái),歷經(jīng)了太多錯(cuò)誤和
反復(fù),看了網(wǎng)上多數(shù)篇教材,可仍錯(cuò)漏百出,唉,真不知道那些寫(xiě)教程的
人在寫(xiě)什么。不過(guò)蒼天不負(fù)有心人,摸索了好久,最終還是勝利了.:)..
寫(xiě)下來(lái),以后也有個(gè)參照。
調(diào)試環(huán)境如下:
OS:win2000sp4
apache_2052-win32(msi格式)
php-5.0.2-Win32(zip包)
mysql-5.0.1-alpha-snapshot-win(zip包)
全部程序(apache,php,mysql)安裝在F:/server書(shū)目下。
?解壓php到f:/serverphp文件夾中。
PHP.ini的一些配置
.dojroot=F:/phpf〃默認(rèn)php文檔位置,設(shè)為apache中一樣,偶
沒(méi)設(shè),卻也行!!
,extension_dir=F:/server/php/ext//擴(kuò)展文件位置,用作支持
mysql,確定要設(shè)正確
.session.save_path=c:/temp//session存儲(chǔ)位置
,cgi.force_redirect=0〃假如出現(xiàn)SecurityAlert!ThePHPCGI
cannotbeaccesseddirectly的警告,設(shè)置此值
.register_global,把它設(shè)置為on.//避開(kāi)post變量不能傳遞
.display_errors=on//顯示錯(cuò)誤消息
?裝好apache到f:/server/apache2,首先讓Apache2能支持php5
1、打開(kāi)apache的配置文件,添加如下兩行(php安裝在F:/servei7Php
下)
,AddTypeapplication/x-d-php.php
,LoadModulephp5_moduleF:/server/php/php5apache2.dll
這樣就已經(jīng)可以支持了phpT,不知網(wǎng)上的教程里為什么還要把那些
dll文件復(fù)制得滿天飛(版本是相同的),郁悶。
2、d.conf的一些其他必要設(shè)置:
.索引頁(yè)名稱Directoryindexindex.php
.默認(rèn)文檔位置,設(shè)置DocumentRoot路徑
3、網(wǎng)上流傳的配置,我沒(méi)有copy,但也勝利了。
.把php5ts.dll復(fù)制到winnt書(shū)目或system書(shū)目中
?安裝mysql到f:/servermysql中。運(yùn)行bin書(shū)目中
winmysqladmin.exeo設(shè)置你的用戶名和密碼,端口不必更改。
?接著讓PHP支持Mysql數(shù)據(jù)庫(kù)
.將安裝書(shū)目中的php.ini-recommended復(fù)制到winnt書(shū)目中,改名
為php.ini
查找[MySQL]字段內(nèi)的內(nèi)容.修改如下.
mysql.default_port=3306
//這里是MYSQL的端口.
mysql.default_host=localhost
//這里是本地主機(jī).
mysql.default_user=root
//這里是用戶
mysql.default_password=abcdefg
//這里是密碼
修改到這里就可以讓Php與MYSQL關(guān)聯(lián)了.
最終啟動(dòng)PHP對(duì)MYSQL模塊支持.
查找extension=php_mysql.dll字串.刪除掉前面的;號(hào)
extension=php_mysql.dll
請(qǐng)留意.假如不啟動(dòng)PHP對(duì)MYSQL模塊支持.將無(wú)法使
PHPMYADMIN正常工作.將提示:
cannotloadMySQLextension,pleasecheckPHPConfiguration
無(wú)法裝入MySQL擴(kuò)展,請(qǐng)檢查PHP的配置。
可是我設(shè)置完這樣,重啟apache卻出現(xiàn)找不到libmySQL.dll動(dòng)態(tài)鏈接
庫(kù)的提示,幾經(jīng)熬煎才發(fā)覺(jué),必需把php中的libmysql.dll復(fù)制到apache
中的bin書(shū)目中才ok(網(wǎng)上教材可沒(méi)有)。
?讓apache也支持mysql
把php書(shū)目下的libmySQL.dll復(fù)制到apache的bin書(shū)目下。
ok,調(diào)試phpinfo。,一切正常??墒俏覍?xiě)了句echo"我愛(ài)你”;,就出現(xiàn)
了中文亂碼。老問(wèn)題,從網(wǎng)上搜得一段話,順當(dāng)解決了問(wèn)題。
?緣由很簡(jiǎn)潔,由于Apache它默認(rèn)的編碼是西歐編碼,你只要在
“d.conf”中找到“AddDefaultCharsetISO-8859-1”將它修改
為"AddDefaultChaxsetGB2312”,保存然后重新啟動(dòng)Apache再試,
可能有的摯友的已經(jīng)解決了,但還是有許多的摯友的網(wǎng)站依舊是亂碼,包
括我的,這是什么緣由呢,網(wǎng)上也有介紹把它改為uAddDefaultCharset
off“,可能在你的網(wǎng)站也不確定行得通,實(shí)質(zhì)問(wèn)題在于它是由網(wǎng)頁(yè)制作
軟件引起的,假如你運(yùn)用的是Macromedia公司的Dreamweaver系列
軟件制作的,由于它的編碼為“gb2312”,所以就會(huì)出現(xiàn)亂碼,
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 老年人日常護(hù)理技巧
- 隆鼻手術(shù)恢復(fù)期護(hù)理細(xì)節(jié)
- 護(hù)理精神科護(hù)理特殊性與挑戰(zhàn)
- 護(hù)理中的疼痛管理與緩解策略
- 大豐市小海中學(xué)高中化學(xué)檢測(cè)期末串講(下)
- 2025年保險(xiǎn)合作協(xié)議書(shū)
- 垂直市場(chǎng)廣告競(jìng)爭(zhēng)策略研究
- 2026 年中職康復(fù)治療技術(shù)(柔韌性訓(xùn)練)試題及答案
- 英語(yǔ)b級(jí)的試題及答案
- 基于“大單元”視角的高中思政課教學(xué)策略研究
- 跨區(qū)域文化協(xié)作-洞察及研究
- 2025 易凱資本中國(guó)健康產(chǎn)業(yè)白皮書(shū) -生物制造篇(與茅臺(tái)基金聯(lián)合發(fā)布)
- 產(chǎn)業(yè)經(jīng)濟(jì)學(xué)(蘇東坡版)課后習(xí)題及答案
- T/CECS 10227-2022綠色建材評(píng)價(jià)屋面綠化材料
- 區(qū)域醫(yī)學(xué)檢驗(yàn)中心項(xiàng)目建設(shè)方案
- 小學(xué)四年級(jí)安全教育上冊(cè)教學(xué)計(jì)劃小學(xué)四年級(jí)安全教育教案
- 個(gè)人優(yōu)勢(shì)與劣勢(shì)分析
- VCR接頭鎖緊工作程序
- 2025閥門(mén)裝配工藝規(guī)程
- 非計(jì)劃拔管風(fēng)險(xiǎn)評(píng)估及護(hù)理
- 小學(xué)數(shù)學(xué)教學(xué)中融入中國(guó)傳統(tǒng)文化的實(shí)踐研究
評(píng)論
0/150
提交評(píng)論