歡迎使用CSDN-markdown編輯器

=======================================
T-sql中的條件表達式和邏輯運算符
=======================================————溫故而知新————

常量:表示單個指定數據值的符號。一個常量由一個或多個字母、數字字母組成,字母和datatime需要用引

      號括起來,而二進制字符串和數字常量則不需要。

比較運算符:=
            >
            <
            >=
            <=
            <> 不等於
            !  非
———————————————————-            
一元運算符:+
            -
            ~ 補數運算符
———————————————————-           
表達式:  示例:price>100
                name like ‘pita’
                grade <> ‘fail’
———————————————————-               
通配符:  ‘’  表示一個字符     例如:select meal_code from meal where meal_code like ‘c
          
           %  表示任意長度字符串:例如:select meal_code from meal where meal_code like ‘co_%’
          
          []  表示括號中所指定範圍內的一個字符
                                 例如:select * from flight where aircraft_code like ‘9w0[1-2]’
          
          [^] 表示不在括號中所指定範圍內的任意一個字符 

                               例如:select * from flight where aircraft_code like ‘9w0[^1-2]’ 

邏輯運算符:
       AND:AND連接兩個條件,並且僅當兩上條件都爲真時才返回true 
       OR:OR連接兩個條件,但只要其中任一個爲真就返回true       
       NOT:當一個語句中使用了多個邏輯運算符時,首先求not的值,然後求and的值,最後再求or的值。
       
============================================
使用insert 插入數據:
      語法如下:insert [into] values
               jobs 表中的四個字段,第一個字段存在唯一索引,並且自動增長不必用戶添加
               所以只需添加三個字段的值即可
               示例:insert into jobs values(‘graphic artist’,25,100)
==============================================
===============================================
使用select into 將一個表中的數據添加到另一個表中:
      語法如下:insert SELECT from
      
      例:create table author_details(au_id varchar(11),au_lname varchar(40))
          go
          insert author_details select authors.au_id,authors.au_lname from authors
          
      還可以將一個表中的數據有選擇性地添加到另一個表
          insert into sales(stor_id) select stor_id from stores

          INSERT INTO sales(stor_id) SELECT stor_id FROM stores

更新表中的數據:
      update set

      注意:當update 命令不包含條件時,將更新所有行。

———————————–重點內容

使用聯接信息更新:可以使用來自兩個不同表的數據來更改數據。這可以通過聯接來實現。聯接根據表之
     間的邏輯關係檢索來自兩個或多個表的數據。典型的聯接指定表之間的外鍵關係。它通過以下方式
     定義查詢中兩個表之間的聯繫方式。
     × 指定聯接用到的每一個表的列。典型的聯接指定一個表的外鍵以及在另一個表上的關聯鍵
     × 指定用於比較列值的邏輯運算符,如=,<>
     
     表聯接的類型有三種:
           × 內聯接: 內聯接中,僅當來自兩個表的行的公共列匹配時,纔會組合相應的記錄並添加到查詢
                     結果中。
           
           × 外聯接:外聯接中只要行滿足select 語句中任何where或having子句的搜索條件,則返回
                    from 子句中提及的至少一個表的所有行。
                    left outer join:左外聯接返回左表中的所有記錄,但返返回右表中的匹配記錄。
                    right outer join:右外聯接返回右表中的所有記錄,但僅返回左表中的匹配記錄。
                    
                    因爲外聯接包括不匹配行,可以利用外聯接查找違反外鍵約束的行。爲此,需要先
                    創建外聯接,然後添加搜索條件,以查找最右邊表的主鍵列是空值的行。例如,下
                    面的外聯接在 employee 表中查找在 jobs 表中沒有對應行的行:
          SELECT employee.emp_id, employee.job_id
          FROM employee LEFT OUTER JOIN jobs 
             ON employee.job_id = jobs.job_id
          WHERE (jobs.job_id IS NULL)
          
          外聯接   甚至包括在聯接表中沒有相關行的行的聯接。可以創建外聯接的三個變
          化形式來指定所包括的不匹配行: 
           左向外聯接   包括第一個命名錶(”左”表,出現在 JOIN 子句的最左邊)中的所有行。
           不包括右表中的不匹配行。例如,下面的 SQL 語句說明 titles 表和 publishers 表之
           間的左向外聯接包括所有的書名,甚至包括那些沒有出版商信息的書名: 
           SELECT titles.title_id, 
                  titles.title, 
                  publishers.pub_name
           FROM titles LEFT OUTER JOIN publishers 
                       ON titles.pub_id 
                        = publishers.pub_id
                        
           右向外聯接   包括第二個命名錶(”右”表,出現在 JOIN 子句的最右邊)中的所有行。
           不包括左表中的不匹配行。例如,在 titles 和 publishers 表之間的右向外聯接將包
           括所有的出版商,甚至包括那些在 titles 表中沒有書名的出版商。所得到的 SQL 可能
           
           象下面這樣: 
           SELECT titles.title_id, 
                  titles.title, 
                  publishers.pub_name
           FROM titles RIGHT OUTER JOIN publishers 
                       ON titles.pub_id = publishers.pub_id
                       
           完整外部聯接   包括所有聯接表中的所有行,不論它們是否匹配。例如,titles 表和 
           publishers 表之間的完整外部聯接顯示所有書名和所有出版商,甚至包括那些在另一個
           表中沒有匹配值的書名和出版商。 
           SELECT titles.title_id, 
                  titles.title, 
                  publishers.pub_name
           FROM titles FULL OUTER JOIN publishers 
                       ON titles.pub_id 
                        = publishers.pub_id

                             
                    
           × 自聯接:自聯接是一種內聯接,用於查找表中與同一表中其他記錄相關的記錄。自聯接中,表
                  與自身進行聯接。
           
     
     示例:tabl_a as table_alias_a join table_b as table_alias_b 
           on 
           table_alias_a.=table_alias_b.

=============================================
刪除數據:
     刪除表中所有數據:delete from table_name where state=’ca’
     如不給出條件將會刪除表中所有數據。
     
     使用truncate table刪除表中的所有數據:truncate table 是用於刪除表中所有行的命令。功能上
          它類似於沒有where 子句的delete 語句。但truncate table比delete 執行速度快,而且使用
          的系統資源和事務日誌資源更少。
          
          雖然truncate table刪除表中的所有行,但是表的結構、列、約束、索引等不會被改動。
          
          truncate table不能用於有外鍵約束引用的表,這種情況下,需要使用不帶where子句的
          delete 語句。

發佈了25 篇原創文章 · 獲贊 133 · 訪問量 96萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章