自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

SQL Server高級(jí)內(nèi)容:子查詢和表鏈接

數(shù)據(jù)庫(kù) SQL Server 數(shù)據(jù)庫(kù)運(yùn)維
表鏈接就像連接兩張數(shù)據(jù)表的連線,線的兩端是分別在兩張表的特定字段上的。今天我們就將談到表鏈接和子查詢。

 1.子查詢概念

   (1)就是在查詢的where子句中的判斷依據(jù)是另一個(gè)查詢的結(jié)果,如此就構(gòu)成了一個(gè)外部的查詢和一個(gè)內(nèi)部的查詢,這個(gè)內(nèi)部的查詢就是自查詢。

   (2)自查詢的分類

  1)獨(dú)立子查詢

     ->獨(dú)立單值(標(biāo)量)子查詢  (=)

 
  1. Select 
  2.   
  3.      testID,stuID,testBase,testBeyond,testPro  
  4.   
  5.  from Score 
  6.   
  7.      where stuID=( 
  8.       
  9.          select stuID from Student where stuName=’Kencery’ 
  10.   
  11.         ) 

   ->獨(dú)立多值子查詢  (in)

  1. Select 
  2.       testID,stuID,testBase,testBeyond,testPro  
  3.   from Score 
  4.       where stuID in
  5.           select stuID from Student where stuName=’Kencery’ 
  6.       ) 

   2)相關(guān)子查詢

   (3)寫子查詢的注意事項(xiàng)

  1)子查詢用一個(gè)圓括號(hào)闊氣,有必要的時(shí)候需要為表取別名,使用“as 名字”即可。

2.表連接\

  (1)表鏈接就是將多個(gè)表合成為一個(gè)表,但是不是向union一樣做結(jié)果集的合并操作,但是表鏈接可以將不同的表合并,并且共享字段。

  (2)表連接之交叉連接 (cross join)

    1)創(chuàng)建兩張表

  1. use Test 
  2. go 
  3.  create table testNum1 
  4.  ( 
  5.      Num1 int 
  6.  ); 
  7.  create table testNum2 
  8.  ( 
  9.      Num2 int 
  10.  ); 
  11.  insert into testNum1 values(1),(2),(3) 
  12.  insert into testNum2 values(4),(5) 

    2) 執(zhí)行交叉連接的SQL語(yǔ)句

      select * from testNum1 cross join testNum2

    3)注解

      交叉連接就是將第一張表中的所有數(shù)據(jù)與第二張表中的所有數(shù)據(jù)挨個(gè)匹配一次,構(gòu)成一個(gè)新表。

    4)自交叉的實(shí)現(xiàn)

      執(zhí)行插入SQL語(yǔ)句:

      insert into testNum1 values(4),(5),(6),(7),(8),(9),(0)

      執(zhí)行自交叉的SQL語(yǔ)句:

      select t1.num1,t2.num2 from testNum1 as t1 cross join testNum2 as t2

    5)另外一種寫法:

      select * from testNum1,testNum2不提倡使用,首先是有比較新的語(yǔ)法,缺陷是逗號(hào)不明確,并且這個(gè)語(yǔ)法與內(nèi)連接和外連接都可以使用,如果使用join聲明,那么語(yǔ)法錯(cuò)誤的時(shí)候可以報(bào)錯(cuò),但是使用這個(gè)語(yǔ)法,可能因?yàn)椴糠终Z(yǔ)法的錯(cuò)誤,會(huì)被SQL Server解釋為交叉連接而跳過這個(gè)語(yǔ)法的檢查

   (3)表連接之內(nèi)連接

     1)內(nèi)鏈接是在交叉連接的基礎(chǔ)之上添加一個(gè)約束條件

     2)語(yǔ)法:select * from 表1 inner join 表2 on 表1.字段=表2.字段

  1. Select  s1.stuID, 
  2.      s1.stuName, 
  3.      s1.stuSex, 
  4.      s2.testBase, 
  5.      s2.testBeyond  
  6.          from Student as s1 
  7.      inner join Score as s2 
  8.          on s1.stuID=s2.stuID 
  9.      where s1.stuIsDel=0; 

   (4)表連接之外連接

     1)執(zhí)行下面的SQL語(yǔ)句

  1. create table tblMain 
  2.   ( 
  3.      ID int
  4.       name nvarchar(20), 
  5.       fid int 
  6.   ); 
  7.   create table tblOther 
  8.   ( 
  9.       ID int
  10.       name nvarchar(20) 
  11.   ) 
  12.   insert into tblMain values(1,'張三',1),(2,'李四',2) 
  13.   insert into tblOther values(1,'C++'),(2,'.net'),(3,'java'
  14.   select * from  
  15.       tblMain as t1 
  16.          inner join  
  17.       tblOther as t2 
  18.           on  
  19.       t1.fid=t2.id 

     2)在內(nèi)連接的基礎(chǔ)之上,在做一件事兒,就是將tblOther中的Java也顯示出來(lái),這時(shí)候就要使用到外連接,外連接有左外連接和右外連接。

     3)左連接和右連接有什么區(qū)別呢??區(qū)別就是**連接就是以**表為主表,在內(nèi)連接的基礎(chǔ)之上,將沒有數(shù)據(jù)的那張表的信息還是要顯示出來(lái)供用戶查看,那么這個(gè)主表就是要顯示的那張表。左外連接和右外連接的分別是在前面的這張表就是左表,在后面的那張表就是右表,左連接使用left join ,有連接使用right join。

     4)上面重新執(zhí)行下面的SQL語(yǔ)句,就會(huì)顯示出tblOther表中的Java。

原文鏈接:http://www.cnblogs.com/hanyinglong/archive/2013/03/06/2945380.html

【編輯推薦】

責(zé)任編輯:彭凡 來(lái)源: 博客園
相關(guān)推薦

2010-07-21 09:50:12

SQL Server子

2021-04-02 07:46:52

SQL Server數(shù)據(jù)庫(kù)知識(shí)筆記

2024-10-11 16:51:02

2010-06-30 15:24:49

SQL Server子

2011-08-12 09:30:04

SQL Server數(shù)高級(jí)SQL查詢

2011-08-30 11:04:30

鏈接查詢內(nèi)連接外連接

2010-09-02 11:20:47

SQL刪除

2011-08-18 13:31:44

SQL Server數(shù)子節(jié)點(diǎn)查詢所有父節(jié)點(diǎn)

2023-12-16 13:14:00

SQL子查詢技術(shù)

2015-07-22 17:27:41

SQL SERVER 鏈接

2009-02-16 09:35:19

業(yè)務(wù)規(guī)則鏈接SQL Server

2011-04-28 09:49:56

SQLwith子查詢

2011-03-29 15:42:08

SQL Server鏈接

2010-08-23 08:43:49

SQL ServerMySQL

2011-04-15 11:43:24

SQL Server

2025-01-20 15:06:42

2022-11-04 08:34:27

Oracle數(shù)據(jù)庫(kù)

2010-10-21 10:28:13

SQL Server查

2024-12-19 07:30:34

2021-05-11 11:05:43

SAL子查詢
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)