sqlserver存儲過程的基本操作:
一、創建存儲過程
1、語法格式:
createproc|procerepro_name
[{@參數數據類型}[=默認值][output],
{@參數數據類型}[=默認值][output],
....
]
as
SQL_statements
以上是最基本語法,舉個簡單的例子:
CREATEprocp_test
as
selectretu=1
2、執行存儲過程
EXECUTEProcere_name''--存儲過程如果有參數,後面加參數格式為:@參數名=value,也可直接為參數值value
3、刪除存儲過程
dropprocereprocere_name--在存儲過程中能調用另外一個存儲過程,而不能刪除另外一個存儲過程
⑵ 計算機三級資料庫技術筆記
網路資料庫技術
一、單項選擇題
1. 存儲在計算機內有結構的數據的集合,稱為資料庫。
2. 以二維表格的形式組織資料庫中的數據,這種數據模型是關系模型
3. 下面哪個資料庫屬於中小規模資料庫管理系統Access。
4. SQL Server 2000有兩類資料庫,分別是用戶資料庫和系統資料庫。
5. 兩個實體:學院和學生之間的聯系應為一對多聯系。
6. 錯誤的對象部分限定名是伺服器名.對象名。
7. SQL Server字元型包括char和varchar。
8. 下列SQL語句中,修改表結構的是ALTER TABLE。
9. 下列SQL語句中,向表中插入數據的是INSERT。
10. 關系運算的特點是運算的對象和結果都是表。
11. 兩個表連接最常用的條件是兩個表的某些列值相等,這樣的連接稱為等值連接。
12. 在資料庫查詢語句SELECT中,指定分組表達式的子句是GROUP BY子句。
13. 用以限制查詢結果集中的行數過多,僅指定部分結果所採用的關鍵字是TOP。
14. 能夠在LIKE子句中匹配多個字元的通配符是%。
15. 統計組中滿足條件的行數或總行數的聚合函數是COUNT。
第16到第19題基於這樣的三個表即學生表S、課程表C和學生選課表SC,它們的結構如下:
S(S#, SN, SEX, AGE, DEPT)
C(C#, CN)
SC(S#, C#, GRADE)
其中:S#為學號,SN為姓名,SEX為性別,AGE為年齡,DEPT為系別,C#為課程號,CN為課程名,GRADE為成績。
16. 檢索所有比「王華」年齡大的學生姓名、年齡和性別。正確的SELECT語句是SELECT SN, AGE, SEX FROM S WHERE AGE>(SELECT AGE FROM S WHERE SN=『王華』)
17. 檢索選修課程「C2」的學生中成績最高的學生的學號。正確的SELECT語句是SELECT S# FROM SC WHERE C#=『C2』 AND GRADE>= ALL (SELECT GRADE FROM SC WHERE C#=『C2』)
18. 檢索學生姓名及其所選修課程的課程號和成績。正確的SELECT語句是SELECT S.SN, SC.C#, SC.GRADE FROM S, SC WHERE S.S#=SC.S#
19. 檢索選修四門以上課程的學生總成績(不統計不及格的課程),並要求按總成績的降序排列出來。正確的SELECT語句是SELECT S#, SUM(GRADE) FROM SC WHERE GRADE>=60 GROUP BY S# HAVING COUNT(*)>=4 ORDER BY 2 DESC
20. 創建視圖的SQL命令是CREATE VIEW
22. 打開游標所使用的SQL命令是OPEN。
23. 請選出不屬於T-SQL語言組成部分的是數據轉換語言。
24. 聲明變數所使用的關鍵字為DECLARE。
25. 按照索引的組織方式,可以將索引分為聚集索引和非聚集索引。
26. 又稱為列完整性,指給定列輸入的有效性的是域完整性。
27. 創建存儲過程的SQL命令是CREATE PROCEDURE。
28. 不屬於維護數據的觸發器的是SELECT。
29. 只備份自上次備份以來發生過變化的資料庫的數據,也稱增量備份的是差異備份。
30. 資料庫系統與外部進行數據交換的操作是導入/導出。
31. 具有數據表達方式簡潔、直觀,插入、刪除、修改操作方便等特點的數據模型是關系模型.
32. 按一定的數據模型組織數據,對資料庫進行管理的是資料庫管理系統.
33. 對於這樣一個關系:學生(學號、姓名、專業名、性別、出生日期、總學分),請選出關系的碼(關鍵字)為學號
34. 兩個實體:學院和學生之間的聯系應為一對多聯系.
35. 資料庫對象的名稱中各部分使用何種符號隔開「.」。
36. 每個表可以有多少個列設置為標識屬性identity1。
37. 下列SQL語句中,創建表結構的是CREATE TABLE。
38. 下列SQL語句中,刪除表中的指定數據的是DELETE。
39. 關系運算的特點是運算的對象和結果都是表。
40. 從表中選出指定的屬性值(列名)組成一個新表,這樣的關系運算是投影。
41. 在資料庫查詢語句SELECT中,指定表或視圖的子句是FROM子句。
42. 在資料庫查詢語句中,為使用自己選擇的列標題而更改查詢結果的列標題名,所使用的關鍵字是AS。
43. 在WHERE子句中,可以使用通配符來對字元串進行模糊匹配的關鍵字是LIKE。
44. 在學生表XS表中查詢總學分尚未定的學生情況,正確的查詢語句是SELECT * FROM XS WHERE 總學分 IS NULL。
45. 在查詢語句中對查詢的結果進行排序,用於升序排序的關鍵字是ASC。
第16到第19題基於這樣的三個表即學生表S、課程表C和學生選課表SC,它們的結構如下:
S(S#, SN, SEX, AGE, DEPT)
C(C#, CN)
SC(S#, C#, GRADE)
其中:S#為學號,SN為姓名,SEX為性別,AGE為年齡,DEPT為系別,C#為課程號,CN為課程名,GRADE為成績。
46. 檢索所有比「王華」年齡大的學生姓名、年齡和性別。正確的SELECT語句是;SELECT SN, AGE, SEX FROM S WHERE AGE>(SELECT AGE FROM S WHERE SN=『王華』)
47. 檢索選修課程「C2」的學生中成績最高的學生的學號。正確的SELECT語句是;SELECT S# FROM SC WHERE C#=『C2』 AND GRADE>= ALL (SELECT GRADE FROM SC WHERE C#=『C2』)
48. 檢索學生姓名及其所選修課程的課程號和成績。正確的SELECT語句是;SELECT S.SN, SC.C#, SC.GRADE FROM S, SC WHERE S.S#=SC.S#
49. 檢索選修四門以上課程的學生總成績(不統計不及格的課程),並要求按總成績的降序排列出來。正確的SELECT語句是;SELECT S#, SUM(GRADE) FROM SC WHERE GRADE>=60 GROUP BY S# HAVING COUNT(*)>=4 ORDER BY 2 DESC
50. 修改視圖的SQL命令是ALTER VIEW。
51. 若用如下的SQL語句創建一個student表:(『1031』, 『曾華』, NULL, NULL)
52. 在使用游標時首先要執行的是聲明游標。
53. SQL語言是一種用於資料庫查詢的結構化語言。
54. 請選出不屬於T-SQL語言組成部分的是數據轉換語言。
55. T-SQL中局部變數用哪種符號進行標識@。
56. 請選擇不是索引的作用的是使表中數據排列更為美觀。
57. 如果一個表中的一個欄位或若干個欄位的組合是另一個表的碼,則稱該欄位或欄位組合為該表的外碼。
58. 執行存儲過程的SQL命令是EXEC 。
59. SQL Server 2000中不允許使用的備份介質是只讀光碟。
60. 從外部數據源中檢索數據,並將數據插入到SQL Server表的過程,稱為導入數據。
61、表格中的一行稱為一個記錄,一列稱為一個欄位,每列的標題稱為欄位名。
62、SQL Server 2000有兩類資料庫:系統資料庫和用戶資料庫。
63、在設計表時列的identity屬性:實現的是自動增長的功能。
64、創建資料庫的SQL命令:CREATE DATABASE。
65、刪除資料庫的SQL命令:DROP DATABASE。
66、創建表的SQL命令:CREATE TABLE。
67、刪除表的SQL命令:DROP TABLE。
68插入表數據的SQL 命令:INSERT。
69、刪除表數據的SQL命令:DELETE和TRUNCATE TABLE,了解二者的區別。
70、修改表數據的SQL命令:UPDATE。
71、使用SQL命令創建視圖:CREATE VIEW。
72、使用SQL命令修改視圖:ALTER VIEW。
73、當視圖所依賴的基本表有多個時,不提倡向該視圖插入數據,因為這會影響多個基本表。
74、使用SQL命令刪除視圖:DROP VIEW。
75、使用SQL命令聲明游標:DECLARE。
76、聲明游標時SCROLL的用法:可以使游標向前、向後滾動。
77、使用SQL命令打開游標:OPEN。
78、使用SQL命令利用游標讀取數據:FETCH。
79、控制游標的關鍵字:NEXT| PRIOR| FIRST | LAST| ABSOLUTE n| RELATIVE n。
80、使用SQL命令關閉游標:CLOSE。
81、使用SQL命令刪除游標:DEALLOCATE。
82、 SQL語言是用於資料庫查詢的結構化語言。
83、T-SQL語言的組成部分:數據定義語言、數據操縱語言和數據控制語言。
84、變數的命名:以字母、_、@或#開頭,後接多個字母、數字、_、@或#構成。
85、運算符與表達式:AND和OR
86、按照索引的組織方式,可將索引分為聚集索引和非聚集索引。
87、惟一索引:不會有兩行記錄相同的索引鍵值。
88、使用SQL命令刪除索引:DROP INDEX。
89、使用SQL命令創建帶參數的存儲過程的格式:
CREATE PROCEDURE procere_name @variable_name datatype
AS
<sql_statement>
90、使用SQL命令執行帶參數的存儲過程:EXEC procere_name value。
91、使用SQL命令修改存儲過程的格式:
ALTER PROCEDURE procere_name
AS
<sql_statement>
92、使用SQL命令刪除存儲過程:DROP PROCEDURE。
93、設計備份策略的指導思想是:以最小的代價恢復數據。
94. 假定學生關系是S(S#, SNAME, SEX, AGE),課程關系是C(C#, CNAME, TEACHER),學生選課關系是SC(S#, C#, GRADE)。要查找選修課程名「COMPUTER」的性別為「女」的學生姓名,將涉及到的關系是:S, C, SC。
95. 資料庫對象的名稱中各部分使用何種符號隔開「.」。
96. 在SQL Server 2000中,精確整數型包括decimal和numeric。
97. 下列SQL語句中,實現刪除資料庫的語句是DROP DATABASE。
98. 下列SQL語句中,向表中插入數據的是INSERT。
99. 把兩個表中的行按照給定的條件進行拼接而形成新表,這樣的關系運算是連接。
100. 在資料庫查詢語句SELECT中,指定表或視圖的子句是FROM子句。
101. 在資料庫查詢中,消除結果集中的重復行所使用的關鍵字是DISTINCT。
102. 能夠在LIKE子句中匹配單個字元的通配符是「_」。
103. 在查詢語句中對查詢的結果進行排序,用於降序排序的關鍵字是。DESC
104. 若用如下的SQL語句創建一個student表:
CREATE TABLE student(NO C(4) NOT NULL,
NAME C(8) NOT NULL,
SEX C(2),
AGE N(2))
可以插入到student表中的是(『1031』, 『曾華』, NULL, NULL)
第16到第19題基於這樣的三個表即學生表S、課程表C和學生選課表SC,它們的結構如下:
S(S#, SN, SEX, AGE, DEPT)
C(C#, CN)
SC(S#, C#, GRADE)
其中:S#為學號,SN為姓名,SEX為性別,AGE為年齡,DEPT為系別,C#為課程號,CN為課程名,GRADE為成績。
105. 檢索所有比「王華」年齡大的學生姓名、年齡和性別。正確的SELECT語句是
SELECT SN, AGE, SEX FROM S
WHERE AGE>(SELECT AGE FROM S
WHERE SN=『王華』)
106. 檢索選修課程「C2」的學生中成績最高的學生的學號。正確的SELECT語句是
SELECT S# FROM SC
WHERE C#=『C2』 AND GRADE>= ALL
(SELECT GRADE FROM SC
WHERE C#=『C2』)
107. 檢索學生姓名及其所選修課程的課程號和成績。正確的SELECT語句是
SELECT S.SN, SC.C#, SC.GRADE
FROM S, SC
WHERE S.S#=SC.S#
108. 檢索選修四門以上課程的學生總成績(不統計不及格的課程),並要求按總成績的降序排列出來。正確的SELECT語句是
SELECT S#, SUM(GRADE) FROM SC
WHERE GRADE>=60
GROUP BY S#
HAVING COUNT(*)>=4
ORDER BY 2 DESC
109. 創建視圖的SQL命令是
CREATE VIEW
110、局部變數在聲明後初始化為NULL。
二、多項選擇題
1. 關系資料庫模型的優勢在於;數據表達方式簡潔、直觀;插入、刪除、修改操作方便。
2. 請選出SQL Server 2000的兩種常用工具;企業管理器;查詢分析器。
3. 設計表時空值的作用;表示不需要添加的數據;表示將在以後添加的數據。
4. 資料庫的查詢語句SELECT的語法格式中不包含以下哪些內容;DROP子句;UPDATE子句。
5. 在比較子查詢可以使用的比較關鍵字包括;ALL ; ANY。
6. 在使用游標讀取數據時,可用來滾動記錄的關鍵字是;NEXT;LAST;PRIOR;FIRST。
7. 索引的功能包括;快速存取數據;保證數據記錄的惟一性;實現表與表之間的參照完整性;利用索引可減少排序和分組的時間。
8. 資料庫中的數據丟失或被破壞的原因是;計算機軟、硬體故障;誤操作;自然災害;盜竊。
9. 確定備份頻率主要考慮的是;系統恢復的工作量;系統執行的事務量。
10. 導入/導出操作包括數據傳輸;數據轉換。
11. 目前,大型的資料庫管理系統主要包括;Oracle;SQL Server;DB2。
12. SQL Server 2000的資料庫可以分為;系統資料庫;用戶資料庫。
13. 資料庫對象包括;表;視圖;索引;存儲過程;觸發器。
14. 設計表時空值的作用;表示不需要添加的數據;表示將在以後添加的數據。
15. 資料庫的查詢語句SELECT的語法格式中包括以下哪些內容;FROM子句;WHERE子句;GROUP BY子句;HAVING子句;ORDER BY子句。
16. 可以用於SELECT語句的聚合函數包括;SUM和AVG;MAX和MIN;COUNT。
17. T-SQL語言包含以下哪些重要部分;數據定義語言 ;數據操縱語言;數據控制語言。
18. 數據完整性包括;域完整性;實體完整性;參照完整性。
19. 資料庫中的數據丟失或被破壞的原因是;計算機軟、硬體故障;誤操作;自然災害;盜竊。
20. 對導入/導出操作描述正確的是;導入/導出是資料庫系統與外部進行數據交換的操作;導入數據是把其他系統的數據引入到SQL Server的資料庫中;導出數據是把資料庫從SQL Server資料庫中引導其他欄位。
21、流行的中小型資料庫包括Access和Visual Foxpro。大型資料庫管理系統包括Oracle,Microsoft的SQL Server,Sybase和IBM的DB2。
22、數據模型分為關系模型、層次模型、網狀模型。所劃分原則是數據之間的聯系。關系模型優勢:數據表達方式簡潔、直觀,插入、刪除、修改操作方便。
23、實體之間的聯系有如下幾種:一對一的聯系(1: 1)、一對多的聯系(1: n)、多對多的聯系(m: n)。
24、 SQL Server 2000的兩種常用工具:企業管理器,查詢分析器。
25、SQL Server 2000的資料庫對象包括:表、視圖、索引、存儲過程、觸發器和約束。
26、資料庫對象的完全限定名包括:伺服器名、資料庫名、所有者名和對象名。其中前三個可以省略,掌握省略的格式。
27、常用的關系運算包括:連接、選擇和投影。關系運算的特點是運算的對象和結果都是表。
28、SQL Server對游標的使用要遵循的步驟:聲明游標;打開游標;讀取數據;關閉游標;刪除游標。
29、全局變數和局部變數分別用@@和@進行標識。
30、數據完整性的分類:域完整性、實體完整性和參照完整性。
31. 資料庫管理系統採用的數據模型有;層次模型;網狀模型;關系模型。
32. SQL Server 2000的資料庫可以分為;系統資料庫;用戶資料庫。
33. 資料庫對象包括;表;視圖;索引;;存儲過程;觸發器。
34. 常見的連接操作包括;等值連接;自然連接。
35. 資料庫的查詢語句SELECT的語法格式中不包含以下哪些內容;DROP子句;UPDATE子句。
36. 請從下面的關鍵字中選出能夠用於WHERE子句中進行范圍比較的是;IN;BETWEEN。
37. 請選出對視圖描述正確的項;資料庫中只存儲視圖的定義;對視圖的數據進行操作時,系統根據視圖的定義去操作與視圖相關聯的基本表。
38. 按照索引的組織方式,可將索引分為;聚集索引;非聚集索引。
39. 存儲過程包括以下哪些類型;系統存儲過程;本地存儲過程;臨時存儲過程;遠程存儲過程;擴展存儲過程。
40.SQL Server 2000中,允許使用的備份介質包括;硬碟;磁帶;命名管道。
三、名詞解釋
1、碼:在關系表中,如果一個欄位或幾個欄位組合的值可惟一標識其對應記錄,則稱該欄位或欄位組合為碼。
2、記錄:每個表包含了若干行數據,它們是表的「值」,表中的一行稱為一個記錄。
3. 投影:投影運算從表中選出指定的屬性值(列名)組成一個新表,記為:∏A(R)。
4. 索引: 根據表中一列或若干列按照一定順序建立的列值與記錄行之間的對應關系表。
5. 參照完整性: 又稱為引用完整性。參照完整性保證主表中的數據與從表中數據的一致性。
6. 資料庫:是存放數據及相關信息的倉庫。
7. 欄位:每個記錄由若干個數據項構成,將構成記錄的每個數據項稱為欄位。
8. 連接:連接運算把兩個表中的行按照給定的條件進行拼接而形成新表,記為: 。
9. 數據的完整性:是指資料庫中的數據在邏輯上的一致性和准確性。
10. 資料庫恢復:就是當資料庫出現故障時,將備份的資料庫載入到系統,從而使資料庫恢復到備份時的正確狀態。
11、資料庫(DB):資料庫是存放數據及相關信息的倉庫。
12、資料庫管理系統(DBMS):資料庫管理系統是管理資料庫的系統,它按一定的數據模型組織數據。
13、實體和實體集:每一類數據對象的個體稱為實體,而每一類對象個體的集合稱為實體集。
14、記錄:每個表包含了若干行數據,它們是表的「值」,表中的一行稱為一個記錄。
15、欄位:每個記錄由若干個數據項構成,將構成記錄的每個數據項稱為欄位。
16、選擇運算:選擇運算按給定的條件,從表中選出滿足條件的行形成一個新表作為運算結果,選擇運算的記號為σF(R)。
17、投影運算:投影運算從表中選出指定的屬性值(列名)組成一個新表,記為:∏A(R)。
18、連接運算:連接運算把兩個表中的行按照給定的條件進行拼接而形成新表,記為: 。
19、等值連接:兩個表的某些列值相等,這樣的連接稱為等值連接。
20、自然連接:自然連接運算要求兩個表有共同屬性,自然連接運算的結果表是在參與操作兩個表的共同屬性上進行等值連接後再去除重復的屬性後所得的新表,自然連接運算記為: 。
21、局部變數:DECLARE @local_variable data_type,所有局部變數在聲明後均初始化為NULL。
22、域完整性:域完整性又稱為列完整性,指給定列輸入的有效性。
23、實體完整性:實體完整性又稱為行的完整性,要求表中有一個主鍵,其值不能為空且能惟一地標識對應的記錄。
24、參照完整性:參照完整性又稱為引用完整性。參照完整性保證主表中的數據與從表中數據的一致性。
25、外碼:如果一個表中的一個欄位或若干個欄位的組合是另一個表的碼則稱該欄位或欄位組合為該表的外碼。
26、存儲過程:在SQL Server中,可以定義子程序存放在資料庫中,這樣的子程序稱為存儲過程。
27、觸發器:觸發器是一類特殊的存儲過程。觸發器與表的關系密切,用於保護表中的數據。當有操作影響到觸發器保護的數據時,觸發器自動執行。
28、導入/導出:導入/導出是資料庫系統與外部進行數據交換的操作。
導入數據是從外部數據源中檢索數據,並將數據插入到SQL Server表的過程,即把其他系統的數據引入到SQL Server的資料庫中。
導出數據是將SQL Server資料庫中的數據轉換為某些用戶指定格式的過程,即把資料庫從SQL Server資料庫中引到其他系統。
四、簡答題
1. 請列舉SQL Server 2000的資料庫對象。
表、視圖、索引、存儲過程、觸發器和約束。
2. 簡述存儲過程的優點。
(1)存儲過程在伺服器端運行,執行速度快。
(2)存儲過程執行一次後,其執行規劃就駐留在高速緩沖存儲器,在以後的操作中,只需從高速緩沖存儲器中調用已編譯好的二進制代碼執行,提高了系統性能。
(3)確保資料庫的安全。
(4)自動完成需要預先執行的任務。
3. 請根據以下表的定義寫出創建表的語句。
表名:Student
列名 數據類型 長度 是否允許為空
學號 定長字元型(char) 6 否
姓名 定長字元型(char) 8 否
專業名 定長字元型(char) 10 允許
性別 位型(bit) 1(系統默認值) 否
出生時間 日期時間類型(smalldatetime) 4(系統默認值) 否
總學分 整數型(tinyint) 1(系統默認值) 允許
備注 文本型(text) 16(系統默認值) 允許
CREATE TABLE student(
學號 char(6) NOT NULL,
姓名 char(8) NOT NULL,
專業名 char(10) NULL,
性別 bit NOT NULL,
出生日期 smalldatetime NOT NULL,
總學分 tinyint NULL,
備注 text NULL)
4. 根據以下要求寫出實現表操作的SQL語句。
假設資料庫中已經建立好以下表結構。
表名:Student
列名 數據類型 長度 是否允許為空
學號 定長字元型(char) 6 否
姓名 定長字元型(char) 8 否
專業名 定長字元型(char) 10 允許
性別 位型(bit) 1(系統默認值) 否
出生時間 日期時間類型(smalldatetime) 4(系統默認值) 否
總學分 整數型(tinyint) 1(系統默認值) 允許
備注 文本型(text) 16(系統默認值) 允許
請分別寫出如下操作的SQL語句:
(1) 增加新列 「獎學金等級」,數據類型為tinyint,允許為空;
(2) 刪除「備注」列;
(3) 將「出生日期」列的數據類型由原來的smalldatetime修改為datetime。
(1)ALTER TABLE Student ADD 獎學金等級 tinyint NULL
(2)ALTER TABLE Student DROP COLUMN 備注
(3)ALTER TABLE Student ALTER COLUMN 出生日期 datetime
5. 資料庫中已經存在下表。
表名:Student
列名 數據類型 長度 是否允許為空
學號 定長字元型(char) 6 否
姓名 定長字元型(char) 8 否
專業名 定長字元型(char) 10 允許
總學分 整數型(tinyint) 1(系統默認值) 允許
備注 文本型(text) 16(系統默認值) 允許
請寫出如下對表中數據進行操作的SQL語句:
(1)插入一條學生信息,學號為「532241」,姓名為「張鑫」,專業名為「計算機」;
(2)從表中刪除學號為「532240」的學生記錄;
(3)將表中所有記錄的專業名由「計算機」改為「計算機應用技術」。
(1)INSERT INTO Student(學號, 姓名, 專業名) VALUES(『532241』, 『張鑫』, 『計算機』)
或 INSERT INTO Student VALUES(『532241』, 『張鑫』, 『計算機』, NULL, NULL)
(2)DELETE FROM Student WHERE 學號=『532240』
(3)UPDATE Student SET 專業名=『計算機應用技術』 WHERE 專業名=『計算機』
6. 請列舉設計表時包括的內容。
確定表的名字、所包含的列名、列的數據類型、長度、是否可為空值、默認值情況、是否要使用以及何時使用約束、默認設置或規則以及所需索引、哪些列是主鍵、哪些列是外鍵。
7. 簡述索引的作用。
(1)快速存取數據。
(2)保證數據記錄的惟一性。
(3)實現表與表之間的參照完整性。
(4)在使用ORDER BY, GROUP BY子句進行數據檢索時,利用索引可減少排序和分組的時間。
8. 請根據以下表的定義寫出創建表的語句。
表名:Course
列名 數據類型 長度 是否允許為空
課程號 定長字元型(char) 3 否
課程名 定長字元型(char) 16 否
開課學期 整數型(tinyint) 1(系統默認值) 否
學時 整數型(tinyint) 1(系統默認值) 否
學分 整數型(tinyint) 4(系統默認值) 允許
CREATE TABLE course(
課程號 char(3) NOT NULL,
課程名 char(16) NOT NULL,
開課日期 tinyint NOT NULL,
學時 tinyint NOT NULL,
學分 tinyint NULL)
9. 根據以下要求寫出實現表操作的SQL語句。
假設資料庫中已經建立好以下表結構。
表名:Course
列名 數據類型 長度 是否允許為空
課程號 定長字元型(char) 3 否
課程名 定長字元型(char) 16 否
開課學期 整數型(tinyint) 1(系統默認值) 否
學時 整數型(tinyint) 1(系統默認值) 否
學分 整數型(tinyint) 4(系統默認值) 允許
請分別寫出如下操作的SQL語句:
(1) 增加新列「授課教師」,數據類型為char,長度為10,不允許為空;
(2) 刪除「學時」列;
(3) 將「課程名」列的長度由原來16改為20。
(1)ALTER TABLE Course ADD 授課教師 char(10) NOT NULL
(2)ALTER TABLE Course DROP COLUMN 學時
(3)ALTER TABLE Course ALTER COLUMN 課程名 char(20)
10. 資料庫中已經存在下表。
表名:Course
列名 數據類型 長度 是否允許為空
課程號 定長字元型(char) 3 否
課程名 定長字元型(char) 16 否
開課學期 整數型(tinyint) 1(系統默認值) 否
學時 整數型(tinyint) 1(系統默認值) 否
學分 整數型(tinyint) 4(系統默認值) 允許
繼續需要請留郵箱&上我空間留郵箱
⑶ SQL 如何刪除指定資料庫中的存儲過程
可以通過drop語句進行實現。
sql:drop procere procerename;
解釋:上面的sql語句的意思就是刪除出存儲過程名為procerename的存儲過程。
備註:drop(刪除)的通常是對象,如表(table)、視圖(view),功能(function)等。
⑷ SQL查詢語句大全(一)
Select --從資料庫表中檢索數據行和列
Insert --向資料庫表添加新數據行
Delete --從資料庫表中刪除數據行
Update --更新資料庫表中的數據
Create TABLE --創建一個資料庫表
Drop TABLE --從資料庫中刪除表
Alter TABLE --修改資料庫表結構
Create VIEW --創建一個視圖
Drop VIEW --從資料庫中刪除視圖
Create INDEX --為資料庫表創建一個索引
Drop INDEX --從資料庫中刪除索引
Create PROCEDURE --創建一個存儲過程
Drop PROCEDURE --從資料庫中刪除存儲過程
Create TRIGGER --創建一個觸發器
Drop TRIGGER --從資料庫中刪除觸發器
Create SCHEMA --向資料庫添加一個新模式
Drop SCHEMA --從資料庫中刪除一個模式
Create DOMAIN --創建一個數據值域
Alter DOMAIN --改變域定義
Drop DOMAIN --從資料庫中刪除一個域
GRANT --授予用戶訪問許可權
DENY --拒絕用戶訪問
REVOKE --解除用戶訪問許可權
COMMIT --結束當前事務
ROLLBACK --中止當前事務
SET TRANSACTION --定義當前事務數據訪問特徵
DECLARE --為查詢設定游標
EXPLAN --為查詢描述數據訪問計劃
OPEN --檢索查詢結果打開一個游標
FETCH --檢索一行查詢結果
CLOSE --關閉游標
PREPARE --為動態執行准備 SQL 語句
EXECUTE --動態地執行 SQL 語句
DESCRIBE --描述准備好的查詢
declare @id char(10)
--set @id = '10010001'
select @id = '10010001'
---必須以@@開頭
declare @x int @y int @z int
select @x = 1 @y = 2 @z=3
if @x > @y
print 'x > y' --列印字元串'x > y'
else if @y > @z
print 'y > z'
else print 'z > y'
use pangu
update employee
set e_wage =
case
when job_level = 』1』 then e_wage*1.08
when job_level = 』2』 then e_wage*1.07
when job_level = 』3』 then e_wage*1.06
else e_wage*1.05
end
declare @x int @y int @c int
select @x = 1 @y=1
while @x < 3
begin
print @x --列印變數 x 的值
while @y < 3
begin
select @c =100*@x+ @y
print @c --列印變數 c 的值
select @y = @y + 1
end
select @x = @x + 1
select @y = 1
end
--例 等待 1 小時 2 分零 3 秒後才執行 Select 語句
waitfor delay 』01:02:03』
select * from employee
--例 等到晚上 11 點零 8 分後才執行 Select 語句
waitfor time 』23:08:00』
select * from employee
select *(列名) from table_name(表名) where column_name operator value
ex:(宿主)
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 關鍵字的 where 子句中使用通配符)
or stockpath = 'stock_path'
or stocknumber < 1000
and stockindex = 24
not stocksex = 'man'
stocknumber between 20 and 100
stocknumber 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)
--------- 子查詢
--------- 除非能確保內層 select 只返回一個行的值,
--------- 否則應在外層 where 子句中用一個 in 限定符
select distinct column_name form table_name --------- distinct 指定檢索獨有的列值,不重復
select stocknumber ,"stocknumber + 10" = stocknumber + 10 from table_name
select stockname , "stocknumber" = count(*) from table_name group by stockname
--------- group by 將表按行分組,指定列中有相同的值
having count(*) = 2 --------- having 選定指定的組
select *
from table1, table2
where table1.id *= table2.id -------- 左外部連接,table1 中有的而 table2 中沒有得以 null 表示
table1.id =* table2.id -------- 右外部連接
select stockname from table1
union [all] ----- union 合並查詢結果集,all-保留重復行
select stockname from table2
insert into table_name (Stock_name,Stock_number) value ("xxx","xxxx")
value (select Stockname , Stocknumber from Stock_table2)---value 為 select 語句
update table_name set Stockname = "xxx" [where Stockid = 3]
Stockname = default
Stockname = null
Stocknumber = Stockname + 4
delete from table_name where Stockid = 3
truncate table_name ----------- 刪除表中所有行,仍保持表的完整性
drop table table_name --------------- 完全刪除表
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 select ......... ----- 實現刪除列的方法(創建新表)
alter table table_name drop constraint Stockname_default ---- 刪除 Stockname 的 default 約束
⑸ sql 刪除語句
1、delete 語句用於刪除表中的行。delete語句執行刪除的過程是每次從表中刪除一行,並且同時將該行的刪除操作作為事務記錄在日誌中保存
語法:DELETE FROM 表名稱 WHERE 列名稱 = 值,
如:刪除student表中姓名為張三豐的學生信息-delete from studentwhere name=『張三豐』;
2、drop (刪除表):刪除內容和定義,釋放空間。簡單來說就是把整個表去掉.以後要新增數據是不可能的,除非新增一個表。
drop語句將刪除表的結構被依賴的約束(constrain),觸發器(trigger)索引(index);依賴於該表的存儲過程/函數將被保留,但其狀態會變為:invalid。
3、truncate (清空表中的數據):刪除內容、釋放空間但不刪除定義(保留表的數據結構)。與drop不同的是,只是清空表數據而已。
注意:truncate 不能刪除行數據,要刪就要把表清空。
(5)刪除存儲過程的sql命令是什麼擴展閱讀:
資料庫操作中,經常要用到刪除表和刪除表數據,在實際應用中,三者的區別是明確的。
當你不再需要該表時, 用 drop;
當你仍要保留該表,但要刪除所有記錄時, 用 truncate;
當你要刪除部分記錄時(always with a WHERE clause), 用 delete。
truncate 與delete 比較:
1、truncate table 在功能上與不帶 WHERE 子句的 delete語句相同:二者均刪除表中的全部行。
2、truncate 比 delete速度快,且使用的系統和事務日誌資源少。
3、truncate 操作後的表比Delete操作後的表要快得多。
⑹ SQL 中存儲過程怎麼使用
一、簡單的儲存過程:
1、創建一個存儲過程
create procere GetUsers()
begin
select * from user;
end;12345
2、調用存儲過程
call GetUsers();12
3、刪除存儲過程
drop procere if exists GetUsers;
二、帶參數的存儲過程
1、MySql 支持 IN (傳遞給存儲過程) , OUT (從存儲過程傳出) 和 INOUT (對存儲過程傳入和傳出) 類型的參數 , 存儲過程的代碼位於 BEGIN 和 END 語句內 , 它們是一系列 SQL 語句 , 用來檢索值 , 然後保存到相應的變數 (通過指定INTO關鍵字) ;
2、下面的存儲過程接受三個參數 , 分別用於獲取用戶表的最小 , 平均 , 最大分數 , 每個參數必須具有指定的類型 , 這里使用十進制值(decimal(8,2)) , 關鍵字 OUT 指出相應的參數用來從存儲過程傳出
create procere GetScores(
out minScore decimal(8,2),
out avgScore decimal(8,2),
out maxScore decimal(8,2)
)
begin
select min(score) into minScore from user;
select avg(score) into avgScore from user;
select max(score) into maxScore from user;
end;1234567891011
3、調用此存儲過程 , 必須指定3個變數名(所有 MySql 變數都必須以@開始) , 如下所示 :
call GetScores(@minScore, @avgScore, @maxScore);12
4、該調用並沒有任何輸出 , 只是把調用的結果賦給了調用時傳入的變數@minScore, @avgScore, @maxScore, 然後即可調用顯示該變數的值 :
select @minScore, @avgScore, @maxScore;
5、使用 IN 參數 , 輸入一個用戶 id , 返回該用戶的名字 :
create procere GetNameByID(
in userID int,
out userName varchar(200)
)
begin
select name from user
where id = userID
into userName;
end;12345678910
6、調用存儲過程 :
call GetNameByID(1, @userName);
select @userName;123
⑺ 誰能告訴我SQL server里,刪除語句 Drop、DELETE、TRUNCATE三者有什麼區別
drop 是把表和 數據 都刪掉了 delete是把表裡的某個元組 及裡面的某個 數據 刪掉了 truncate是把表裡的數據全部 刪掉 但表的結果 沒刪掉 只是 數據全刪掉了