SQL学习一
SQL SERVER注釋快捷鍵:選中 Ctrl+K Ctrl+C
SQL SERVER注釋快捷鍵:選中 Ctrl+K Ctrl+U
1、SQL語句補。
1、SELECT時可以添加一些自定義的詞,或者連接兩個字段(類型必須一樣)。 SELECT XM+'的學號是:'+XH FROM dbo.STUD_VIEW; --輸出的是 某某的學號是:xxxxxx,有點像excel的'&'(and)連接符2、INSERT INTO新表(指定字段) SELECT 舊表字段 FROM 舊表 語句。 INSERT INTO STUD2(XH,XM,DNO) SELECT XH,XM,DNO FROM dbo.STUD; --新建了一張STUD2,然后取了STUD的XH、XM、DNO三列插到了STUD2的XH、XM、DNO列(名字可以不同,位置對應)2、SQL的流程控制語句
1、BEGIN…END 表示開始。。和結束。。。 2、IF…為真怎么樣..ELSE…否則怎么樣。。。 3、當年WOW做自動輸出腳本,十多個技能判斷,所以這個還是比較熟悉的。。。 IF (SELECT AVG(NL) FROM dbo.STUD_VIEW)<23BEGINUPDATE STUD SET CSNY=CSNY-1;EXEC sp_refreshview STUD_VIEW; --刷新視圖 PRINT '學生們又老了1天';END ELSEBEGINSELECT AVG(NL) FROM dbo.STUD_VIEW;END --虛擬一個環境,要求判斷學生平均年齡是否小于23歲,如果是就把出生年月減小1天,然后刷新視圖;如果等于或者大于23的時候,就SELECT出平均年齡。 --缺點很顯然。。要執行N次。。。 4、上面這個用while來執行就很合適了。Continue就是跳到BEGIN開始往下執行,而break就是跳到end開始往下執行。 WHILE (SELECT AVG(NL) FROM dbo.STUD_VIEW)<23 BEGINUPDATE STUD SET CSNY=CSNY-1;EXEC sp_refreshview STUD_VIEW;PRINT '學生們又老了1天...';IF (SELECT AVG(NL) FROM dbo.STUD_VIEW)<23CONTINUE;ELSEBREAK; END SELECT 平均年齡=AVG(NL) FROM dbo.STUD_VIEW; --PRINT感覺沒什么用了,速度太快,什么都看不到。 --后來發現是因為后面這個SELECT語句吧PRINT全部給蓋掉了的原因。 5、上面這個例子中的continue用GOTO也是一樣的可以實現的。 KAISHI: WHILE (SELECT AVG(NL) FROM dbo.STUD_VIEW)<24 BEGINUPDATE STUD SET CSNY=CSNY-1;EXEC sp_refreshview STUD_VIEW;PRINT '學生們又老了1天...';IF (SELECT AVG(NL) FROM dbo.STUD_VIEW)<24GOTO KAISHI;ELSEGOTO JIESHU; END JIESHU: SELECT 平均年齡=AVG(NL) FROM dbo.STUD_VIEW; --用GOTO實現了CONTINUE和BREAK的功能。 6、RETURN的用處是從GO的語句塊中退出來,且RETURN后面的語句是不會執行的,相當于在這個GO語句塊里生生的被RETURN截斷了。 GO KAISHI: WHILE (SELECT AVG(NL) FROM dbo.STUD_VIEW)<25 BEGINUPDATE STUD SET CSNY=CSNY-10;EXEC sp_refreshview STUD_VIEW;PRINT '學生們又老了10天...';IF (SELECT AVG(NL) FROM dbo.STUD_VIEW)<25GOTO KAISHI;ELSERETURN; END SELECT 平均年齡=AVG(NL) FROM dbo.STUD_VIEW; --因為RETURN后面的語句不會執行,所以SELECT語句是不會執行的。?
轉載于:https://www.cnblogs.com/gmblog/p/3826479.html
總結
- 上一篇: Android九宫图(draw9patc
- 下一篇: [MySQL 5.6] GTID实现、运