版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、SQL語句大全-語 句 功 能-數(shù)據(jù)操作SELECT -從數(shù)據(jù)庫表中檢索數(shù)據(jù)行和列-selectINSERT -向數(shù)據(jù)庫表添加新數(shù)據(jù)行-insertDELETE -從數(shù)據(jù)庫表中刪除數(shù)據(jù)行-deleteUPDATE -更新數(shù)據(jù)庫表中的數(shù)據(jù)-update-數(shù)據(jù)定義CREATE TABLE -創(chuàng)建一個(gè)數(shù)據(jù)庫表-create tableDROP TABLE -從數(shù)據(jù)庫中刪除表-drop tableALTER TABLE -修改數(shù)據(jù)庫表結(jié)構(gòu)-alter tableCREATE VIEW -創(chuàng)建一個(gè)視圖-create viewDROP VIEW -從數(shù)據(jù)庫中刪除視圖-drop viewCREATE IND
2、EX -為數(shù)據(jù)庫表創(chuàng)建一個(gè)索引-create indexDROP INDEX -從數(shù)據(jù)庫中刪除索引-drop indexCREATE PROCEDURE -創(chuàng)建一個(gè)存儲過程-create procedureDROP PROCEDURE -從數(shù)據(jù)庫中刪除存儲過程-drop procedureCREATE TRIGGER -創(chuàng)建一個(gè)觸發(fā)器-create triggerDROP TRIGGER -從數(shù)據(jù)庫中刪除觸發(fā)器-drop triggerCREATE SCHEMA -向數(shù)據(jù)庫添加一個(gè)新模式-create schemaDROP SCHEMA -從數(shù)據(jù)庫中刪除一個(gè)模式-drop schemaCREA
3、TE DOMAIN -創(chuàng)建一個(gè)數(shù)據(jù)值域-create domainALTER DOMAIN -改變域定義-alter domainDROP DOMAIN -從數(shù)據(jù)庫中刪除一個(gè)域-drop domain-數(shù)據(jù)控制GRANT -授予用戶訪問權(quán)限-grantDENY -拒絕用戶訪問-denyREVOKE -解除用戶訪問權(quán)限-revoke-事務(wù)控制COMMIT -結(jié)束當(dāng)前事務(wù)-commitROLLBACK -中止當(dāng)前事務(wù)-rollbackSET TRANSACTION -定義當(dāng)前事務(wù)數(shù)據(jù)訪問特征-set transaction-程序化SQLDECLARE -為查詢設(shè)定游標(biāo)-declareEXPLAN
4、-為查詢描述數(shù)據(jù)訪問計(jì)劃-explanOPEN -檢索查詢結(jié)果打開一個(gè)游標(biāo)-openFETCH -檢索一行查詢結(jié)果-fetchCLOSE -關(guān)閉游標(biāo)-clocePREPARE -為動態(tài)執(zhí)行準(zhǔn)備SQL 語句-repareEXECUTE -動態(tài)地執(zhí)行SQL 語句-executeDESCRIBE -描述準(zhǔn)備好的查詢 -describe-局部變量-必須以開頭-IF ELSEdeclare x int y int z intselect x = 1 y = 2 z=3if x > yprint 'x > y' -打印字符串'x > y'else if y
5、 > zprint 'y > z'else print 'z > y'-CASEuse panguupdate employeeset e_wage =casewhen job_level = 1 then e_wage*1.08when job_level = 2 then e_wage*1.07when job_level = 3 then e_wage*1.06else e_wage*1.05end-WHILE CONTINUE BREAKdeclare x int y int c intselect x = 1 y=1while x &
6、lt; 3beginprint x -打印變量x 的值while y < 3beginselect c = 100*x + yprint c -打印變量c 的值select y = y + 1endselect x = x + 1select y = 1end-WAITFOR-例 等待1 小時(shí)2 分零3 秒后才執(zhí)行SELECT 語句waitfor delay 01:02:03select * from employee-例 等到晚上11 點(diǎn)零8 分后才執(zhí)行SELECT 語句waitfor time 23:08:00select * from employee*SELECT*select
7、*(列名) from table_name(表名) where column_name operator valueex:(宿主)select * from stock_information where stockid = str(nid)stockname = 'str_name' stockname like '% find this %' stockname like 'a-zA-Z%' - (指定值的范圍)stockname like 'F-M%' - (排除指定范圍)- 只能在使用like關(guān)鍵字的where子句中使用通
8、配符)or stockpath = 'stock_path'or stocknumber < 1000and stockindex = 24not stock* = 'man'stocknumber between 20 and 100stocknumber in(10,20,30)order by stockid desc(asc) - 排序,desc-降序,asc-升序order by 1,2 - by列號stockname = (select stockname from stock_information where stockid = 4)- 子
9、查詢- 除非能確保內(nèi)層select只返回一個(gè)行的值,- 否則應(yīng)在外層where子句中用一個(gè)in限定符select distinct column_name form table_name - distinct指定檢索獨(dú)有的列值,不重復(fù)select stocknumber ,"stocknumber + 10" = stocknumber + 10 from table_nameselect stockname , "stocknumber" = count(*) from table_name group by stockname- group by 將
10、表按行分組,指定列中有相同的值having count(*) = 2 - having選定指定的組select * from table1, table2 where table1.id *= table2.id - 左外部連接,table1中有的而table2中沒有得以null表示table1.id =* table2.id - 右外部連接 select stockname from table1union all - union合并查詢結(jié)果集,all-保留重復(fù)行select stockname from table2*insert*insert into table_name (Stock
11、_name,Stock_number) value ("xxx","xxxx")value (select Stockname , Stocknumber from Stock_table2)-value為select語句*update*update table_name set Stockname = "xxx" where Stockid = 3Stockname = defaultStockname = nullStocknumber = Stockname + 4*delete*delete from table_name w
12、here Stockid = 3truncate table_name - 刪除表中所有行,仍保持表的完整性drop table table_name - 完全刪除表*alter table* - 修改數(shù)據(jù)庫表結(jié)構(gòu)alter table database.owner.table_name add column_name char(2) null .sp_help table_name - 顯示表已有特征create table table_name (name char(20), age smallint, lname varchar(30)insert into table_name sel
13、ect . - 實(shí)現(xiàn)刪除列的方法(創(chuàng)建新表)alter table table_name drop constraint Stockname_default - 刪除Stockname的default約束*function(/*常用函數(shù)*/)*-統(tǒng)計(jì)函數(shù)-AVG -求平均值COUNT -統(tǒng)計(jì)數(shù)目MAX -求最大值MIN -求最小值SUM -求和-AVGuse panguselect avg(e_wage) as dept_avgWagefrom employeegroup by dept_id-MAX-求工資最高的員工姓名use panguselect e_namefrom employeew
14、here e_wage =(select max(e_wage)from employee)-STDEV()-STDEV()函數(shù)返回表達(dá)式中所有數(shù)據(jù)的標(biāo)準(zhǔn)差-STDEVP()-STDEVP()函數(shù)返回總體標(biāo)準(zhǔn)差-VAR()-VAR()函數(shù)返回表達(dá)式中所有值的統(tǒng)計(jì)變異數(shù)-VARP()-VARP()函數(shù)返回總體變異數(shù)-算術(shù)函數(shù)-/*三角函數(shù)*/SIN(float_expression) -返回以弧度表示的角的正弦COS(float_expression) -返回以弧度表示的角的余弦TAN(float_expression) -返回以弧度表示的角的正切COT(float_expression) -返
15、回以弧度表示的角的余切/*反三角函數(shù)*/ASIN(float_expression) -返回正弦是FLOAT 值的以弧度表示的角ACOS(float_expression) -返回余弦是FLOAT 值的以弧度表示的角ATAN(float_expression) -返回正切是FLOAT 值的以弧度表示的角ATAN2(float_expression1,float_expression2) -返回正切是float_expression1 /float_expres-sion2的以弧度表示的角DEGREES(numeric_expression)-把弧度轉(zhuǎn)換為角度返回與表達(dá)式相同的數(shù)據(jù)類型可為-IN
16、TEGER/MONEY/REAL/FLOAT 類型RADIANS(numeric_expression) -把角度轉(zhuǎn)換為弧度返回與表達(dá)式相同的數(shù)據(jù)類型可為-INTEGER/MONEY/REAL/FLOAT 類型EXP(float_expression) -返回表達(dá)式的指數(shù)值LOG(float_expression) -返回表達(dá)式的自然對數(shù)值LOG10(float_expression)-返回表達(dá)式的以10 為底的對數(shù)值SQRT(float_expression) -返回表達(dá)式的平方根/*取近似值函數(shù)*/CEILING(numeric_expression) -返回>=表達(dá)式的最小整數(shù)返回
17、的數(shù)據(jù)類型與表達(dá)式相同可為-INTEGER/MONEY/REAL/FLOAT 類型FLOOR(numeric_expression) -返回<=表達(dá)式的最小整數(shù)返回的數(shù)據(jù)類型與表達(dá)式相同可為-INTEGER/MONEY/REAL/FLOAT 類型ROUND(numeric_expression) -返回以integer_expression 為精度的四舍五入值返回的數(shù)據(jù)-類型與表達(dá)式相同可為INTEGER/MONEY/REAL/FLOAT 類型ABS(numeric_expression) -返回表達(dá)式的絕對值返回的數(shù)據(jù)類型與表達(dá)式相同可為-INTEGER/MONEY/REAL/FLOA
18、T 類型SIGN(numeric_expression) -測試參數(shù)的正負(fù)號返回0 零值1 正數(shù)或-1 負(fù)數(shù)返回的數(shù)據(jù)類型-與表達(dá)式相同可為INTEGER/MONEY/REAL/FLOAT 類型PI() -返回值為 即3.1415926535897936RAND(integer_expression) -用任選的integer_expression做種子值得出0-1 間的隨機(jī)浮點(diǎn)數(shù)-字符串函數(shù)-ASCII() -函數(shù)返回字符表達(dá)式最左端字符的ASCII 碼值CHAR() -函數(shù)用于將ASCII 碼轉(zhuǎn)換為字符-如果沒有輸入0 255 之間的ASCII 碼值CHAR 函數(shù)會返回一個(gè)NULL 值LO
19、WER() -函數(shù)把字符串全部轉(zhuǎn)換為小寫UPPER() -函數(shù)把字符串全部轉(zhuǎn)換為大寫STR() -函數(shù)把數(shù)值型數(shù)據(jù)轉(zhuǎn)換為字符型數(shù)據(jù)LTRIM() -函數(shù)把字符串頭部的空格去掉RTRIM() -函數(shù)把字符串尾部的空格去掉LEFT(),RIGHT(),SUBSTRING() -函數(shù)返回部分字符串CHARINDEX(),PATINDEX() -函數(shù)返回字符串中某個(gè)指定的子串出現(xiàn)的開始位置SOUNDEX() -函數(shù)返回一個(gè)四位字符碼 -SOUNDEX函數(shù)可用來查找聲音相似的字符串但SOUNDEX函數(shù)對數(shù)字和漢字均只返回0 值 DIFFERENCE() -函數(shù)返回由SOUNDEX 函數(shù)返回的兩個(gè)字符表達(dá)
20、式的值的差異-0 兩個(gè)SOUNDEX 函數(shù)返回值的第一個(gè)字符不同-1 兩個(gè)SOUNDEX 函數(shù)返回值的第一個(gè)字符相同-2 兩個(gè)SOUNDEX 函數(shù)返回值的第一二個(gè)字符相同-3 兩個(gè)SOUNDEX 函數(shù)返回值的第一二三個(gè)字符相同-4 兩個(gè)SOUNDEX 函數(shù)返回值完全相同QUOTENAME() -函數(shù)返回被特定字符括起來的字符串/*select quotename('abc', '') quotename('abc')運(yùn)行結(jié)果如下-abc abc*/REPLICATE() -函數(shù)返回一個(gè)重復(fù)character_expression 指定次數(shù)的字符串
21、/*select replicate('abc', 3) replicate( 'abc', -2)運(yùn)行結(jié)果如下- -abcabcabc NULL*/REVERSE() -函數(shù)將指定的字符串的字符排列順序顛倒REPLACE() -函數(shù)返回被替換了指定子串的字符串/*select replace('abc123g', '123', 'def')運(yùn)行結(jié)果如下- -abcdefg*/SPACE() -函數(shù)返回一個(gè)有指定長度的空白字符串STUFF() -函數(shù)用另一子串替換字符串指定位置長度的子串-數(shù)據(jù)類型轉(zhuǎn)換函數(shù)-CAST
22、() 函數(shù)語法如下CAST() (<expression> AS <data_ type> length )CONVERT() 函數(shù)語法如下CONVERT() (<data_ type> length , <expression> , style)select cast(100+99 as char) convert(varchar(12), getdate()運(yùn)行結(jié)果如下- -199 Jan 15 2000-日期函數(shù)-DAY() -函數(shù)返回date_expression 中的日期值MONTH() -函數(shù)返回date_expression 中的月
23、份值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>
24、, <date>) -函數(shù)以整數(shù)值的形式返回日期的指定部分GETDATE() -函數(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ù)返回表中指定字段的長度值COL_NAME(<table_id>, <column_id>) -函數(shù)返回表中指定字段的名稱即列名DATAL
25、ENGTH() -函數(shù)返回?cái)?shù)據(jù)表達(dá)式的數(shù)據(jù)的實(shí)際長度DB_ID('database_name') -函數(shù)返回?cái)?shù)據(jù)庫的編號DB_NAME(database_id) -函數(shù)返回?cái)?shù)據(jù)庫的名稱HOST_ID() -函數(shù)返回服務(wù)器端計(jì)算機(jī)的名稱HOST_NAME() -函數(shù)返回服務(wù)器端計(jì)算機(jī)的名稱IDENTITY(<data_type>, seed increment) AS column_name)-IDENTITY() 函數(shù)只在SELECT INTO 語句中使用用于插入一個(gè)identity column列到新表中/*select identity(int, 1, 1) a
26、s column_nameinto newtablefrom oldtable*/ISDATE() -函數(shù)判斷所給定的表達(dá)式是否為合理日期ISNULL(<check_expression>, <replacement_value>) -函數(shù)將表達(dá)式中的NULL 值用指定值替換ISNUMERIC() -函數(shù)判斷所給定的表達(dá)式是否為合理的數(shù)值NEWID() -函數(shù)返回一個(gè)UNIQUEIDENTIFIER 類型的數(shù)值NULLIF(<expression1>, <expression2>)-NULLIF 函數(shù)在expression1 與expressio
27、n2 相等時(shí)返回NULL 值若不相等時(shí)則返回expression1 的值sql中的保留字action add aggregate all alter after and as asc avg avg_row_length auto_increment between bigint bit binary blob bool both by cascade case char character change check checksum column columns comment constraint create cross current_date current_time current
28、_timestamp data database databases date datetime day day_hour day_minute day_second dayofmonth dayofweek dayofyear dec decimal default delayed delay_key_write delete desc describe distinct distinctrow double drop end else escape escaped enclosed enum explain exists fields file first float float4 flo
29、at8 flush foreign from for full function global grant grants group having heap high_priority hour hour_minute hour_second hosts identified ignore in index infile inner insert insert_id int integer interval int1 int2 int3 int4 int8 into if is isam join key keys kill last_insert_id leading left length
30、 like lines limit load local lock logs long longblob longtext low_priority max max_rows match mediumblob mediumtext mediumint middleint min_rows minute minute_second modify month monthname myisam natural numeric no not null on optimize option optionally or order outer outfile pack_keys partial passw
31、ord precision primary procedure process processlist privileges read real references reload regexp rename replace restrict returns revoke rlike row rows second select set show shutdown smallint soname sql_big_tables sql_big_selects sql_low_priority_updates sql_log_off sql_log_update sql_select_limit
32、sql_small_result sql_big_result sql_warnings straight_join starting status string table tables temporary terminated text then time timestamp tinyblob tinytext tinyint trailing to type use using unique unlock unsigned update usage values varchar variables varying varbinary with write when where year
33、year_month zerofill常用SQL命令和ASP編程在進(jìn)行數(shù)據(jù)庫操作時(shí),無非就是添加、刪除、修改,這得設(shè)計(jì)到一些常用的SQL語句,如下: SQL常用命令使用方法:(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&qu
34、ot;sql="select * from 數(shù)據(jù)表 where 字段名 in (值1,值2,值3)"sql="select * from 數(shù)據(jù)表 where 字段名 between 值1 and 值2"(2) 更新數(shù)據(jù)記錄:sql="update 數(shù)據(jù)表 set 字段名=字段值 where 條件表達(dá)式"sql="update 數(shù)據(jù)表 set 字段1=值1,字段2=值2 字段n=值n where 條件表達(dá)式"(3) 刪除數(shù)據(jù)記錄:sql="delete from 數(shù)據(jù)表 where 條件表達(dá)式"s
35、ql="delete from 數(shù)據(jù)表" (將數(shù)據(jù)表所有記錄刪除)(4) 添加數(shù)據(jù)記錄:sql="insert into 數(shù)據(jù)表 (字段1,字段2,字段3 ) valuess (值1,值2,值3 )"sql="insert into 目標(biāo)數(shù)據(jù)表 select * from 源數(shù)據(jù)表" (把源數(shù)據(jù)表的記錄添加到目標(biāo)數(shù)據(jù)表)(5) 數(shù)據(jù)記錄統(tǒng)計(jì)函數(shù):AVG(字段名) 得出一個(gè)表格欄平均值COUNT(*|字段名) 對數(shù)據(jù)行數(shù)的統(tǒng)計(jì)或?qū)δ骋粰谟兄档臄?shù)據(jù)行數(shù)統(tǒng)計(jì)MAX(字段名) 取得一個(gè)表格欄最大的值MIN(字段名) 取得一個(gè)表格欄最小的值SU
36、M(字段名) 把數(shù)據(jù)欄的值相加引用以上函數(shù)的方法:sql="select sum(字段名) as 別名 from 數(shù)據(jù)表 where 條件表達(dá)式"set rs=conn.excute(sql)用 rs("別名") 獲取統(tǒng)的計(jì)值,其它函數(shù)運(yùn)用同上。(6) 數(shù)據(jù)表的建立和刪除:CREATE TABLE 數(shù)據(jù)表名稱(字段1 類型1(長度),字段2 類型2(長度) )例:CREATE TABLE tab01(name varchar(50),datetime default now()DROP TABLE 數(shù)據(jù)表名稱 (永久性刪除一個(gè)數(shù)據(jù)表)在ASP編程時(shí),下面
37、這些語句是必須知道的:1.連接數(shù)據(jù)庫a. ASP與Access數(shù)據(jù)庫連接:<% language=VBs cript%><%dim conn,mdbfilemdbfile=server.mappath("數(shù)據(jù)庫名稱.mdb")set conn=server.createobject("adodb.connection")conn.open "driver=microsoft access driver (*.mdb);uid=admin;pwd=數(shù)據(jù)庫密碼;dbq="&mdbfile%>b. ASP與S
38、QL數(shù)據(jù)庫連接:<% language=VBs cript%><%dim connset conn=server.createobject("ADODB.connection")con.open "PROVIDER=SQLOLEDB;DATA SOURCE=SQL服務(wù)器名稱或IP地址;UID=sa;PWD=數(shù)據(jù)庫密碼;DATABASE=數(shù)據(jù)庫名稱%>建立記錄集對象:set rs=server.createobject("adodb.recordset")rs.open SQL語句,conn,3,22. 記錄集對象的方法:
39、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頁的第一行rs.pagesize=N 設(shè)置每頁為N條記錄rs.pagecount 根據(jù) pagesize 的設(shè)置返回總頁數(shù)rs.recordcount 返回記錄總數(shù)rs.bof 返回記錄指針是否超出數(shù)據(jù)表首端,true表示是,false為否rs.eof
40、 返回記錄指針是否超出數(shù)據(jù)表末端,true表示是,false為否rs.delete 刪除當(dāng)前記錄,但記錄指針不會向下移動rs.addnew 添加記錄到數(shù)據(jù)表末端rs.update 更新數(shù)據(jù)表記錄附:常數(shù) 常數(shù)值 說明adLockReadOnly 1 缺省值,Recordset對象以只讀方式啟動,無法運(yùn)行AddNew、Update及Delete等方法adLockPrssimistic 2 當(dāng)數(shù)據(jù)源正在更新時(shí),系統(tǒng)會暫時(shí)鎖住其他用戶的動作,以保持?jǐn)?shù)據(jù)一致性。adLockOptimistic 3 當(dāng)數(shù)據(jù)源正在更新時(shí),系統(tǒng)并不會鎖住其他用戶的動作,其他用戶可以對數(shù)據(jù)進(jìn)行增、刪、改的操作。adLockB
41、atchOptimistic 4 當(dāng)數(shù)據(jù)源正在更新時(shí),其他用戶必須將CursorLocation屬性改為adUdeClientBatch才能對數(shù)據(jù)進(jìn)行增、刪、改的操作。MSSQL經(jīng)典語句 1.按姓氏筆畫排序:Select * From TableName Order By CustomerName Collate Chinese_PRC_Stroke_ci_as 2.數(shù)據(jù)庫加密:select encrypt('原始密碼')select pwdencrypt('原始密碼')select pwdcompare('原始密碼','加密后密碼
42、9;) = 1-相同;否則不相同 encrypt('原始密碼')select pwdencrypt('原始密碼')select pwdcompare('原始密碼','加密后密碼') = 1-相同;否則不相同3.取回表中字段:declare list varchar(1000),sql nvarchar(1000) select list=list+','+ from sysobjects a,syscolumns b where a.id=b.id and ='表A'set
43、sql='select '+right(list,len(list)-1)+' from 表A' exec (sql)4.查看硬盤分區(qū):EXEC master.xp_fixeddrives5.比較A,B表是否相等:if (select checksum_agg(binary_checksum(*) from A)=(select checksum_agg(binary_checksum(*) from B)print '相等'elseprint '不相等'6.殺掉所有的事件探察器進(jìn)程:DECLARE hcforeach CURSO
44、R GLOBAL FOR SELECT 'kill '+RTRIM(spid) FROM master.dbo.sysprocessesWHERE program_name IN('SQL profiler',N'SQL 事件探查器')EXEC sp_msforeach_worker '?'7.記錄搜索:開頭到N條記錄Select Top N * From 表-N到M條記錄(要有主索引ID)Select Top M-N * From 表 Where ID in (Select Top M ID From 表) Order by I
45、D Desc-N到結(jié)尾記錄Select Top N * From 表 Order by ID Desc8.如何修改數(shù)據(jù)庫的名稱:sp_renamedb 'old_name', 'new_name' 9:獲取當(dāng)前數(shù)據(jù)庫中的所有用戶表select Name from sysobjects where xtype='u' and status>=010:獲取某一個(gè)表的所有字段select name from syscolumns where id=object_id('表名')11:查看與某一個(gè)表相關(guān)的視圖、存儲過程、函數(shù)sele
46、ct a.* from sysobjects a, syscomments b where a.id = b.id and b.text like '%表名%'12:查看當(dāng)前數(shù)據(jù)庫中所有存儲過程select name as 存儲過程名稱 from sysobjects where xtype='P'13:查詢用戶創(chuàng)建的所有數(shù)據(jù)庫select * from master.sysdatabases D where sid not in(select sid from master.syslogins where name='sa')或者select
47、dbid, name AS DB_NAME from master.sysdatabases where sid <> 0x0114:查詢某一個(gè)表的字段和數(shù)據(jù)類型select column_name,data_type from information_schema.columnswhere table_name = '表名' n.標(biāo)題:Select * From TableName Order By CustomerName n.標(biāo)題:Select * From TableName Order By CustomerName from:觸發(fā)器-MSSQL常用操作發(fā)
48、表人:kendy517 | 發(fā)表時(shí)間: 2007年二月09日, 09:18不再新開文章.這里只打算講解四部分了,也就最簡單、最常用的四部分。1、觸發(fā)器。定義: 何為觸發(fā)器?在SQL Server里面也就是對某一個(gè)表的一定的操作,觸發(fā)某種條件,從而執(zhí)行的一段程序。觸發(fā)器是一個(gè)特殊的存儲過程。常見的觸發(fā)器有三種:分別應(yīng)用于Insert , Update , Delete 事件。(SQL Server 2000定義了新的觸發(fā)器,這里不提)我為什么要使用觸發(fā)器?比如,這么兩個(gè)表:Create Table Student( -學(xué)生表StudentID int primary key, -學(xué)號.)Crea
49、te Table BorrowRecord( -學(xué)生借書記錄表BorrowRecord int identity(1,1), -流水號 StudentID int , -學(xué)號BorrowDate datetime, -借出時(shí)間ReturnDAte Datetime, -歸還時(shí)間.)用到的功能有:1.如果我更改了學(xué)生的學(xué)號,我希望他的借書記錄仍然與這個(gè)學(xué)生相關(guān)(也就是同時(shí)更改借書記錄表的學(xué)號);2.如果該學(xué)生已經(jīng)畢業(yè),我希望刪除他的學(xué)號的同時(shí),也刪除它的借書記錄。等等。這時(shí)候可以用到觸發(fā)器。對于1,創(chuàng)建一個(gè)Update觸發(fā)器:Create Trigger truStudentOn Student
50、for UpdateAsif Update(StudentID)beginUpdate BorrowRecord Set StudentID=i.StudentIDFrom BorrowRecord br , Deleted d ,Inserted i Where br.StudentID=d.StudentIDend 理解觸發(fā)器里面的兩個(gè)臨時(shí)的表:Deleted , Inserted 。注意Deleted 與Inserted分別表示觸發(fā)事件的表“舊的一條記錄”和“新的一條記錄”。一個(gè)Update 的過程可以看作為:生成新的記錄到Inserted表,復(fù)制舊的記錄到Deleted表,然后刪除St
51、udent記錄并寫入新紀(jì)錄。對于2,創(chuàng)建一個(gè)Delete觸發(fā)器Create trigger trdStudentOn Studentfor DeleteAsDelete BorrowRecord From BorrowRecord br , Delted dWhere br.StudentID=d.StudentID從這兩個(gè)例子我們可以看到了觸發(fā)器的關(guān)鍵:A.2個(gè)臨時(shí)的表;B.觸發(fā)機(jī)制。這里我們只講解最簡單的觸發(fā)器。復(fù)雜的容后說明。事實(shí)上,我不鼓勵(lì)使用觸發(fā)器。觸發(fā)器的初始設(shè)計(jì)思想,已經(jīng)被“級聯(lián)”所替代.來自:MSSQL數(shù)據(jù)庫導(dǎo)出和導(dǎo)入SQL Server導(dǎo)出導(dǎo)入數(shù)據(jù)方法
52、一、導(dǎo)出導(dǎo)入SQL Server里某個(gè)數(shù)據(jù)庫 1.在SQL Server企業(yè)管理器里選中要轉(zhuǎn)移的數(shù)據(jù)庫,按鼠標(biāo)右鍵,選所有任務(wù)->備份數(shù)據(jù)庫。 2.備份 選數(shù)據(jù)庫-完全, 目的 備份到 按添加按鈕 文件名 在SQL Server服務(wù)器硬盤下輸入一個(gè)自定義的備份數(shù)據(jù)庫文件名(后綴一般是bak) 重寫 選重寫現(xiàn)有媒體 最后按確定按鈕。 如果生成的備份數(shù)據(jù)庫文件大于1M,要用壓縮工具壓縮后再到Internet上傳輸。 3.通過FTP或者remote desktop或者pcanywhere等方法 把第二步生成的備份數(shù)據(jù)庫文件或者其壓縮后的文件傳到目的SQL Server數(shù)據(jù)庫,如果有
53、壓縮要解壓。 4.目的SQL Server數(shù)據(jù)庫如果還沒有此數(shù)據(jù)庫,先創(chuàng)建一個(gè)新的數(shù)據(jù)庫; 然后選中這個(gè)新創(chuàng)建的數(shù)據(jù)庫,按鼠標(biāo)右鍵,選所有任務(wù)->還原數(shù)據(jù)庫 還原->從設(shè)備->選擇設(shè)備->磁盤->添加(找到要導(dǎo)入的備份數(shù)據(jù)庫文件名)->確定 還原備份集->數(shù)據(jù)庫-完全 最后按確定按鈕。完全的數(shù)據(jù)庫導(dǎo)入成功了。 (如果在已經(jīng)存在的SQL Server數(shù)據(jù)庫上還原數(shù)據(jù)庫可能遇到有還有其它人正在使用它而恢復(fù)操做失敗, 可以去看 ->管理->當(dāng)前活動->鎖/對象->找到數(shù)據(jù)庫下鎖的進(jìn)程號->到查詢分析器里用kill 進(jìn)程號殺掉這些
54、鎖, 然后再做還原) 注意:如果在原有的目的SQL Server數(shù)據(jù)庫上從備份文件(*.bak)還原數(shù)據(jù)庫 會把已經(jīng)存在的表、存儲過程等數(shù)據(jù)庫對象全部替換成最近這次導(dǎo)入的備份數(shù)據(jù)庫里的內(nèi)容。 如果一定要還原備份文件(*.bak)里部分?jǐn)?shù)據(jù),需要另外建一個(gè)新數(shù)據(jù)庫, 其邏輯名稱和數(shù)量同備份文件(*.bak)里數(shù)據(jù)庫的邏輯名稱和數(shù)量一致; 新數(shù)據(jù)庫的物理文件名稱取得一定要和備份文件(*.bak)里數(shù)據(jù)庫的物理文件不一樣才行。 二、導(dǎo)出導(dǎo)入SQL Server里某個(gè)表 1.沒有防火墻,同一個(gè)局域網(wǎng)里或不在同一個(gè)局域網(wǎng)里,但通過Internet可以互相訪問 在SQL Serve
55、r企業(yè)管理器里選中目的數(shù)據(jù)庫 ,按鼠標(biāo)右鍵,選所有任務(wù)->導(dǎo)入數(shù)據(jù)-> 彈出數(shù)據(jù)轉(zhuǎn)換服務(wù)導(dǎo)入/導(dǎo)出向?qū)Т翱?>下一步-> 選數(shù)據(jù)源-> 數(shù)據(jù)源(用于SQL Server的Microfost OLE DB提供程序)-> 服務(wù)器(可選擇局域網(wǎng)內(nèi)能訪問到的所有SQL Server服務(wù)器,或者直接輸入IP地址)-> 選擇使用windows身份驗(yàn)證還是使用SQL Serve身份驗(yàn)證(輸入數(shù)據(jù)庫的用戶名和密碼)-> 數(shù)據(jù)庫(可選擇上面選中SQL Server服務(wù)器上所有權(quán)限范圍內(nèi)的數(shù)據(jù)庫)->下一步-> 選擇目的->目的(用于SQL Ser
56、ver的Microfost OLE DB提供程序)-> 服務(wù)器(默認(rèn)為上一步里選中的導(dǎo)出服務(wù)器,也可以選其它局域網(wǎng)內(nèi)能訪問到的所有SQL Server服務(wù)器,或者直接輸入IP地址)-> 目的數(shù)據(jù)庫(可選擇上面選中SQL Server服務(wù)器上所有權(quán)限范圍內(nèi)的數(shù)據(jù)庫)->下一步-> 制定表復(fù)制或查詢->選從源數(shù)據(jù)庫復(fù)制表和視圖(也可以選擇用一條查詢指定要傳輸?shù)臄?shù)據(jù))->下一步-> 選擇源表和視圖->在要導(dǎo)入的表和視圖前面選中源->目的出現(xiàn)同樣的表名(可以手工修改成別的表名)-> 轉(zhuǎn)換->列映射和轉(zhuǎn)換里面可以修改源表和目的表之間字段的
57、對應(yīng)關(guān)系,修改目的表字段的類型和長度等, 并可以選擇創(chuàng)建目的表,在目的表中增加行,除去并重新創(chuàng)建目的表,啟用標(biāo)志插入等選項(xiàng)->確定->下一步-> 保存、調(diào)度和復(fù)制包->時(shí)間->立即運(yùn)行(如果要實(shí)現(xiàn)隔一段時(shí)間自動導(dǎo)出導(dǎo)入數(shù)據(jù),選調(diào)度DTS包以便以后執(zhí)行)-> 保存(可以不選)-> 保存DTS包(如果以后還要轉(zhuǎn)移這批相同的數(shù)據(jù),可以把本次導(dǎo)出導(dǎo)入的內(nèi)容和步驟保存起來, 存到SQL Server即可,保存的時(shí)候要輸入DTS的包名及詳細(xì)描述)->下一步-> ->完成 正在執(zhí)行包->圖形界面顯示創(chuàng)建表及插入記錄的步驟和狀態(tài)->完成 2.經(jīng)過防火墻,不在同一個(gè)局域網(wǎng)里 、導(dǎo)出表里的數(shù)據(jù)到文本文件: 在SQL Server企業(yè)管理器里選中目的數(shù)據(jù)庫,按鼠標(biāo)右鍵,選所有任務(wù)-> 導(dǎo)入數(shù)據(jù)->彈出數(shù)據(jù)轉(zhuǎn)換服務(wù)導(dǎo)入/導(dǎo)出向?qū)Т翱?>下一步-> 選數(shù)據(jù)源-> 數(shù)據(jù)源(用于SQL Server的Microfost OLE DB提供程序
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 小手拉大手交通安全一起守
- 2024商業(yè)廣場盛大開業(yè)啟幕系列(雪域之光王府井啟航主題)活動策劃方案-113正式版
- 經(jīng)內(nèi)鏡逆行胰膽管造影(ERCP)護(hù)理業(yè)務(wù)學(xué)習(xí)
- Unit 4 Plants around us C (說課稿)-2024-2025學(xué)年人教PEP版(2024)英語三年級上冊
- 光學(xué)樹脂系列產(chǎn)品項(xiàng)目可行性研究報(bào)告寫作模板-拿地備案
- 信息技術(shù)七年級上冊第八課 動感溫馨感恩卡-圖文結(jié)合說課稿(小小導(dǎo)游本領(lǐng)大)
- 福建省龍巖市新羅區(qū)2024-2025學(xué)年二年級上學(xué)期期末數(shù)學(xué)試題參考答案
- 江蘇省宿遷市(2024年-2025年小學(xué)六年級語文)部編版階段練習(xí)(下學(xué)期)試卷及答案
- 貴州師范大學(xué)《急救臨床技能訓(xùn)練》2023-2024學(xué)年第一學(xué)期期末試卷
- 貴州黔南科技學(xué)院《幼兒教師發(fā)展專題》2023-2024學(xué)年第一學(xué)期期末試卷
- 小班《火車開了》音樂欣賞課評課稿
- 倫理學(xué)與醫(yī)學(xué)倫理學(xué) (醫(yī)學(xué)倫理學(xué)課件)
- GB/T 6344-2008軟質(zhì)泡沫聚合材料拉伸強(qiáng)度和斷裂伸長率的測定
- GA/T 1740.1-2020旅游景區(qū)安全防范要求第1部分:山岳型
- 產(chǎn)后康復(fù)客戶健康評估表格
- 企業(yè)人員組織結(jié)構(gòu)圖
- 個(gè)人現(xiàn)實(shí)表現(xiàn)材料1500字德能勤績廉(通用6篇)
- 六年級上冊數(shù)學(xué)單元測試-5.圓 青島版 (含答案)
- (精心整理)高一語文期末模擬試題
- QC成果解決鋁合金模板混凝土氣泡、爛根難題
- 管線管廊布置設(shè)計(jì)規(guī)范
評論
0/150
提交評論