240 likes | 489 Vues
第三篇. 資料定義與操作. Ch7. 資料的新增、修改以及刪除 結構化查詢語言 SQL 介紹 使用 SSMSE 與 SQL 新增 / 刪除 / 修改資料 Ch8. 基本資料查詢 使用 SQL 作基本資料查詢 結合 (JOIN) 兩張以上資料表 Ch9. 系統函數與進階資料查詢 常用數學、時間、字串以及集總函數 使用視覺化工具查詢資料 Ch10. 資料索引的重要性與建立技巧 索引的類型 如何建立索引並監控索引的效能. 第七章. 資料的新增、修改 以及刪除. Chapter 7 Outline. 7-1 結構化查詢語言介紹
E N D
第三篇 資料定義與操作 • Ch7.資料的新增、修改以及刪除 • 結構化查詢語言SQL介紹 • 使用SSMSE與SQL新增/刪除/修改資料 • Ch8.基本資料查詢 • 使用SQL作基本資料查詢 • 結合(JOIN)兩張以上資料表 • Ch9.系統函數與進階資料查詢 • 常用數學、時間、字串以及集總函數 • 使用視覺化工具查詢資料 • Ch10.資料索引的重要性與建立技巧 • 索引的類型 • 如何建立索引並監控索引的效能
第七章 資料的新增、修改以及刪除
Chapter 7 Outline • 7-1 結構化查詢語言介紹 • 7-2 使用SSMSE執行T-SQL • 7-3 使用SSMSE新增資料錄 • 7-4 使用T-SQL新增資料錄 • 7-5 使用SSMSE修改資料錄內容 • 7-6 使用T-SQL修改資料錄內容 • 7-7 使用SSMSE刪除資料錄 • 7-8 使用T-SQL刪除資料錄 • 7-9 本章總結
7-1 結構化查詢語言介紹 • 結構化查詢語言Structured Query Language /SQL)是關聯式資料模式的標準資料庫語言,亦稱為關聯式資料庫語言(Relational Database Language) 。 • 特點:易懂、易學、平易近人。 • 1986年ANSI為不同的SQL訂標準語法 • 1987年ISO將其納為國際標準 • 有SQL-89、SQL-92(SQL2)等標準 • 所有發展RDBMS的廠商都聲稱他們的SQL相容於SQL-92,但是為了提高產品的競爭力,也都會推出他們特別的SQL語法以加強使用的功能與便利性。
7-1 結構化查詢語言介紹(續) • SQL 的功能(Functions of SQL) • 資料定義(Data Definition) • 資料操作(Data Manipulation) • 資料控制(Data Control) SQL = DDL + DML + DCL • SQL與SQL Server 2005的關係 • 在SQL Server 2005中的SQL稱之為Transact-SQL(簡稱T-SQL)。當然,T-SQL也包含了資料定義、資料操作、以及資料控制等功能。
7-1 結構化查詢語言介紹(續) • Transact-SQL語法慣例 • 斜體字 :T-SQL語法提供使用者可輸入之參數。 • | (分隔號):加上括號或大括號來分隔語法項目,您只可以選擇其中一的個項目來使用。 • [ ] (方括號):選擇性的語法項目,但真正使用時不需輸入方括號。例如:[a|b]就是您可以使用a或b其中一項(也可以不選)。 • { } (大括號):必要的語法項目,但真正使用時不需輸入大括號。例如:{a|b}就是您必須挑選a或b其中一項(不能不選)。
2.選擇資料庫 7-2 使用SSMSE執行T-SQL 1.按[新增查詢]按鈕 4.按[執行]按鈕或<F5>鍵執行SQL敘述 3.撰寫SQL敘述 如果點選該資料庫滑鼠右鍵彈出式選單的[新增查詢]選項就不用步驟2選取資料庫了喔!
7-2 使用SSMSE執行T-SQL • 在SSMSE中除了可以自行撰寫SQL敘述之外,也可以從檔案讀取,就建立TeadeDB一樣 • 讀取指令檔時系統會要求輸入一組正確的登入帳號與密碼。由於目前還未建立其他的帳號,所以使用sa或是Administrator登入,但其預設的資料庫為master,因此必須注意選擇正確的資料庫,或依16-2更改登入的預設資料庫。
7-2 使用SSMSE執行T-SQL • 在SSMSE中點選主畫面的[工具][選項]就可以進入設定環境、文字編輯器…等功能畫面。
7-3使用SSMSE新增資料錄 • 使用SSMSE來新增資料非常簡單,就像在表格內填資料一樣,但是有一點要注意的就是具有FK的資料表如果無法參照到對應的值就會無法插入。 • 現在就以加入一筆訂單為例,客戶編號為1013的保華工業欲購買一台點陣式印表機與一台網路雷射印表機 • 首先請在SSMSE中開啟orders資料表
7-3使用SSMSE新增資料錄 直接輸入資料即可 移動資料輸入的指標
7-4 使用SQL新增資料錄 • 為何需要使用T-SQL來輸入資料? • 可供應用程式使用 • 可以使用批次或整批方式輸入資料(例如建立TradeDB資料庫、資料表以及內含的資料就是使用SQL敘述的方式) • 使用INSERT新增資料的簡易語法如下: INSERT [INTO] table_name[ ( column_list ) ] { VALUES ( { DEFAULT | NULL | expression } [ ,...n ] ) | execute_statement }
7-4 使用SQL新增資料錄 • table_name:欲新增資料的資料表名稱 • DEFAULT:該欄位使用預設值 • NULL:該欄位使用NULL值 • Expression:指定該欄位的值,可以是常數、運算式或是變數等 • execute_statement:另一段可執行的SQL敘述
7-4 使用SQL新增資料錄 • 範例 7-3.1:請在產品資料表products中新增一筆資料,編號為120、供應商代碼為HHT、品名為‘新產品一’、價格為 280 • insert into products values(120,'HHT','新產品一',280) • 範例 7-3.2:請新增一筆資料到orders資料表中,訂單日期為‘2007/03/13’、客戶編號為1010。 • insert into orders values('2007/03/13',1010,NULL)
7-4 使用SQL新增資料錄 • 使用識別的欄位不用輸入資料,如果想要寫入特定資料時就必須 • 使用 SET IDENTITY_INSERT table_name ON; • 在寫SQL敘述時必須將資料表的欄位都寫出來 • 範例 7-3.3:請新增一筆資料到orders資料表中,order_num=200、訂單日期為‘2007/03/13’、客戶編號為1010。 SET IDENTITY_INSERT orders ON; --開啟orders之IDENTITY_INSERT insert into orders(order_num,cust_num,order_date) values(200,1010,'2007/03/13'); SET IDENTITY_INSERT orders OFF;--使用後關閉,繼續讓系統自動產生
7-4 使用SQL新增資料錄 • 範例 7-3.5:請將TradeDB中的orders資料全部抄寫到mydb的orders資料中。 • SET IDENTITY_INSERT [mydb].[dbo].[orders] ON insert into [mydb].[dbo].[orders](order_num,order_date,customerid) select order_num,order_date,cust_num from orders SET IDENTITY_INSERT [mydb].[dbo].[orders] ON; • 本範例就是執行一段SQL敘述作資料大量輸入的典型例子
7-5 使用SSMSE修改資料錄的內容 • 與新增資料使用方法類似,找到想要修改的資料後進行修改即可。 2.將輸入焦點移到欲修改的欄位,可按<Esc>鍵放棄修改。輸入焦點一旦離開該欄位就表示修改完成。 1.先找到欲修改的資料錄
7-6使用T-SQL修改資料錄的內容 • 使用SQL敘述修改資料內容是使用UPDATE,使用UPDATE也有一次可以更動很多筆資料的好處,其語法結構如下 : • UPDATE table_name SET column_name = { expression | DEFAULT | NULL } [ ,...n ] [FROM <table_source> ] [ WHERE <search_condition> ] • table_source:資料表來源 • search_condition:限制的條件,依照該限制條件來作更新
7-6使用T-SQL修改資料錄的內容 • 範例7-5.1:請將客戶1018的公司名稱改為「新公司一」、電話號碼改為’02-33333333’。 • update customers set cust_name = '新公司一', phone = '0233333333'where cust_num = 1018 • 範例7-5.2:修改內容除了固定的指定值之外,也可以是運算式,例如:將每一項產品的單價修訂為原單價的105% • update products set unit_price = unit_price * 1.05
7-6使用T-SQL修改資料錄的內容 • 範例7-5.3:由於在訂單編號118之後變更了產品價格,請使用UPDATE方式更新items內產品的價格。 • update items set unit_price =products.unit_price --將products中的價格指定給items from products --從products資料表讀取資料 where items.prod_num = products.prod_num and items.supp_code=products.supp_code and order_num>118 --這是products中的PK,這樣才能唯一確認產品
1.找到資料後點選滑鼠右鍵 7-7 使用SSMSE刪除資料錄 • 在SSMSE中找到資料錄後刪除即可 2.選擇[刪除]選項
7-8 使用T-SQL刪除資料錄 • SQL刪除資料錄是使用DELETE,也是可以一次刪除很多筆符合條件的資料錄,其語法如下: • DELETE[ FROM ] table_name [FROM <table_source> [ ,...n ] ] [ WHERE <search_condition> ] • 與UPDATE語法類似,也能以其他資料表為基礎來刪除資料。該語法可解讀為「由table_name資料表中刪除所有符合condition條件的資料錄
7-8 使用T-SQL刪除資料錄 • 範例7-7.1:請刪除[mydb].[dbo].[orders]中訂單編號為200的資料錄 • delete from [mydb].[dbo].[orders] where order_num = 200 • 範例7-7.2:請刪除[mydb].[dbo].[orders]資料表中所有的資料錄 • delete from [mydb].[dbo].[items]; • delete from [mydb].[dbo].[orders]; • Why?為何刪除orders要先刪除items?
7-9 本章總結 • 結構化查詢語言(Structured Query Language/SQL)是關聯式資料模式的標準資料庫語言,亦可稱為關聯式資料庫語言(Relational Database Language) • SQL基本上都會提供資料定義(Data Definition)、資料操作(Data Manipulation)以及資料控制(Data Control)的功能。 • 在SSMSE中可以輕鬆的新增、刪除以及修改資料錄,缺點就是尋找正確的資料較為困難,但是可以搭配使用SQL敘述來縮小資料的範圍。 • 使用INSERT、DELETE、UPDATE敘述可以在一資料表中作資料的新增、刪除以及修改。