Presentation is loading. Please wait.

Presentation is loading. Please wait.

期末實機操作. 1. 新增屬性 當一個資料庫新建立之後,並未新增任何資料 至此資料庫之前,倘若要更改其中的檔案配置, 當然可以直接將此資料庫刪除後重建;不過, 在此資料庫建立並運作一陣子之後,裏面已經 儲存了很多不可被刪除的資料,那就必須使用 ALTER DATABASE 的方式來更改此資料庫的.

Similar presentations


Presentation on theme: "期末實機操作. 1. 新增屬性 當一個資料庫新建立之後,並未新增任何資料 至此資料庫之前,倘若要更改其中的檔案配置, 當然可以直接將此資料庫刪除後重建;不過, 在此資料庫建立並運作一陣子之後,裏面已經 儲存了很多不可被刪除的資料,那就必須使用 ALTER DATABASE 的方式來更改此資料庫的."— Presentation transcript:

1 期末實機操作

2 1. 新增屬性

3

4 當一個資料庫新建立之後,並未新增任何資料 至此資料庫之前,倘若要更改其中的檔案配置, 當然可以直接將此資料庫刪除後重建;不過, 在此資料庫建立並運作一陣子之後,裏面已經 儲存了很多不可被刪除的資料,那就必須使用 ALTER DATABASE 的方式來更改此資料庫的 配置或擴充

5 CREATE DATABASE 圖書借閱資料庫 ON PRIMARY (name=P1,filename='C:\P1.MDF',size=5MB,maxsize=5GB,filegrowth=10%), (name=P2,Filename='D:\P2.NDF',size=5MB,maxsize=5GB,filegrowth=10%) LOG ON (name=Log1,filename='C:\Log1.LDF',size=5MB,maxsize=5GB,filegrowth=10%), (name=Log2,filename='D:\Log2.LDF',size=5MB,maxsize=5GB,filegrowth=10%)

6 2. 修改資料表

7 新增一個欄位 刪除一個欄位 更改某一個欄位的限制 新增、刪除或更新一筆訂單

8 UPDATE 訂單 SET 付款方式 =' 月結 ' WHERE 訂單編號 = '95121201' UPDATE 訂單 SET 訂貨日期 =DEFAULT, 付款方式 =' 支票 ', 交貨方式 =NULL WHERE 訂單編號 = '95121201' DELETE FROM 訂單明細 WHERE 訂單編號 = '95121201‘ DELETE FROM 訂單 WHERE 訂單編號 = '95121201'

9 3.Select 標準輸出 [ 輸出字串 ] SELECT ' 資料庫系統 ' 結果:資料庫系統 [ 輸出計算式 ] SELECT 3+5 結果: 8 SELECT ROUND(84.94, 0) 結果: 85.00 SELECT ROUND(84.94, 1) 結果: 84.90 SELECT ROUND(84.94, 2) 結果: 84.94 SELECT ROUND(84.94, -1) 結果: 80.00

10 SELECT CEILING(59.3) 結果: 60 SELECT FLOOR(59.3) 結果: 59 SELECT SQRT(16) 結果: 4 SELECT SQUARE(3) 結果: 9 SELECT ABS(-69) 結果 :69 天花板函數, 無條件進位, 取大 CEILING( 表示式 ) 地板函數, 無條件捨去, 取小 FLOOR( 表示式 ) 開平方根函數 SQRT( 表示式 ) 平方函數 SQUARE( 表示式 ) 絕對值函數 ABS( 表示式 )

11 // 取現在的年季月日週 SELECT DATEPART(yy,'2008/12/17') 結果: 2008 SELECT DATEPART(qq,'2008/12/17') 結果: 4 SELECT DATEPART(mm,'2008/12/17') 結果: 12 SELECT DATEPART(dd,'2008/12/17') 結果: 17 SELECT DATEPART(dw,'2008/12/17') 結果: 3 [ 說明 ] 此函數所傳回的週日為 1 、週一為 2 、週二為 3 、以此類推。 所以此範例所傳回的 2 ,表示為週一

12 加入 GETDATE() 與年季月日週

13 轉換小寫函數 LOWER( 字串 ) SELECT LOWER('AbCdE') 結果: abcde 轉換大寫函數 UPPER( 字串 ) SELECT UPPER('AbCdE') 結果: ABCDE 計算字串長度 LEN( 字串 ) SELECT LEN('abcde') 結果: 5 SELECT LEN(' 我有幾個字呢 ') 結果 :6 取字串中的左字串 LEFT( 字串, 長度 ) SELECT LEFT('abcde',2) 結果: ab

14 取字串中的右字串 RIGHT( 字串, 長度 ) SELECT RIGHT('abcde',2) 結果: de 取子字串函數 SUBSTRING() SELECT SUBSTRING('abcde',2,3) 結果: bcd SELECT SUBSTRING(' 日一二三四五六 ',4,1) 結果:三 重複字串函數 REPLICATE( 字元, 重複次數 ) // 重複某字串數次 SELECT REPLICATE('*',5) 結果: *****

15 4.Select – from – where SELECT 客戶編號, 公司名稱, 聯絡人, 電話 FROM 客戶 SELECT 客戶編號, 公司名稱, 聯絡人, 電話 FROM 客戶 WHERE 郵遞區號 ='221' SELECT 員工編號, 姓名, 職稱, 性別 FROM 員工 WHERE 職稱 =' 業務 ' AND 性別 =' 男 ' SELECT 員工編號, 姓名, 出生日期 FROM 員工 WHERE DATEPART(mm, 出生日期 )= 9

16 SELECT 訂單編號, 客戶編號, ' 民國 '+CAST(DATEPART(YY, 訂貨日期 ) - 1911 as VARCHAR)+' 年 '+ CAST(DATEPART(MM, 訂貨日期 ) AS VARCHAR)+' 月 '+ CAST(DATEPART(DD, 訂貨日期 ) AS VARCHAR)+' 日 週 '+ SUBSTRING(' 日一二三四五六 ',DATEPART(DW, 訂貨日期 ),1) AS 下單日期 FROM 訂單 SELECT 訂單編號, 客戶編號, 訂貨日期 FROM 訂單 ORDER BY 訂單編號 SELECT 客戶編號, 訂單編號, 訂貨日期 FROM 訂單 ORDER BY 客戶編號 DESC, 訂單編號 ASC SELECT COUNT(*) AS 總筆數 FROM 訂單

17 SELECT COUNT(*) AS 總筆數 FROM 訂單 WHERE DATEPART(yy, 訂貨日期 ) = 2008 SELECT 訂單編號, COUNT(*) AS 筆數 FROM 訂單明細 GROUP BY 訂單編號 SELECT 訂單編號, COUNT(*) AS 筆數 FROM 訂單明細 GROUP BY 訂單編號 HAVING COUNT(*) >= 2 ORDER BY 訂單編號 SELECT 員工編號, 姓名, 職稱 FROM 員工 WHERE 職稱 LIKE ' 工程 %'

18 SELECT 員工編號, 姓名, 職稱 FROM 員工 WHERE 職稱 LIKE ' 工程 _' SELECT 員工編號, 姓名, 地址 FROM 員工 WHERE 地址 LIKE '[ 台臺 ][ 北中 ]%' SELECT 員工編號, 姓名, 地址 FROM 員工 WHERE 地址 LIKE '[^ 台臺 ][^ 北中 ]%' SELECT 員工編號, 姓名, 地址 FROM 員工 WHERE 地址 NOT LIKE '[ 台臺 ][ 北中 ]%'

19 5. 多表合併的查詢 SELECT 訂單. 訂單編號, 訂貨日期, 產品編號, 公司名稱 FROM 客戶, 訂單, 訂單明細 WHERE 客戶. 客戶編號 = 訂單. 客戶編號 AND 訂單. 訂單編號 = 訂單明細. 訂單編號 UPDATE 訂單 SET 付款方式 =' 月結 ' FROM 客戶 WHERE 訂單. 客戶編號 = 客戶. 客戶編號 AND 公司名稱 =' 一堂企業 ' UPDATE 訂單明細 SET 實際單價 = 實際單價 * 0.9 FROM 訂單, 客戶 WHERE 客戶. 客戶編號 = 訂單. 客戶編號 AND 訂單. 訂單編號 = 訂單明細. 訂單編號 AND 公司名稱 =' 一堂企業 '

20 DELETE 訂單 FROM 客戶 WHERE 訂單. 客戶編號 = 客戶. 客戶編號 AND 公司名稱 =' 一堂企業 ' DELETE 訂單明細 FROM 訂單, 客戶 WHERE 客戶. 客戶編號 = 訂單. 客戶編號 AND 訂單編號 = 訂單明細. 訂單編號訂單. AND 公司名稱 =' 一堂企業 ' SELECT 公司名稱, 聯絡人, 電話 FROM 客戶 WHERE 公司名稱 IN ( SELECT 供應商 FROM 供應商 ) SELECT 公司名稱, 聯絡人, 電話 FROM 客戶 WHERE 公司名稱 NOT IN ( SELECT 供應商 FROM 供應商 )

21 查詢每位員工的上司,包括員工編號、員工姓名、 上司編號以及上司姓名,並將輸出的別名改為部署 編號、部署姓名、上司編號以及上司姓名 利用 SELF-JOIN & LEFT OUTER JOIN ,也就是查 不到上司者也都要輸出 SELECT 部署. 員工編號 AS 部署編號, 部署. 姓名 AS 部署姓名, 上司. 員工編號 AS 上司編號, 上司. 姓名 AS 上司姓名 FROM 員工 AS 部署 LEFT OUTER JOIN 員工 AS 上司 ON 部署. 報告人 = 上司. 員工編號

22 查詢每位員工的上司,總共往上查詢三層上司資料 利用 SELF-JOIN & LEFT OUTER JOIN SELECT E1. 員工編號, E1. 姓名, E2. 員工編號, E2. 姓名, E3. 員工編號, E3. 姓名, E4. 員工編號, E4. 姓名 FROM 員工 AS E1 LEFT OUTER JOIN 員工 AS E2 ON E1. 報告人 = E2. 員工編號 LEFT OUTER JOIN 員工 AS E3 ON E2. 報告人 = E3. 員工編號 LEFT OUTER JOIN 員工 AS E4 ON E3. 報告人 = E4. 員工編號


Download ppt "期末實機操作. 1. 新增屬性 當一個資料庫新建立之後,並未新增任何資料 至此資料庫之前,倘若要更改其中的檔案配置, 當然可以直接將此資料庫刪除後重建;不過, 在此資料庫建立並運作一陣子之後,裏面已經 儲存了很多不可被刪除的資料,那就必須使用 ALTER DATABASE 的方式來更改此資料庫的."

Similar presentations


Ads by Google