本篇重點為大家講解 組合數據、數據插入、更新和刪除數據 相關內容。
多數SQL查詢只包含從一個或多個表中返回數據的單條 SELECT 語句。但是,SQL也允許執行多個查詢,並將結果作為一個查詢結果集返回。這些組合查詢通常稱為並 (union) 或復合查詢 (compound query)。
主要有 兩種情況 需要使用組合查詢:
在一個查詢中從不同的表返回結構數據;
對一個表執行多個查詢,按一個查詢返回數據。
創建組合查詢
利用 UNION ,可給出多條 SELECT 語句,將它們的結果組合成一個結果集。
使用方法: 給出每條SELECT語句,在各條語句之間放上關鍵字UNION。
假如需要Illinois、Indiana和Michigan等美國幾個州的所有顧客的報表,還想包括不管位於哪個州的所有的Fun4All。
分析:這條語句由兩條 SELECT語句 組成,之間用 UNION 關鍵字分隔。UNION指示DBMS執行這兩條SELECT語句,並把輸出組合成一個查詢結果集。
在簡單的例子中,使用UNION可能比使用WHERE子句更為復雜。但對於較復雜的過濾條件,或者從多個表中檢索數據的情形,使用UNION可能會使處理更簡單。
1、UNION規則
UNION必須由 兩條或兩條以上 的SELECT語句組成,語句之間用關鍵字 UNION分隔。
UNION中的每個查詢必須包含相同的 列、表達式或聚集函數。
列數據類型 必須兼容 :類型不必完全相同,但必須是DBMS可以隱含轉換的類型。
2、包含或取消重復的行
使用 UNION 時, 重復的行會被自動取消 ,這是UNION的默認行為,如果想返回所有的匹配行,可使用 UNION ALL 。
3、對組合查詢結果排序
在用 UNION組合查詢 時,只能使用一條 ORDER BY 子句,它必須位於最後一條SELECT語句之後。
TopBDA大數據分析師培訓
除了SQL資料庫學習,還有大量數據分析知識和實操等你 探索 !
SELECT是最常用的SQL語句,還有其他3個常用的SQL語句需要學習,第一個就是 INSERT ,另外兩個之後為大家介紹。
INSERT用來 將行插入或添加到資料庫表 ,插入有幾種方式:
插入完整的行;
插入行的一部分;
插入某些查詢的結果。
插入完整的行
把數據插入表中的最簡單方法是使用基本的 INSERT 語法。
分析:在插入行時,DBMS將用VALUES列表中的相應值填入列表中的對應項。VALUES中的第一個值對應於第一個指定列名,第二個值對應於第二個列名,如此等等。
插入部分行
使用這種語法,還可以 省略列 ,這表示可以只給某些列提供值,給其他列不提供值。
分析:沒有給 cust_contact 和 cust_email 這兩列提供值,這表示沒必要在INSERT語句中包含它們。因此,這里的INSERT語句 省略了這兩列及其對應的值。
插入檢索出的數據
INSERT一般用來給表插入具有指定列值的行。
INSERT還存在另一種形式, 可以利用它將SELECT語句的結果插入表中, 這就是所謂的 INSERT SELECT 。
假如想把另一表中的顧客列合並到Customers表中,不需要每次讀取一行再將它用INSERT插入,可以如下進行:
分析:使用INSERT SELECT從CustNew中將所有數據導入Customers。SELECT語句從CustNew檢索出要插入的值,SELECT中列出的每一列對應於Customers表名後所跟的每一列。
從一個表復制到另一個表
可以使用 CREATE SELECT 語句(或者在SQL Server里也可用 SELECT INTO 語句)。
與 INSERT SELECT 將數據添加到一個已經存在的表不同,CREATE SELECT將數據復制到一個新表。
使用SQL Server,可以這么寫:
分析:創建一個名為CustCopy的新表,並把Customers表的整個內容復制到新表中。
在使用 SELECT INTO 時,任何SELECT選項和子句都可以使用,包括 WHERE 和 GROUP BY ;可利用連接從多個表插入數據;不管從多少個表中檢索數據,數據都只能插入到一個表中。
更新數據
更新表中的數據,可以使用 UPDATE 語句,使用UPDATE的方式有兩種:
更新表中的特定行;
更新表中的所有行。
基本UPDATE語句由三部分組成,分別是:
要更新的表;
列名和它們的新值;
確定要更新哪些行的過濾條件。
舉一個簡單例子,客戶1現在有了電子郵件地址,因此他的記錄需要更新,語句如下:
分析:UPDATE語句以要更新的表名開始。要更新的表名為Customers。SET命令用來將新值賦給被更新的列。UPDATE語句以WHERE子句結束,它告訴DBMS更新哪一行。
更新多個列的語法稍有不同。
分析:在更新多個列時,只需要使用一條SET命令,每個「列=值」對之間用逗號分隔(最後一列之後不用逗號)。
要刪除某個列的值,可設置它為NULL。
分析:NULL用來去除cust_email列中的值。
刪除數據
從一個表中刪除數據,使用DELETE語句,使用DELETE的方式有兩種:
從表中刪除特定的行;
從表中刪除所有行。
分析:DELETEFROM要求指定刪除數據的表名,WHERE子句過濾要刪除的行。如果省略WHERE子句,它將刪除表中每個顧客。
DELETE不需要列名或通配符 ,DELETE刪除整行而不是刪除列,要刪除指定的列,使用 UPDATE 語句。
使用 UPDATE或DELETE 時所遵循的重要原則:
除非更新和刪除每一行,否則絕對不要使用不帶WHERE子句的UPDATE或DELETE語句。
保證每個表都有主鍵,盡可能像WHERE子句那樣使用它。
在UPDATE或DELETE語句使用WHERE子句前,應該先用SELECT進行測試,保證它過濾的是正確的記錄,以防編寫的WHERE子句不正確。
使用強制實施引用完整性的資料庫,這樣DBMS將不允許刪除其數據與其他表相關聯的行。
有的DBMS允許資料庫管理員施加約束,防止執行不帶WHERE子句的UPDATE或DELETE語句。若是SQL沒有撤銷(undo)按鈕,應該非常小心地使用UPDATE和DELETE。
以上就是今天分享的全部內容,下期重點為大家介紹 使用視圖和創建和操縱表 ,我們下期見!
『貳』 SQL Server 2008高級資料庫管理視頻教程
同問啊 同求答案
『叄』 請問大家sql資料庫視頻教程哪種比較好小弟謝了!
以我看,哪一個都不好。還是看書吧。而且看書時也不要從頭看到尾,先看企業管理器與SQL語法(查詢分析器)。這兩個是學了就能用,並且能明確看到操作結果的。SQL語法也是先學SELECT 和視圖,然後是UPDATE,DELETE,INSERT,最後是存儲過程。至於觸發器,在很長一段時間內都不用學,至少是不用深入掌握。第三步學會事件探查器的使用。好了,你的水平已經很高了,把主要精力用在其他方面吧。至少我認識的一些月薪5000干編程的人,在資料庫方面也就這水平。也想拿的更多,也不是資料庫水平高就可以的了。
『肆』 sql server 哪個章節好上公開課
SQL增刪改查是比較不錯的,可以已SQL的insert、update、delete、select為中心,講的簡單易懂,資料庫概念、表、欄位是怎麼回事?然後聯系資料庫的DML操作,准備大概20分鍾的演講和演示,若不是在機房現場演示的話,做好准備好PPT,單單select查詢語句就可以講一節課了
『伍』 鄭樹源SQL Server 2005 資料庫基礎應用視頻教程 (17集全)發的網盤地址怎麼下載不了 急!!!
我重新給你一個新的資料庫視頻下載地址吧。十分詳細的。
『陸』 SQL 資料庫 學習 003 什麼是資料庫 為什麼需要資料庫
1. 什麼是資料庫 如果我們狹義的理解,它就是一個存儲數據的倉庫。 如果我們廣義的理解,...
2. 為什麼需要資料庫
3. 幾乎所有的應用軟體的後台都需要資料庫。 比如說:銀行。張三、李四…將錢存入銀行,我們不就需要一個來存儲這些信息的庫嗎,...
4. 資料庫存儲數據佔用的空間小,並且容易持久保存。 比如:同樣的數據,如果讓你直接...
5. 是不是所有的軟體都是用Sql Server? 大多數應用軟體,都可能會使用數據...
『柒』 誰有SQL Sever2008資料庫系統入門到精通的全套視頻課程啊,分享下共同學習
您好,首先呢從入門到精通是不可能的,因為資料庫其實說白了都是查詢,那麼怎麼查就是關鍵,所以你可以找些練習題從最簡單的開始做起,然後逐漸增加難度,最好可以買本書學習,這樣是最靠譜的,而不是跟著別人敲一遍,沒有意思的,先理解,再操作,事半功倍。