[科大訊飛] SQL數(shù)據(jù)庫(kù)復(fù)習(xí)資料_第1頁(yè)
[科大訊飛] SQL數(shù)據(jù)庫(kù)復(fù)習(xí)資料_第2頁(yè)
[科大訊飛] SQL數(shù)據(jù)庫(kù)復(fù)習(xí)資料_第3頁(yè)
[科大訊飛] SQL數(shù)據(jù)庫(kù)復(fù)習(xí)資料_第4頁(yè)
[科大訊飛] SQL數(shù)據(jù)庫(kù)復(fù)習(xí)資料_第5頁(yè)
已閱讀5頁(yè),還剩5頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、Ø DATABASE語(yǔ)句創(chuàng)建數(shù)據(jù)庫(kù):CREATE DATABASE 數(shù)據(jù)庫(kù)名稱 刪除數(shù)據(jù)庫(kù):DROP DATABASE 數(shù)據(jù)庫(kù)名 稱Ø TABLE語(yǔ)句創(chuàng)建表:CREATE TABLE 表名稱 ( 列名稱 1 數(shù)據(jù)類型 , 列名稱 2 數(shù)據(jù)類型 , 列名稱 3 數(shù) 據(jù)類型 , . 增加列:ALTER TABLE table_name ADD column_name datatype刪除列:ALTER TABLE table_name DROP COLUMN column_name修改列:ALTER TABLE table_name ALTER COLUMN column_na

2、me datatype刪除表:DROP TABLE 表名稱刪除表中數(shù)據(jù):A 、 DELETE FROM表名稱B 、 TRUNCATE TABLE 表名稱Ø INSERT INTO語(yǔ)句INSERT INTO 表名稱 V ALUES (值 1, 值 2,. 說(shuō)明:默認(rèn)所有列,所以 V ALUES 中值需 要對(duì)應(yīng)列數(shù)和列順序例:INSERT INTO Persons VALUES ('Gates', 'Bill', 'Xuanwumen 10', 'Beijing'INSERT INTO table_name (列 1, 列

3、2,. VALUES (值 1, 值 2,.說(shuō)明:列名和值一一對(duì)應(yīng) 例:INSERT INTO Persons (LastName, Address VALUES ('Wilson', 'Champs-Elysees'Ø Update 語(yǔ)句UPDATE 表名稱 SET 列名稱 = 新值 WHERE 列名稱 = 某值說(shuō)明:修改多列時(shí), 之間用逗號(hào)隔開(kāi), 另外通常加上 WHERE 子句, 否則修改表中所有行。 例 :UPDATE Person SET Address = 'Zhongshan 23', City = 'Nanjing

4、' WHERE LastName = 'Wilson'Ø DELETE 語(yǔ)句DELETE FROM 表名稱 WHERE 列名稱 = 值 說(shuō)明:通常加上 WHERE 子句,否則刪除 所有的行。 例:DELETE FROM Person WHERE LastName = 'Wilson'Ø RDBMS 指的是關(guān)系型數(shù)據(jù)庫(kù)管理系統(tǒng)。比如 MS SQL Server, IBM DB2, Oracle, MySQL 以及 Microsoft Access。Ø SELECT 語(yǔ)句:SELECT 列名稱 FROM 表名稱SELECT *

5、FROM 表名稱Ø SELECT DISTINCT 語(yǔ)句:關(guān)鍵詞 DISTINCT 用于返回唯一不同的值SELECT DISTINCT 列名稱 FROM 表名稱說(shuō)明:列名稱若有多個(gè),多列數(shù)據(jù)必須全部一樣,才認(rèn)為是重復(fù)。Ø WHERE 子句SELECT 列名稱 FROM 表名稱 WHERE 列 運(yùn)算符 值例:SELECT * FROM Persons WHERE City='Beijing' SQL使用單引號(hào)來(lái)環(huán)繞文本值(大部分?jǐn)?shù)據(jù)庫(kù)系統(tǒng)也接受雙引號(hào) 。如果是數(shù)值,請(qǐng)不要使用引號(hào)。Ø AND和 OR 運(yùn)算符例:SELECT * FROM Person

6、s WHERE FirstName='Thomas' AND LastName='Carter'例:SELECT * FROM Persons WHERE firstname='Thomas' OR lastname='Carter'Ø ORDER BY語(yǔ)句升序:ASC (默認(rèn)降序:DESC例:SELECT Company, OrderNumber FROM Orders ORDER BY Company例:SELECT Company, OrderNumber FROM Orders ORDER BY Company

7、DESC例 :SELECT Company, OrderNumber FROM Orders ORDER BY Company DESC, OrderNumber ASC先按 Company 降序排列,遇到 Company 相同的列時(shí),這些列再按 OrderNumber 升序排列, 若 Company 沒(méi)有相同項(xiàng)時(shí),則 OrderNumber 無(wú)意義。Ø TOP子句:用于規(guī)定要返回的記錄的數(shù)目SELECT TOP number|percent column_name(s FROM table_name通常和 ORDER BY 一起使用Ø LIKE操作符例:SELECT *

8、FROM Persons WHERE City LIKE 'N%'例:SELECT * FROM Persons WHERE City LIKE '%lon%'Ø IN 操作符SELECT column_name(s FROM table_name WHERE column_name IN (value1,value2,. 例:SELECT * FROM Persons WHERE LastName IN ('Adams','Carter'例:SELECT * FROM Persons WHERE LastName IN

9、 (SELECT LastName FROM Users 說(shuō)明:IN 后面的 SELECT 子句只能查詢一列Ø BETWEEN 操作符例:SELECT * FROM Persons WHERE LastName BETWEEN 'Adams' AND 'Carter'Ø INNER JOIN關(guān)鍵字SELECT column_name(s FROM table_name1 INNER JOIN table_name2 ON table_name1.column_name=table_name2.column_nameØ LEFT JO

10、IN 關(guān)鍵字SELECT column_name(s FROM table_name1 LEFT JOIN table_name2 ON table_name1.column_name=table_name2.column_nameØ UNION 操作符:用于合并兩個(gè)或多個(gè) SELECT 語(yǔ)句的結(jié)果集。請(qǐng)注意, UNION 內(nèi)部的 SELECT 語(yǔ)句必須擁有相同數(shù)量的列。列也必須擁有相似的數(shù)據(jù) 類型。同時(shí),每條 SELECT 語(yǔ)句中的列的順序必須相同。另外, UNION 結(jié)果集中的列名總是等于 UNION 中第一個(gè) SELECT 語(yǔ)句中的列名。 SELECT column_name(

11、s FROM table_name1 UNION SELECT column_name(s FROM table_name2Ø SQL 系統(tǒng)函數(shù) :A VG 、 COUNT 、 MAX 、 MIN 、 SUMØ GROUP BY 語(yǔ)句SELECT column_name, aggregate_function(column_name FROM table_name WHERE column_name operator value GROUP BY column_nameØ 變量定義及賦值DECLARE 變量名 數(shù)據(jù)類型 如 DECLARE name varchar

12、(10 注意:不可缺少 符號(hào)A 、 SET name = feipeng B 、 SELECT name = Name FROM Users WHERE UserId = A101Ø 存儲(chǔ)過(guò)程A 、不帶參數(shù):CREATE PROC sp_InsertUserBEGIN-SQL語(yǔ)句SELECT * FROM UserEND執(zhí)行存儲(chǔ)過(guò)程:EXEC sp_InsertUserB 、帶參數(shù):CREATE PROC sp_InsertUseruserId varchar(50,userName varchar(10BEGIN-SQL語(yǔ)句INSERT INTO User VALUES(userI

13、d,userNameEND執(zhí)行存儲(chǔ)過(guò)程:EXEC sp_InsertUser A101,feipengEXEC sp_InsertUser userId=A101,userName=feipengEXEC sp_InsertUser userName=feipeng, userId=A101C 、帶輸出參數(shù):CREATE PROC sp_InsertUseruserId varchar(50,userName varchar(10,userCount OUTPUTBEGIN-SQL語(yǔ)句INSERT INTO User VALUES(userId,userNameSELECT userCount

14、 = COUNT(* FROM UserEND執(zhí)行存儲(chǔ)過(guò)程:DECLARE uc INTEXEC sp_InsertUser A101,feipeng,uc OUTPUTEXEC sp_InsertUseruserId=A101,userName=feipeng,userCount=uc OUTPUTEXEC sp_InsertUser userName=feipeng, userId=A101,userCount=uc OUTPUT優(yōu)點(diǎn):A 、模塊化設(shè)計(jì) 像其他程序語(yǔ)言的函數(shù)一樣,單獨(dú)出來(lái),可以調(diào)用它 n 次,并 且可以獨(dú)立于源代碼,單獨(dú)修改儲(chǔ)存過(guò)程。B 、更快執(zhí)行 如果執(zhí)行大量 SQL 代

15、碼或重復(fù)執(zhí)行,儲(chǔ)存過(guò)程比 SQL 批代碼執(zhí)行 要快。C 、減少網(wǎng)絡(luò)流量 一條 SQL 語(yǔ)句就可以執(zhí)行上千條 SQL 代碼。Ø 事務(wù)BEGIN TRANDECLARE SumError INTSET SumError = 0INSERT INTO User VALUES('A1001','feipeng'SET SumError = SumError + ERRORDELETE FROM Class WHERE ClassId = 'B110'SET SumError = SumError + ERRORIF SumError <&

16、gt; 0BEGINROLLBACK TRANENDELSEBEGINCOMMIT TRANENDØ觸發(fā)器CREATE TRIGGER 觸發(fā)器名稱ON 表名稱AFTER INSERT,DELETE,UPDATEASBEGIN- Insert statements for trigger hereEND兩張邏輯表:inserted 、 deleted刪除操作:deleted插入操作:inserted更新操作:deleted 、 insertedØ游標(biāo)示例代碼declare cur_Employees SCROLLcursor forselect EmployeeID,Birt

17、hDatefrom HumanResources.Employee where EmployeeID <6FOR READ ONLYopen cur_Employeesdeclare EmployeeID intdeclare BirthDate datetimefetch NEXT from cur_Employees into EmployeeID,BirthDatewhile fetch_status = 0beginprint convert(char(3,EmployeeID+' | '+convert(varchar,BirthDate fetch next

18、from cur_Employees into EmployeeID,BirthDateendclose cur_Employeesdeallocate cur_EmployeesØ 創(chuàng)建臨時(shí)表CREATE TABLE #表名稱 ( 列名稱 1 數(shù)據(jù)類型 , 列名稱 2 數(shù)據(jù)類型 , 列名稱 3 數(shù)據(jù)類 型 , . 注意:表名稱前加 # Ø 執(zhí)行自定義的 SQL 語(yǔ)句 DECLARE sql VARCHAR(1000 SET sql = 'SELECT * FROM Class' SET sql = 'SELECT * FROM User WHERE Name like ''%' + name + '%''' EXEC (sql Ø 索引 微軟的 SQL SERVER 提供了兩種索引:聚集索引、非聚集索引。 注意:每個(gè)表只能有一個(gè)聚集索引 索引是對(duì)數(shù)據(jù)庫(kù)表中一列或多列的值進(jìn)行排序的一種結(jié)構(gòu), 使用索引可快速訪問(wèn)數(shù)據(jù)庫(kù)表中 的特定信息。 大多數(shù)情況下,聚集索引的速度比非聚集索引要略快一些。因?yàn)榫奂饕?B 樹(shù)葉子節(jié)點(diǎn) 直接存儲(chǔ)數(shù)據(jù),而非聚集索引還需要額外通過(guò)葉子節(jié)點(diǎn)的指針找到數(shù)據(jù)。 我最喜歡的一句話是”everything has

溫馨提示

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

最新文檔

評(píng)論

0/150

提交評(píng)論