SQL數(shù)據(jù)庫語句大全大全完全整理版_第1頁
SQL數(shù)據(jù)庫語句大全大全完全整理版_第2頁
SQL數(shù)據(jù)庫語句大全大全完全整理版_第3頁
SQL數(shù)據(jù)庫語句大全大全完全整理版_第4頁
SQL數(shù)據(jù)庫語句大全大全完全整理版_第5頁
已閱讀5頁,還剩23頁未讀 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領

文檔簡介

1、SQL語句大全-語句功能 -數(shù)據(jù)操作SELECT -從數(shù)據(jù)庫表中檢索數(shù)據(jù)行和列 INSERT -向數(shù)據(jù)庫表添加新數(shù)據(jù)行 DELETE -從數(shù)據(jù)庫表中刪除數(shù)據(jù)行UPDATE -更新數(shù)據(jù)庫表中的數(shù)據(jù) -數(shù)據(jù)定義CREATE TABLE -倉U建一個數(shù)據(jù)庫表 DROP TABLE -從數(shù)據(jù)庫中刪除表 ALTER TABLE -修改數(shù)據(jù)庫表結構CREATE VIEW -創(chuàng)建一個視圖DROP VIEW -從數(shù)據(jù)庫中刪除視圖CREATE INDEX -為數(shù)據(jù)庫表創(chuàng)建一個索引 DROP INDEX -從數(shù)據(jù)庫中刪除索引CREATE PROCEDURE -倉U建一個存儲過程 DROP PROCEDURE -從

2、數(shù)據(jù)庫中刪除存儲過程 CREATE TRIGGER -倉U建一個觸發(fā)器 DROP TRIGGER -從數(shù)據(jù)庫中刪除觸發(fā)器 CREATE SCHEMA -向數(shù)據(jù)庫添加一個新模式 DROP SCHEMA -從數(shù)據(jù)庫中刪除一個模式 CREATE DOMAIN -創(chuàng)建一個數(shù)據(jù)值域 ALTER DOMAIN -改變域定義DROP DOMAIN -從數(shù)據(jù)庫中刪除一個域 -數(shù)據(jù)控制GRANT -授予用戶訪問權限D(zhuǎn)ENY -拒絕用戶訪問REVOKE -解除用戶訪問權限-事務控制COMMIT -結束當前事務ROLLBACK -中止當前事務SET TRANSACTION -定義當前事務數(shù)據(jù)訪問特征-程序化SQLD

3、ECLARE -為查詢設定游標EXPLAN -為查詢描述數(shù)據(jù)訪問計劃OPEN -檢索查詢結果打開一個游標FETCH -檢索一行查詢結果CLOSE -關閉游標PREPARE -為動態(tài)執(zhí)行準備SQL語句EXECUTE -動態(tài)地執(zhí)行SQL語句DESCRIBE -描述準備好的查詢-局部變量declare id char(10) -set id = '10010001' select id = '10010001' -全局變量-必須以開頭-IF ELSEdeclare x int y int z int select x = 1 y = 2 z=3 if x > y

4、print 'x > y'-打印字符串'x > y' else if y > zprin t 'y > z'else prin t 'z > y'-CASE'1' the n e_wage*1.08'2' then e_wage*1.07'3' then e_wage*1.06use pangu update employee set e_wage = case whe n job_level = whe n job_level = whe n job_

5、level = else e_wage*1.05 end-WHILE CONTINUE BREAK declare x int y int c int select x = 1 y=1while x < 3beg inprint x -打印變量x的值 while y < 3beg inselect c = 100*x + y print c -打印變量c的值 select y = y + 1 endselect x = x + 1select y = 1end-WAITFOR-例等待1小時2分零3秒后才執(zhí)行SELECT語句waitfor delay ' 01:02:03 &

6、#39;select * from employee-例等到晚上11點零8分后才執(zhí)行SELECT語句waitfor time ' 23:08:00 'select * from employee select *(歹U名)from table_ name表名)where colu mn_n ame operator value ex:(宿主)select * from stocknformatio n where stockid = str( nid)stock name = 'str_ name'stock name like '% find this

7、 %'stock name like 'a-zA-Z%'(指定值的范圍)stock name like 'AF-M%'(A 排除指定范圍) 只能在使用like關鍵字的where子句中使用通配符)or stockpath = 'stock_path'or stock nu mber < 1000and stock in dex = 24not stock* = 'ma n'stock nu mber betwee n 20 and 100stock nu mber in (10,20,30)order by stock

8、id desc(asc)排序,desc釋序,asc升序order by 1,2by 列號stock name = (select stock name from stock_i nformatio n where stockid = 4)子查詢除非能確保內(nèi)層select只返回一個行的值, 否則應在外層where子句中用一個in限定符select disti net colu mn_n ame form table_ namedisti nc甘旨定檢索獨有的列值,不重復select stock nu mber ,"stock nu mber + 10" = stock nu

9、mber + 10 from table_ name select stock name , "stock nu mber" = coun t(*) from table_ name group by stock name group by將表按行分組,指定列中有相同的值having count(*) = 2having 選定指定的組select *from tablei, table2where tablel.id *= table2.id 左外部連接,tablei中有的而table2中沒有得以null表示tablel.id =* table2.id 右外部連接selec

10、t stock name from tableiunion allunion合并查詢結果集,all-保留重復行 select stock name from table2in sert* insert into table_ name (Stock_ name,Stock_ nu mber) value ("xxx","xxxx") value (select Stock name , Stock nu mber from Stock_table2)-valu為 select 語句update* update table_ name set Stock

11、name = "xxx" where Stockid = 3 Stock name = defaultStock name = n ullStock nu mber = Stock name + 4delete* delete from table_ name where Stockid = 3trun cate table_name刪除表中所有行,仍保持表的完整性drop table table_name完全刪除表*alter table* -修改數(shù)據(jù)庫表結構alter table database.ow ner.table_ name add colu mn_n ame

12、 char(2) n ull . sp_help table_ name -顯示表已有特征create table table_ name (n ame char(20), age smalli nt, I name varchar(30)in sert into table_name select實現(xiàn)刪除列的方法(創(chuàng)建新表)alter table table_ name drop con stra int Stock name_default -刪除 Stock name 的 default 約束*function(/* 常用函數(shù) */)*-統(tǒng)計函數(shù)-AVG -求平均值COUNT -統(tǒng)計數(shù)目

13、 MAX -求最大值 MIN -求最小值 SUM -求和-AVGuse panguselect avg(e_wage) as dept_avgWagefrom employee group by dept_id -MAX-求工資最高的員工姓名use pangu select e_n ame from employee where e_wage = (select max(e_wage) from employee)-STDEV()-STDEV()函數(shù)返回表達式中所有數(shù)據(jù)的標準差-STDEVP0-STDEVP0函數(shù)返回總體標準差-VAR()-VAR()函數(shù)返回表達式中所有值的統(tǒng)計變異數(shù)-VARP

14、()-VARP()函數(shù)返回總體變異數(shù)-算術函數(shù)-/*三角函數(shù)*/SIN(float_expressio n)-返回以弧度表示的角的正弦COS(float_expressio n) -返回以弧度表示的角的余弦 TAN(float_expressio n)-返回以弧度表示的角的正切 COT(float_expressio n)-返回以弧度表示的角的余切 /*反三角函數(shù)*/ASIN(float_expression)-返回正弦是FLOAT值的以弧度表示的角 ACOS(float_expression)-返回余弦是FLOAT值的以弧度表示的角 ATAN(float_expression)-返回正切是F

15、LOAT值的以弧度表示的角 ATAN2(float_expressio n1,float_expressio n2)-返回正切是float_expression1 /float_expres-sion2的以弧度表示的角DEGREES( nu meric_expressio n)-把弧度轉(zhuǎn)換為角度返回與表達式相同的數(shù)據(jù)類型可為 -INTEGER/MONEY/REAL/FLOAT 類型RADIANS( numeric_expressio n)-把角度轉(zhuǎn)換為弧度返回與表達式相同的數(shù)據(jù)類 型可為-INTEGER/MONEY/REAL/FLOAT 類型EXP(float_expressio n)-返回表

16、達式的指數(shù)值LOG(float_expressio n)-返回表達式的自然對數(shù)值LOG10(float_expressio n)-返回表達式的以10為底的對數(shù)值 SQRT(float_expressio n) -返回表達式的平方根/*取近似值函數(shù)*/CEILING( nu meric_expressio n)-返回 >=表達式的最小整數(shù)返回的數(shù)據(jù)類型與表 達式相同可為-INTEGER/MONEY/REAL/FLOAT 類型FLOOR(numeric_expression) -返回 <=表達式的最小整數(shù)返回的數(shù)據(jù)類型與表達 式相同可為-INTEGER/MONEY/REAL/FLOAT

17、 類型ROUND(numeric_expression)-返回以 integer_expression 為精度的四舍五入值返 回的數(shù)據(jù)一一-類型與表達式相同可為INTEGER/MONEY/REAL/FLOAT 類型ABS( numeric_expressio n) -返回表達式的絕對值返回的數(shù)據(jù)類型與表達式相同可 為-INTEGER/MONEY/REAL/FLOAT 類型SIGN(numeric_expression)-測試參數(shù)的正負號返回0零值1正數(shù)或-1負數(shù)返回 的數(shù)據(jù)類型 一-與表達式相同可為INTEGER/MONEY/REAL/FLOAT 類型PI()-返回值為 n 即 3.14159

18、26535897936RAND(integer_expression)-用任選的integer_expression做種子值得出 0-1 間 的隨機浮點數(shù)-字符串函數(shù)-ASCII()-函數(shù)返回字符表達式最左端字符的 ASCII碼值CHAR()-函數(shù)用于將ASCII碼轉(zhuǎn)換為字符-如果沒有輸入0 255之間的ASCII碼值CHAR函數(shù)會返回一個NULL值LOWER()-函數(shù)把字符串全部轉(zhuǎn)換為小寫UPPER()-函數(shù)把字符串全部轉(zhuǎn)換為大寫STR()-函數(shù)把數(shù)值型數(shù)據(jù)轉(zhuǎn)換為字符型數(shù)據(jù)LTRIM()-函數(shù)把字符串頭部的空格去掉RTRIM()-函數(shù)把字符串尾部的空格去掉LEFT(),RIGHT(),SUB

19、STRING()-函數(shù)返回部分字符串CHARINDEX(),PATINDEX()-函數(shù)返回字符串中某個指定的子串出現(xiàn)的開始位SOUNDEX()-函數(shù)返回一個四位字符碼-SOUNDEX函數(shù)可用來查找聲音相似的字符串但 SOUNDEX函數(shù)對數(shù)字和漢字 均只返回0值DIFFERENCE()-函數(shù)返回由SOUNDEX函數(shù)返回的兩個字符表達式的值的差-0 兩個 SOUNDEX -1 兩個 SOUNDEX-2 兩個 SOUNDEX -3 兩個 SOUNDEX-4 兩個 SOUNDEX函數(shù)返回值的第一個字符不同 函數(shù)返回值的第一個字符相同 函數(shù)返回值的第一二個字符相同 函數(shù)返回值的第一二三個字符相同 函數(shù)返

20、回值完全相同QUOTENAME()-函數(shù)返回被特定字符括起來的字符串 /*select quote name('abc', '') quote name('abc') 運行結果如下abc abc*/REPLICATE()-函數(shù)返回一個重復 character_expression指定次數(shù)的字符串 /*select replicate('abc', 3) replicate( 'abc', -2)運行結果如下abcabcabc NULL*/REVERSE()-函數(shù)將指定的字符串的字符排列順序顛倒 REPLACE()-

21、函數(shù)返回被替換了指定子串的字符串 /*select replace('abc123g', '123', 'def) 運行結果如下abcdefg*/SPACE()-函數(shù)返回一個有指定長度的空白字符串STUFF()-函數(shù)用另一子串替換字符串指定位置長度的子串-數(shù)據(jù)類型轉(zhuǎn)換函數(shù)-CAST()函數(shù)語法如下CAST() (vexpressi on> AS <data_ type> len gth )CONVERT。函數(shù)語法如下CONVERT。(<data_ type> len gth , <expressio n> , s

22、tyle) select cast(100+99 as char) con vert(varchar(12), getdate() 運行結果如下199 Jan 15 2000-日期函數(shù)-DAY()-函數(shù)返回date_expression中的日期值MONTH()-函數(shù)返回date_expression中的月份值YEAR()-函數(shù)返回date_expression中的年份值DATEADD(<datepart> ,<n umber> ,<date>)-函數(shù)返回指定日期date加上指定的額外日期間隔number產(chǎn)生的新日期DATEDIFF(<datepart&

23、gt; ,<nu mber> ,<date>)-函數(shù)返回兩個指定日期在 datepart方面的不同之處DATENAME(<datepart> , <date>)-函數(shù)以字符串的形式返回日期的指定部分 DATEPART(<datepart> , <date>)-函數(shù)以整數(shù)值的形式返回日期的指定部分 GETDATE()-函數(shù)以DATETIME的缺省格式返回系統(tǒng)當前的日期和時間系統(tǒng)函數(shù)APP_NAME()-函數(shù)返回當前執(zhí)行的應用程序的名稱COALESCE()-函數(shù)返回眾多表達式中第一個非 NULL表達式的值COL_LENGTH(

24、v'table_name'>, <'column_name'>)-函數(shù)返回表中指定字段的長 度值COL_NAME(<table_id>, <column_id>)-函數(shù)返回表中指定字段的名稱即列名DATALENGTH()-函數(shù)返回數(shù)據(jù)表達式的數(shù)據(jù)的實際長度DBD('database_name') -函數(shù)返回數(shù)據(jù)庫的編號DB_NAME(database_id)-函數(shù)返回數(shù)據(jù)庫的名稱HOST_ID()-函數(shù)返回服務器端計算機的名稱HOST_NAME()-函數(shù)返回服務器端計算機的名稱IDENTITY(<d

25、ata_type>, seed in creme nt) AS column_name)-IDENTITY。函數(shù)只在SELECT INTO語句中使用用于插入一個identity column列到新表中/*select ide ntity(i nt, 1, 1) as colu mn_n ameinto n ewtablefrom oldtable*/ISDATE()-函數(shù)判斷所給定的表達式是否為合理日期ISNULL(<check_expression>, <replacement_value>)-函數(shù)將表達式中的 NULL 值用指定值替換一-ISNUMERIC()

26、-函數(shù)判斷所給定的表達式是否為合理的數(shù)值NEWID()-函數(shù)返回一個UNIQUEIDENTIFIER 類型的數(shù)值NULLIF(<expressi on 1>, <expressi on 2>)-NULLIF 函數(shù)在expression1與expression2相等時返回NULL值若不相等時 則返回expression1的值sql中的保留字 action add aggregate all alter after and asasc avg avg_row_le ngth auto_i ncreme nt betwee n big int bit binary blob

27、bool both by cascade case char character cha nge check checksum colu mn colu mns comme nt con stra int create cross curre nt_date curre nt_time curre nt_timestamp data database databases date datetime day day_hour day_mi nute day_sec ond dayofm onth dayofweek dayofyear dec decimal default delayed de

28、lay_key_write delete desc describe disti net disti nctrow double drop end else escape escaped en closed enum expla in existsfields file first float float4 float8 flush foreig n from for full fun cti on global grant grants group hav ing heap high_priority hour hour_m inute hour_sec ond hosts ide ntif

29、ied ignore in in dex in file inner in sert in sert_id int in teger in terval int1 int2 int3 int4 int8 into if is isam join key keys kill last_i nsert_id leadi ng left len gth like lines limit load local lock logs long Ion gblobIon gtext low_priority max max_rows match mediumblob mediumtext mediumi n

30、t middlei nt min_rows mi nute minu te_sec ond modify month monthn ame myisam n atural nu meric no not null on optimize opti on opti on ally or order outer outfile pack_keys partial password precisi on primary procedure process processlist privileges read real refere nces reload regexp ren ame replac

31、e restrict returns revoke rlike row rows sec ond select set show shutdow n smalli nt son ame sql_big_tables sql_big_selects sql_low_priority_updates sql_log_off sql_log_update sql_select_limit sql_small_result sql_big_result sql_war nings straight_joi n starti ng status stri ng table tables temporar

32、y term in ated text then time timestamp tin yblob tiny text tin yi nt traili ng to type use using unique uni ock un sig ned update usage values varchar variables vary ing varb inary with write whe n where year year_m onth zerofill查看全文常用SQL命令和ASP編程在進行數(shù)據(jù)庫操作時,無非就是添加、刪除、修改,這得設計到一些常用的SQL 語句,如下:SQL常用命令使用方

33、法:(1) 數(shù)據(jù)記錄篩選:sql="select * from 數(shù)據(jù)表 where字段名=字段值order by字段名desc"sql="select * from 數(shù)據(jù)表 where字段名like %字段值% order by字段名 desc"sql="select top 10 * from 數(shù)據(jù)表 where 字段名 order by 字段名desc"sql="select * from 數(shù)據(jù)表 where 字段名 in (值 1,值 2,值 3)"sql="select * from 數(shù)據(jù)表 wh

34、ere 字段名 between 值 1 and 值 2"(2) 更新數(shù)據(jù)記錄:sql="update數(shù)據(jù)表set字段名=字段值 where條件表達式"sql="update數(shù)據(jù)表set字段仁值1,字段2=值2 字段門=值n where條件表達式"(3) 刪除數(shù)據(jù)記錄:sql="delete from數(shù)據(jù)表 where條件表達式"sql="delete from數(shù)據(jù)表"(將數(shù)據(jù)表所有記錄刪除)(4) 添加數(shù)據(jù)記錄:sql="insert into數(shù)據(jù)表(字段1,字段2,字段3)valuess值1,

35、值2,值3)"sql="insert into目標數(shù)據(jù)表select * from源數(shù)據(jù)表"(把源數(shù)據(jù)表的記錄添加到 目標數(shù)據(jù)表)(5) 數(shù)據(jù)記錄統(tǒng)計函數(shù):AVG(字段名)得出一個表格欄平均值COUNT(*|字段名)對數(shù)據(jù)行數(shù)的統(tǒng)計或?qū)δ骋粰谟兄档臄?shù)據(jù)行數(shù)統(tǒng)計MAX(字段名)取得一個表格欄最大的值MIN(字段名)取得一個表格欄最小的值SUM(字段名)把數(shù)據(jù)欄的值相加引用以上函數(shù)的方法:sql="select sum字段名)as別名from 數(shù)據(jù)表 where條件表達式" set rs=c onn. excute(sql)用rs("別名

36、")獲取統(tǒng)的計值,其它函數(shù)運用同上。(5)數(shù)據(jù)表的建立和刪除:CREATE TABLE數(shù)據(jù)表名稱(字段1類型1(長度),字段2類型2(長度)例:CREATE TABLE tabO1(name varchar(50),datetime default now()DROP TABLE數(shù)據(jù)表名稱(永久性刪除一個數(shù)據(jù)表)在ASP編程時,下面這些語句是必須知道的:1連接數(shù)據(jù)庫a. ASP與Access數(shù)據(jù)庫連接:<% Ian guage=VBs cript%><%dim conn, mdbfilemdbfile=server.mappath('數(shù)據(jù)庫名稱.mdb&qu

37、ot;)set conn=server.createobject("adodb.c onn ecti on")conn, ope n "driver=microsoft access driver (*.mdb);uid=admi n;pwd=數(shù)據(jù)庫密 碼;dbq="&mdbfile%>b. ASP與SQL數(shù)據(jù)庫連接:<% Ian guage=VBs cript%><%dim connset conn=server.createobject("ADODB.c onn ectio n")con.open

38、"PROVIDER=SQLOLEDB;DATA SOURCE=SQL 服務器名稱或 IP 地 址;UID=sa;PWD=數(shù)據(jù)庫密碼;DATABASE=數(shù)據(jù)庫名稱%>建立記錄集對象:set rs=server.createobject("adodb.recordset")rs.open SQL語句,conn,3,22. 記錄集對象的方法:rs.move next將記錄指針從當前的位置向下移一行rs.moveprevious將記錄指針從當前的位置向上移一行 rs.movefirst將記錄指針移到數(shù)據(jù)表第一行 rs.movelast將記錄指針移到數(shù)據(jù)表最后一行rs

39、.absoluteposition=N將記錄指針移到數(shù)據(jù)表第 N行 rs.absolutepage=N將記錄指針移到第N頁的第一行 rs.pagesize=N設置每頁為N條記錄 rs.pagecount根據(jù)pagesize的設置返回總頁數(shù) rs.recordco unt返回記錄總數(shù)rs.bof返回記錄指針是否超出數(shù)據(jù)表首端,true表示是,false為否rs.eof返回記錄指針是否超出數(shù)據(jù)表末端,true表示是,false為否 rs.delete刪除當前記錄,但記錄指針不會向下移動rs.add new添加記錄到數(shù)據(jù)表末端rs.update更新數(shù)據(jù)表記錄附:常數(shù)常數(shù)值說明adLockReadOn

40、ly 1缺省值,Recordset對象以只讀方式啟動,無法運行AddNew、 Update及Delete等方法adLockPrssimistic 2當數(shù)據(jù)源正在更新時,系統(tǒng)會暫時鎖住其他用戶的動作,以 保持數(shù)據(jù)一致性。adLockOptimistic 3當數(shù)據(jù)源正在更新時,系統(tǒng)并不會鎖住其他用戶的動作,其 他用戶可以對數(shù)據(jù)進行增、刪、改的操作。adLockBatchOptimistic 4當數(shù)據(jù)源正在更新時,其他用戶必須將CursorLocation屬性改為adUdeClientBatch才能對數(shù)據(jù)進行增、刪、改的操作。分類:(一般分類):評論(0):靜態(tài)鏈接網(wǎng)址:引用(0)<!>

41、SQLSERVER2000功略-自動化管理發(fā)表人:kendy517 |發(fā)表時間:2007年二月09日,11:56面對大量反復的工作,即使一個優(yōu)秀的管理員也會感到很大的負擔。但為了保持服務器維持在最佳運行狀態(tài),這些又時不得不作的工作。這時,SQLSERVER想 你所想,提供了自動化的管理措施。在我們工作之前,我們需要了解自動化背后 的好助手一SQLSERVER Age nt,這個就是SQLSERVER的代理程序,他是運行在 后臺的服務,可謂是幕后英雄!那他有什么功能呢,如下: 作業(yè)調(diào)度。 執(zhí)行作業(yè)。 產(chǎn)生報警。 在指定的事件發(fā)生時,通知指定的管理員或操作員。說到這里,我們就談談自動化中的角色:操

42、作員,作業(yè),警報。操作員:所謂的操作員只是人名與其通信方式(可有電子郵件地址,呼叫器或NET SEND的目的地三種)的設置而已。只要將服務器管理人員的聯(lián)絡方式都以 操作員設置妥當時,當SQLSERVER遇到各種需要處理的狀況,SQLSERVER Age nt就會通過指定的方式通知管理人員前來完成,以達到及時的排除各種問題。 作業(yè):作業(yè)是SQLSERVER Age nt諸多功能中最常用的。所謂作業(yè)就是可讓 SQLSERVERAgent自動執(zhí)行的一組操作,它既可以自動執(zhí)行(這個就涉及到調(diào) 度),也可以手動執(zhí)行。在定義作業(yè)必須注意以下內(nèi)容:作業(yè)的名稱,作業(yè)的種 類,作業(yè)的所有者,作業(yè)的說明文字。警報

43、:就是指針對特殊的事件,要發(fā)信給操作員的設置。在作業(yè)的設置中的通知頁面中指定了要將作業(yè)執(zhí)行狀態(tài)通知操作員時,其實就是在設置警報(如下 圖)scree n.width-333)this.width=scree n.width-333" border="0" galleryimg=" no" /> 在定義警報時,可有兩種設置事件的方式,一種是指明了針對某特定事件,也就 是只要在服務器發(fā)生該事件。另一種是指定事件的嚴重度(Serverity),只要是達 到指定嚴重程度的所有事件,SQLSERVER Age nt就會發(fā)信通知操作員。了解了概念,就

44、是動手的時候了,這些我們就以圖片給與說明,第一個我們新建 操作員,過程如下:scree n.width-333)this.width=scree n.width-333" border="0"galleryimg="no" />scree n.width-333)this.width=scree n.width-333" border="0"galleryimg="no" />接著新建作業(yè)過程如下:scree n.width-333)this.width=scree n.width-

45、333" border="0" galleryimg="no" />scree n.width-333)this.width=scree n.width-333" border="0" galleryimg="no" />再來看看警報的創(chuàng)建過程:scree n.width-333)this.width=scree n.width-333" border="0" galleryimg=" no" />scree n.width-3

46、33)this.width=scree n.width-333" border="0" galleryimg="no" />(注意在建立警報的 響應”欄目里,對應著相應的作業(yè)和操作員) 談過了這些功能,是不是覺得真是很方便呀,當然了良好的運用不僅僅就這簡單 的幾步,這需要大家在應用中適時的總結以適應我們的需要。現(xiàn)在,我們再談論一個 SQLSERVER的另一項不錯的功能一腳本。所謂的利用腳本,就是可以將數(shù)據(jù)庫對象或服務器中的其他對象以腳本(Script)方式存入文件,也就是存成 SQL程序以供我們繼續(xù)利用。同樣腳本也可以用于這里的自動化管理

47、。 例如:我們可以將操作員,作業(yè)和警報 等對象存成Script文件后,再拿到別的服務器上加以利用。 這是不是在不同的服 務器上創(chuàng)建相同的操作員等重復的工作了。這就是腳本的效率所在。如果需要存為腳本文件,可以在企業(yè)管理器中右擊相應的對象在所有任務“生“成SQL腳本”命令,設置確定即可。談了上面的自動化管理的方式是很實用的, 但似乎是不是缺乏全面性,要為自己 的服務器構建一套完善的自動化維護機制, 可能需要花費不少心力,但是將大部 分的日常維護工作適度的自動化,多少可以減輕管理上的負擔,為此SQLSERVER還提供了一項可以將整套數(shù)據(jù)庫維護工作自動化的功能,這就是數(shù)據(jù)庫的維護計劃。我們可以在企業(yè)管

48、理器中執(zhí)行 工具數(shù)據(jù)庫維護計劃器,這樣就見到了如下界面,依次設置即可。這次的討論就說到這里,關于自動化管理,我不用說大家都明白,合理的設置會 給你的工作帶來什么樣的影響,好好體會,讓工作更加輕松!分類:(一般分類):評論(0):靜態(tài)鏈接網(wǎng)址:引用(0)<!>SQLSERVER2000功略(3)數(shù)據(jù)庫的登陸及其用戶權限發(fā)表人:kendy517 |發(fā)表時間:2007年二月09日,11:54SQLSERVER2000功略數(shù)據(jù)庫的登陸及其用戶權限SQLSERVER2000功略數(shù)據(jù)庫的登陸及其用戶權限 說過了兩章純粹的理論,是不是有乏味的感覺,好,我們從這一講就進入實質(zhì)的 管理階段。首先,我

49、們討論的是 SQLSERVER安全管理中的登陸和權限問題。 SQLSERVER的登陸是安全管理的第一關。這個決定了那些人可以使用 SQLSERVER (就像進屋時的房門鑰匙)。關于登陸控制, SQLSERVER則采用 了兩種不同的檢查方式:windows驗證和windows,sqlserver混合驗證。前者就 是我們登陸windows時的用戶帳號,而后者則是在保留前者的前提下也允許 SQLSERVER中建立的登陸帳號。這也是為用戶提供方便的選擇。我們擁有了登陸的帳號,就可以進入 SQLSERVER的控制中心,那我們可以做 些什么哪?這個肯定是有控制的進行的。SQLSERVER中的訪問權限分為兩

50、方面,分別是:服務器本身的操作權限和數(shù)據(jù)庫的訪問權限。我們分別加以簡介: 服務器的操作權限是從真?zhèn)€服務器來說的,是面向所有數(shù)據(jù)庫的定義。例如:是否有權創(chuàng)建或者刪除登陸帳號,是否可以建立數(shù)據(jù)庫等等。這些也就是通過設置 服務器角色(server role)來實現(xiàn)的。SQLSERVER內(nèi)建了七個服務器角色,分 別代表七種服務器工作的操作權。數(shù)據(jù)庫的訪問權限就是針對某一個數(shù)據(jù)庫而言的。他可以分為兩層,第一層是限制何人訪問數(shù)據(jù)庫,第二層限制可訪問數(shù)據(jù)庫中的那些表, 視圖和存儲過程,以 及是否可以用selectnsert,update等等。這個權限往往是通過數(shù)據(jù)庫角色得以實 現(xiàn)的。(服務器角色不可以自定義

51、,數(shù)據(jù)庫角色可以自定義) 僅僅知道上面這些概念是不行的,因為 SQLSERVER中的權限是比較復雜的, 因為彼此之間可能存在某些權鏈。 所以僅僅概念是不容易說清的,我們討論的就 是基礎的東西,懂得了這些在真正工作中才可以更好的掌握管理技能。我們簡單的談談權鏈的問題吧!由于每個對象都有他自己的擁有權信息,這個對象可能和其他對象存在一定的依 存關系,比如:一個視圖是從另外一個視圖建立過來的。這些相互依存的對象關系可能拉的很長,因此相依存的對象的擁有權就形成一個由上而下的鏈結,這在SQLSERVER中就稱作擁有權鏈(Own ership Chain)。正是由于這樣,可能所產(chǎn) 生的訪問權限變得非常復雜

52、。所以,我們在這里提出以視圖和存儲過程來限制訪 問范圍。通過視圖確定用戶可以訪問的內(nèi)容, 然后把視圖的相關權限賦予具體的 用戶,這樣可以有效的減輕權限設置的工作量 (特別是用戶訪問范圍跨度較大的 情況下)。除了視圖,我們也可以自定義存儲過程來對數(shù)據(jù)的訪問加以限制,即 把一組可查詢某特定數(shù)據(jù)的語句存成存儲過程,然后將其 execute權限設置給用 戶,用戶就可以執(zhí)行他來取得數(shù)據(jù)了。 這樣省去了很多復雜的授權過程,是不是 很方便呀!簡單的說了說這些,我們再來談談 SQLSERVER中特殊的東西:sa帳號,public 數(shù)據(jù)庫角色,guest數(shù)據(jù)庫用戶。Sa是SQLSERVER默認的管理員帳號,主要

53、是為了向下兼容而設置的。這個也 就是安裝好SQLSERVER時就有的帳號,而且權限極大,所以在安裝過程中最 好把他的密碼進行設置,不要為空。這個帳號相當于服務器角色中的systemadministrator,而且不可以刪除。Public數(shù)據(jù)庫角色是一個公共的數(shù)據(jù)庫角色,也就是說當你新建一個數(shù)據(jù)庫角色的時候,默認的就屬于這個角色。這個也是不可刪除的。所以為了安全期間,我 們對public數(shù)據(jù)庫對象不要賦予過多的權限(除非有這個需要)。Guest是一個特殊的數(shù)據(jù)庫用戶,類似于 windows NT/2000下的guest帳號,都 是給未經(jīng)授權的用戶提供某種程度的訪問權限。如果不需要這個用戶可以將其

54、刪 除。說了這些概念,其實現(xiàn)都是通過企業(yè)管理器”實現(xiàn)的,我們就這些談談用相應的 系統(tǒng)存儲過程:登陸管理:sp_addlogin新增帳號sp_droplogin刪除帳號sp_grantlogins 允許某 windows 帳號訪問 sp_denylogins禁止某windows帳號訪問 sp_revokelogins 刪除某 windows 帳號訪問 sp_helplogi n查看帳號信息 sp_addsrvrolemember將某用戶添加到服務器角色 sp_dropsrvrolemember將某用戶從數(shù)據(jù)庫角色中刪除 sp_helpsrvrole查看服務器角色的信息數(shù)據(jù)庫用戶管理:sp_gra

55、 ntaccess建立數(shù)據(jù)庫用戶 sp_revokedbaccess刪除數(shù)據(jù)庫用戶 sp_helpuser查看用戶信息數(shù)據(jù)庫角色管理:sp_addrole建立數(shù)據(jù)庫角色sp_addrolemember將用戶加入數(shù)據(jù)庫角色sp_helprole查看數(shù)據(jù)庫角色信息sp_helprolemember查看某數(shù)據(jù)庫角色的所有成員sp_droprole刪除角色sp_droprolemember刪除角色中的某一成員好了,看了上面的不要感覺麻煩呀,這可是讓你高效工作的寶貝呀,熟能生巧, 我們一起聯(lián)系多了,其實掌握就覺得很輕松了!繼續(xù)努力?。海?分類:(一般分類):評論(0):靜態(tài)鏈接網(wǎng)址:引用(0)<!

56、>SQLSERVER2000攻略工作流程篇發(fā)表人:kendy517 |發(fā)表時間:2007年二月09日,11:51SQLSERVER2000是windows平臺上一個重要的數(shù)據(jù)管理工具。了解數(shù)據(jù)庫的朋 友對他一定很熟悉。我們就此在這里作一系列的討論,希望通過這次的交流我們 對SQLSERVER2000有個深刻的理解。首先,我們探討一下他的工作流程,這 可是工作的基礎呀,好,我們開始了! 簡單的說,SQLSERVER2000是個采用主從結構的關系數(shù)據(jù)庫系統(tǒng)。哈,是不是 太簡單,畢竟現(xiàn)在市面上的數(shù)據(jù)庫產(chǎn)品幾乎都是這個結構。我們來深入一點,所 謂SQLSERVER的主從結構(Client/Ser

57、ver),就是由SQLSERVER扮演存放數(shù)據(jù) 和提供數(shù)據(jù)給客戶端的角色,當用戶要取用數(shù)據(jù)時,則可調(diào)用各種不同的客戶端 應用程序,通過SQLSERVER所支持的接口,向SQLSERVER提供請求,然后 取得數(shù)據(jù)庫中的數(shù)據(jù)并返回給用戶。這個過程應該好理解吧??戳诉@個是不是覺得很eas y呀!其實,這只是比較傳統(tǒng)的雙層式 Clie nt/Server 結構,近年來三層式或者多層式主從結構的應用正在流行。例如:配合微軟的 BackOffice中的其他服務器產(chǎn)品,即可建立多層主從運算模式。了解了基本的數(shù)據(jù)流程,那是不是要問是什么實現(xiàn)客戶端與服務器之間的溝通 哪?這個是個比較有意義的問題。我們知道了作什

58、么,就應改知道他是怎么做的。 所謂,打破沙鍋問到底!我們說一下工作原理:SQLSERVER提供了多種不同的 接口讓客戶端(應用程序)順利與服務器進行交流,在此接口的基礎上,由NET-Library(網(wǎng)絡函數(shù)庫)建立兩邊IPC (Interprocess Commicatior)通訊管道來 進行工作。具體的說就是:當客戶端程序使用某種接口向服務器提出查詢請求時, 數(shù)據(jù)庫接口驅(qū)動程序調(diào)用客戶端的 Net-library,而Net-library則調(diào)用IPC應用程序 接口產(chǎn)生IPC,通過IPC送達服務端,服務端接受請求后經(jīng) SQLSERVER處理, 以同樣的方式將結果送回客戶端。(這個過程有兩個情況

59、,Client和Server在同一臺計算機上,Net-library會使用local IPC,如果是網(wǎng)絡存取,則會有雙方所使用 的網(wǎng)絡協(xié)議產(chǎn)生Remote IPC)圖示如下:了解了外部工作機制,咱們看看服務端是怎么分工的,畢竟多數(shù)的數(shù)據(jù)工作是由 服務器完成的。整體上說,整個 SQLSERVER的數(shù)據(jù)管理系統(tǒng)分為如下幾個組 件: Open Data Service(ODS)負責處理由Net-library送來的查詢請求,ODS會調(diào)用 SQLSERVER的內(nèi)部功能來完成客戶端的需求。 SQL Server Service這個SQLSERVER的 心臟”負責管理我們的數(shù)據(jù)庫,以及 所有建立,查詢和修改的數(shù)據(jù)庫的操作。此數(shù)據(jù)庫管理系統(tǒng)的核心又分為幾個單 元,其中最主要的兩個單元就是負責解 SQL語法和安排查詢執(zhí)行計劃等工作的

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論