久久99精品久久久久久琪琪,久久人人爽人人爽人人片亞洲,熟妇人妻无码中文字幕,亚洲精品无码久久久久久久

SQL語句判斷數(shù)據(jù)庫、表、字段是否存在

時間:2019-05-13 16:13:32下載本文作者:會員上傳
簡介:寫寫幫文庫小編為你整理了多篇相關(guān)的《SQL語句判斷數(shù)據(jù)庫、表、字段是否存在》,但愿對你工作學(xué)習(xí)有幫助,當(dāng)然你在寫寫幫文庫還可以找到更多《SQL語句判斷數(shù)據(jù)庫、表、字段是否存在》。

第一篇:SQL語句判斷數(shù)據(jù)庫、表、字段是否存在

SQL語句判斷數(shù)據(jù)庫、表、字段是否存在--判斷[TestDB]是否存在if exists(select 1 from master..sysdatabases where name='TestDB')

print 'TestDB存在'

else

print 'TestDB不存在'

--判斷表[TestTb]是否存在if exists(select * from TestDB..syscolumns where id=object_id('TestDB.dbo.TestTb'))print '表TestTb存在'

else

print '表TestTb不存在'

--判斷[TestDB]數(shù)據(jù)中[TestTb]表中是否存在[Name]字段

if exists(select * from TestDB..syscolumns where id=object_id('TestDB.dbo.TestTb')and name='Name')

print '字段Name存在'

else

print '字段Name不存在'

第二篇:如何判斷SQL語句是否執(zhí)行了?(本站推薦)

如何判斷SQL語句是否執(zhí)行了?

我們可以利用err對象來判斷:

sql=“insert into table(f1,f2)values('v1','v2')”

conn.execute sql

if err.number<>0 then

response.write “哎呀,出錯了:”& err.description err.clear else

response.write “OK”

end if

第三篇:數(shù)據(jù)庫SQL語句十題

作業(yè)十題

1.查詢所有學(xué)生的基本信息,并按學(xué)號降序排列

SELECT * FROM STUDENT

ORDER BY sno DESC;

2.查詢系別代碼為“02”的女同學(xué)信息

SELECT * FROM STUDENT

WHERE ssex=’女’ and sdept=‘02’;

3.查詢學(xué)生的總?cè)藬?shù)

SELECT COUNT(*)AS 學(xué)生總?cè)藬?shù)

FROM STUDENT;

4.所有選修課學(xué)生的姓名,課程名及成績

SELECT sname,cname,grade

FROM STUDENT,COURSE,SC

WHERE STUDENT.sno=SC.sno and COURSE.cno=SC.cno;

5.不及格學(xué)生姓名(合并重復(fù)項)

SELECT distinct sname

FROM SC,STUDENT

WHERE grade<=60 and STUDENT.sno=SC.sno;

6.查詢學(xué)號為“011110”的學(xué)生的哪些課程的成績比他數(shù)據(jù)庫的成績要高 SELECT cno

FROM COURSE

WHERE sno=’011110’ and grade>(SELECT grade FROM COURSE,SC

WHERE cname=’數(shù)據(jù)庫’ and sno=‘011110’ and

COURSE.cno=SC.cno);

7.查詢選修課在3門以上(包括3門)的學(xué)生學(xué)號及選課門數(shù) SELECT sno,COUNT(*)AS 選修門數(shù)

FROM SC

GROUP BY sno HAVING COUNT(*)>=3;

8.查詢學(xué)號為“011110”的學(xué)生的平均成績,并以平均成績命名 SELECT AVG(grade)AS average grade

FROM SC

WHERE sno=’011110’;

9.查詢計算機(jī)系或英語系的所有學(xué)生的個人信息

SELECT*FROM STUDENT

WHERE sdeptIN(SELECT sdept FROM DEPT

WHERE sdname=’計算機(jī)系’OR sdname=’英語系’);

10.查詢與“羅宇波”同一個系的學(xué)生情況

SELECT * FROM STUDENT

WHERE sdept=(SELECT sdept FROM STUDENT

WHERE sname=’羅宇波’);

第四篇:SQL數(shù)據(jù)庫編程學(xué)習(xí)應(yīng)用語句

SQL數(shù)據(jù)庫編程學(xué)習(xí)應(yīng)用語句大全

1as 的用處

as可以對表和列取別名

在開發(fā)過程中經(jīng)常遇到開始給某一個的字段去field1的名稱,但后來有感覺field1字段指定不確切,于是又把此字段改成了field2,由于開始認(rèn)為field1是常量,于是到處使用字符串field1,而且程序中又含有大量對field1的處理,此時就可以使用as

例如原來的 select field1 from tableA,改為selectfield2 asfield1 from tableA 代碼基本就可以不動了。

2自增長的字段的插入

開發(fā)中經(jīng)常遇到某個字段類型為IDENTITY,也就是自增長類型,但由于特殊需要,又要插入數(shù)據(jù)

需要臨時去掉,可以使用如下語句set IDENTITY_INSERTtablename on,在處理完成后在使用如下語句恢復(fù) set IDENTITY_INSERTtablenameoff

3分組取每組的前N個數(shù)據(jù)

開發(fā)中還會遇到需要對某一組數(shù)據(jù)先分組,然后取每組的前n條記錄的情況

不妨試試如下代碼

[sql] view plaincopy

/*

按CurrentNodeLevel列分組,每組按NodeID排序,取出每個組中的前3個元素*/

declare @temp table(NodeIDint, CurrentNodeLevelint ,rowNumberint)--定義臨時表insert into @temp

selectNodeID,CurrentNodeLevel,ROW_NUMBER()

OVER(partitionby CurrentNodeLevel

order by NodeID)as rowNumber

from SchoolTerminalStruct---給臨時表中插入數(shù)據(jù)

select * from @temp where rowNumber<=3--從臨時表中取數(shù)據(jù)

4生成隨機(jī)數(shù)

主意此方法只能寫成存儲過程,不能寫成函數(shù)

[sql] view plaincopy

-----返回Max,Min之間的隨機(jī)數(shù)不能寫成函數(shù)

createproc [dbo].[getRAND]

(@Max int,--最大值

@Min int--,--最小值)

AS

BEGIN

DECLARE @result int

SELECT @result=RAND()*(@Max-@Min)+@Min

select@result

END

5把滿足一定條件的數(shù)據(jù)用逗號分隔

這可能也是一個很常用的語句了,經(jīng)常出現(xiàn)在一對多的關(guān)系中對外展示,要求把子表中的數(shù)據(jù)取出來用逗號或者其他符號分隔開

[sql] view plaincopy

/*

把滿足 t2.NodeID=t1.NodeID的tableA 的字段NodeName 以逗號分隔開合并為一個字段輸出

*/

select *,stuff((select ',' + t1.NodeName from tableA t1,tableB t2

wheret2.NodeID=t1.NodeID

for xml path('')), 1 , 1 , '')as text

fromtableA

6在數(shù)據(jù)庫中處理異常

通過個參數(shù)附加output標(biāo)志來輸出參數(shù),通過TRY,CATCH捕捉異常

[sql] view plaincopy

CREATE PROCEDURE [dbo].[sp_UpdateFunctionTree]

@nodenameint,@Result int output---2,操作失敗;0操作成功

AS

BEGIN

begin

BEGIN TRY

UPDATE FunctionTree SET NodeName=@nodename

set @Result=0--操作成功

END TRY

BEGIN CATCH

set @Result=-2--操作失敗

END CATCH

end

END

7查詢中的條件判斷

經(jīng)常遇到在某些條件下應(yīng)該查詢這個字段,在另外一些條件下需要其他字段的情況,可以通過unoin來完成,但也可以通過CASE WHEN 完成[sql] view plaincopy

/*

在State=0 時返回field1 ,在State=1時返回 field2 ,其他時返回field3

*/

SELECT(CASE WHENState=0 THEN field1 WHENState=1 THEN field2

ELSE field3 END)as State

FROM tablename

8單引號的處理

在包含單引號時應(yīng)該使用兩個單引號轉(zhuǎn)義

[sql] view plaincopy

dbo.sp_executesql @statement = N' select indexID,Sex=(case when Sex=0then ''男'' else ''女'' end)

fromtablename '

9使用游標(biāo)

[sql] view plaincopy

declare @temp table(TaskIDint ,NodeIdint)--聲明臨時表

insert into @temp select A.TaskID ,A.NodeIdfrom tableAA,tableB B

whereA.TaskID=B.TaskID--//--給聲明的臨時表中插入記錄

DECLARE tnames_cursor CURSORLOCAL FORWARD_ONLY READ_ONLY--聲明游標(biāo)

FOR select TaskID,NodeId from @temp;--游標(biāo)需要用到的列

open tnames_cursor--打開游標(biāo)

DECLARE @TaskIDint,@NodeIdint;--聲明變量

FETCH NEXT FROM tnames_cursor INTO @TaskID,@NodeId--移動游標(biāo)給變量賦值,應(yīng)該與游標(biāo)需要用到的列一一對應(yīng),順序類型應(yīng)該一致

WHILE(@@FETCH_STATUS = 0)--循環(huán)

BEGIN

BEGIN

exec TaskType @TaskID,@NodeId--調(diào)用存儲過程

END

FETCH NEXT FROM tnames_cursor INTO @TaskID,@NodeId ,@TaskRunCYCType--移動游標(biāo)給變量賦值 應(yīng)該與游標(biāo)需要用到的列一一對應(yīng),順序類型應(yīng)該一致

END

CLOSE tnames_cursor--關(guān)閉游標(biāo)

DEALLOCATE tnames_cursor--釋放游標(biāo)

10合并更新和插入

在開發(fā)中大部分情況下,插入和更新傳遞的參數(shù)基本上是一樣,那為什么不合并呢

[sql] view plaincopy

createproc [dbo].[Save_TableName]

(@field1 varchar(50),@field2varchar(200),@ID int,@insertOrUpdate--小于0插入 大于0更新)

as

begin

if(@insertOrUpdate<0)

begin

INSERT INTOTableName(field1,field2,ID)

values(@field1,@field2,@ID);

end

else

begin

UPDATE TableNameSET field1= @field1, field2 = @field2

where ID =@ID;

end

end

11定義函數(shù)

在沒有滿足要求的情況時,可以定義函數(shù),但是使用自己定義的函數(shù)時需要加上架構(gòu)名稱

[sql] view plaincopy

create FUNCTION [dbo].[CheckTime]

(@startTimedatetime,@endTimedatetime--,)

RETURNSint

AS

BEGIN

DECLARE @result int

SET@result=DATEDIFF(hour, @startTime, @endTime)--

if(@result=0)--小時相同 比較分鐘

begin

SET@result=DATEDIFF(minute, @startTime, @endTime)

if(@result=0)--分鐘相同比較秒

begin

SET@result=DATEDIFF(second, @startTime, @endTime)

end

end

RETURN @result

END

調(diào)用此函數(shù)

[sql] view plaincopy

dbo.CheckTime(@startTime1, @startTime2)--需要加上架構(gòu)名稱

12遞歸讀取數(shù)據(jù)

在實際的應(yīng)用中經(jīng)常遇到樹結(jié)構(gòu)的表,但讀取會比較麻煩,這里提夠一個函數(shù)

[sql] view plaincopy

/*

函數(shù) 返回表,返回給定節(jié)點(diǎn)的所有子孫節(jié)點(diǎn),而不僅僅是子節(jié)點(diǎn)

*/

Create Function [dbo].[GetChildren](@NodeIDInt)

Returns @Tree Table(NodeIDInt, NodeNameVarchar(50), ParentIDInt)

As

Begin

Insert @Tree Select NodeID, NodeName, ParentIDFromTreetable Where ParentID = @NodeID

While @@Rowcount> 0

Insert @Tree Select A.NodeID, A.NodeName, A.ParentID

From Treetable A

Inner Join @Tree B

On A.ParentID = B.NodeIDAndA.NodeID Not In(Select NodeID From @Tree)Return

End

13通過默認(rèn)值實現(xiàn)存儲過程重載

存儲過程可以使用默認(rèn)值,估計都知道,但以此就可以實現(xiàn)類似函數(shù)重載的效果

例如,如下的存儲過程由于使用了默認(rèn)值,就可以不傳遞參數(shù),傳遞一個參數(shù),兩個,三個,[sql] view plaincopy

CREATE PROCEDURE dbo.my_proc

@firstint = NULL,--NULL default value

@secondint = 2,--Default value of 2

@thirdint = 3--Default value of 3

AS SELECT @first, @second, @third;

14在數(shù)據(jù)庫中拼字符串,也可以用參數(shù)

在實際的開發(fā)中,某些情況下在數(shù)據(jù)庫中拼字符串不可避免,但又擔(dān)心有特殊字符,導(dǎo)致拼出來的SQL有問題,其實數(shù)據(jù)庫中拼字符串也可以使用參數(shù),這就要用到dbo.sp_executesql,這樣就可以避免SQL注入和特殊字符導(dǎo)致的錯誤

[sql] view plaincopy

DECLARE @IntVariable INT;--定義變量

DECLARE @SQLString NVARCHAR(500);--存儲拼出來的SQL

DECLARE @ParmDefinition NVARCHAR(500);---存儲拼出來的SQL中的參數(shù)

/* Build the SQL string one time.*/

SET @SQLString =

N'SELECT * FROM AdventureWorks.Sales.Store WHERE SalesPersonID = @SalesID';/* Specify the parameter format one time.*/

SET @ParmDefinition = N'@SalesIDint';--賦值

/* Execute the string with the first parameter value.*/

SET @IntVariable = 275;--賦值

EXECUTE dbo.sp_executesql@SQLString, @ParmDefinition,@SalesID = @IntVariable;

/* Execute the same string with the second parameter value.*/

SET @IntVariable = 276;

EXECUTE dbo.sp_executesql@SQLString, @ParmDefinition,@SalesID = @IntVariable;

16觸發(fā)器需要注意的問題

在使用觸發(fā)器時有一個問題,或許很少有人注意到,一條更新語句一次更新了十條記錄,會觸發(fā)幾次觸發(fā)器?只有一次!很奇怪,但卻是事實,所以這需要注意,一不小心就會把好

多數(shù)據(jù)漏了

第五篇:VB數(shù)據(jù)庫SQL語句學(xué)習(xí)

1.Select * from student查詢所有原始記錄

2.Select StudentID, StudentName from student 只查詢學(xué)號和姓名

3.Select StudentID as 學(xué)號, StudentName as 姓名, Sex as 性別,Class as 班級,NormalScore as平時成績,ExperimentScore as 實驗成績, ExaminationScore as 考試成績 from student

4.Select * from student where sex=’男’只需要查看男生的成績

5.Select * from student where NormalScore>80只需要查看平時成績大于80分的記錄

6.Select * from student where studentname like ‘陳%’查詢姓陳的同學(xué)的記錄

7.Select * from student order by examinationScore根據(jù)考試成績排序

8.Select * from student order by examinationScore排序---降序

9.Select Sum(examinationScore)as 總成績 from student求總成績

10.Select Avg(examinationScore)as平均成績 from student求平均成績

11.Select count(*)as 總記錄數(shù) from student求總記錄數(shù)

12.Select Max(ExaminationScore)as 最高分 from student求最高分

13.Select Min(ExaminationScore)as 最高低分 from student求最低分

14.Select Class as 班級, Avg(ExaminationScore)as平均成績 from student group by class各班級成績的分類匯總

Public Class frmMain

Private ObjCnn As New OleDbConnection

Private ObjCmd As OleDbCommand

Private StrDir As String = “D:MIS1025StudentMgr.accdb”

Private Sub frmMain_Load(ByVal sender As System.Object, ByVal e As

System.EventArgs)Handles MyBase.Load

ObjCnn.ConnectionString = “Provider=Microsoft.ACE.OLEDB.12.0;Data Source=” & StrDir

ObjCnn.Open()

ObjCmd = New OleDbCommand

ObjCmd.Connection = ObjCnn

End Sub

Private Sub FindRecord(ByVal StrSQL As String)

ObjCmd.CommandText = StrSQL

Dim rd As OleDbDataReader = ObjCmd.ExecuteReader

Dim tbl As New DataTable

tbl.Load(rd)

DataGridView1.DataSource = tbl

End Sub

Private Sub CmdFind_Click(ByVal sender As System.Object,System.EventArgs)Handles CmdFind.Click

FindRecord(txtSQL.Text)

End Sub ByVal e As

下載SQL語句判斷數(shù)據(jù)庫、表、字段是否存在word格式文檔
下載SQL語句判斷數(shù)據(jù)庫、表、字段是否存在.doc
將本文檔下載到自己電腦,方便修改和收藏,請勿使用迅雷等下載。
點(diǎn)此處下載文檔

文檔為doc格式


聲明:本文內(nèi)容由互聯(lián)網(wǎng)用戶自發(fā)貢獻(xiàn)自行上傳,本網(wǎng)站不擁有所有權(quán),未作人工編輯處理,也不承擔(dān)相關(guān)法律責(zé)任。如果您發(fā)現(xiàn)有涉嫌版權(quán)的內(nèi)容,歡迎發(fā)送郵件至:645879355@qq.com 進(jìn)行舉報,并提供相關(guān)證據(jù),工作人員會在5個工作日內(nèi)聯(lián)系你,一經(jīng)查實,本站將立刻刪除涉嫌侵權(quán)內(nèi)容。

相關(guān)范文推薦

主站蜘蛛池模板: 亚洲妇女行蜜桃av网网站| 久久天天躁夜夜躁狠狠综合| 国产午夜免费啪视频观看视频| 国产亚洲av无码专区a∨麻豆| 亚洲高清一区二区三区电影| 人人爽人人爽人人片av亚洲| 欧美三级乱人伦电影| 亚洲国产午夜精品理论片在线播放| 中文字幕亚洲男人的天堂网络| 国产蝌蚪视频在线观看| 中文字幕无码乱人伦免费| 免费看无码自慰一区二区| 熟妇人妻系列aⅴ无码专区友真希| 少妇的渴望hd高清在线播放| 伊人蕉影院久亚洲高清| 国产aⅴ夜夜欢一区二区三区| 国内大量揄拍人妻精品视频| 亚洲伊人久久综合网站| 蜜臀性色av免费| 亚洲精品国产品国语原创| 欧美性猛交内射兽交老熟妇| 久久99热这里只有精品66| 日韩免费无码成人久久久久久片| 狠狠色噜噜狠狠狠狠色综合久| 无码人妻巨屁股系列| 亚洲欧美国产欧美色欲| 2021国产精品视频网站| 亚洲高清中文字幕在线看不卡| 99热这里只有精品最新地址获取| 国产极品美女高潮抽搐免费网站| 人妻在卧室被老板疯狂进入国产| 在线精品亚洲一区二区| 亚洲日本va在线视频观看| 欧美又大又色又爽aaaa片| 被三个男人绑着躁我好爽视频| 国产午夜福利亚洲第一| 亚洲色爱图小说专区| 天天夜碰日日摸日日澡性色av| 国产无遮挡又黄又爽无vip| 人妻系列无码一区二区三区| 天天摸夜夜添狠狠添婷婷|