SQL-Server之--基本关键字

由于最近得兼职做后台的业务逻辑以及接口的工作,因此在此把最近总结到的有关数据库查询的东西进行一下总结和备忘。生活不易,且过且珍惜呀....

1.LEFT JOIN ,RIGHT JOIN, INNER JOIN的区别

LEFT JION 左连接,主要依照左表,返回左表的所有记录和右表中联结字段相等的记录。
RIGHT JOIN 右连接,主要依照右表,返回包括右表中的所有记录和左表中联结字段相等的记录。
INNER JOIN 等值连接,只返回两个表中联结字段相等的行
ON 为连接条件,后可以用AND 或 OR连接附加连接条件

1.1查询语句直观来看三者区别

Designer_UserInfo表中的数据如下:
ID         TrueName
1           小糖豆
2           小土豆
3           大猴子
4           小萝卜
Student_UserInfo表中数据如下
ID           Age
1             10
2             11
3             15
8             4
使用LEFT JOIND的查询语句为
SELECT *FROM Designer_UserInfo LEFT JOIN Student_UserInfo ON Designer_UserInfo.ID=Student_UserInfo.ID
返回结果为
ID         TrueName   ID1           Age
1           小糖豆      1            10
2           小土豆      2             11
3           大猴子      3             15
4           小萝卜     NULL          NULL
使用RIGHT JOIND的查询语句为
SELECT *FROM Designer_UserInfo RIGHT JOIN Student_UserInfo ON Designer_UserInfo.ID=Student_UserInfo.ID
返回结果为
ID         TrueName   ID1           Age
1           小糖豆      1            10
2           小土豆      2             11
3           大猴子      3             15
NULL        NULL       8             4
使用INNER JOIND的查询语句为
SELECT *FROM Designer_UserInfo INNER JOIN Student_UserInfo ON Designer_UserInfo.ID=Student_UserInfo.ID
返回结果为
ID         TrueName   ID1           Age
1           小糖豆      1            10
2           小土豆      2             11
3           大猴子      3             15

1.2返回字段

SELECT *返回所有字段,如果是连表查询,则返回两个表中的所有字段,若是单表查询则返回当前表中所有字段;
SELECT Designer_UserInfo.* 返回Designer_UserInfo表中所有字段,不管是单表还是连表;
SELECT Designer_UserInfo.ID 则只返回Designer_UserInfo表中的ID字段不管是连表还是单表。
如:
SELECT Designer_UserInfo.TrueName,Student_UserInfo.Age FROM Designer_UserInfo LEFT JOIN Student_UserInfo ON Designer_UserInfo.ID=Student_UserInfo.ID 
结果直返这两个字段:
TrueName Age
小糖豆 10
小土豆 11
大猴子 15
小萝卜 null
注意SELECT后面添加的返回字段必须用‘,’隔开,最后一个字段后什么都不用加
 若想返回两个表中的两个字段可以这样写:
SELECT Designer_UserInfo.ID,Student_UserInfo.ID
FROM Designer_UserInfo INNER JOIN Student_UserInfo ON Designer_UserInfo.ID=Student_UserInfo.ID

2.连接条件 ON AND OR

如上面的查询语句ON是连表查询的连接条件,Designer_UserInfo中的ID等于Student_UserInfo中的ID,但是一般后面还会跟其他的连接条件,如果是两者都需要满足的话就用AND连接,如果两者只要有一个条件满足就可以用OR来连接。
一定要记住NAD 和 OR跟在ON后面代表的是连接条件,跟在WHERE后表示查询条件,两者之间产生的效果是截然不同的,下面举例说明。
一般在数据库中都会有一个字段用来标识是否删除,因此连表条件一般加上这个如下:

SELECT *FROM Designer_UserInfo INNER JOIN Student_UserInfo ON Designer_UserInfo.ID=Student_UserInfo.ID AND Student_UserInfo.isDel=0

2.1 OR的使用

如果我们把查询语句改为
SELECT *FROM Designer_UserInfo LEFT JOIN Student_UserInfo ON Designer_UserInfo.ID=Student_UserInfo.ID OR Designer_UserInfo.ID=Student_UserInfo.Age
结果就会变成
1   小糖豆 1   10
2   小土豆 2   11
3   大猴子 3   15
4   小萝卜 8   4

3.查询条件 WHERE

WHERE关键字为查询条件,一般后面会添加其他的查询条件用AND来连接

3.1单独WHERE使用

现在我们在上面连表语句的基础上添加查询条件
SELECT *FROM Designer_UserInfo LEFT JOIN Student_UserInfo ON Designer_UserInfo.ID=Student_UserInfo.ID WHERE Designer_UserInfo.TrueName='小糖豆'
这条查询语句的意思就是:根据条件Designer_UserInfo.ID=Student_UserInfo.ID连接表并从中查找出Designer_UserInfo.TrueName为`小糖豆`的数据

运行结果为:
1   小糖豆 1   10

不连表的情况下使用WHERE查询
SELECT *FROM Designer_UserInfo WHERE Designer_UserInfo.TrueName='小糖豆'
运行结果为:
1   小糖豆

3.2 WHERE 和 AND 一起使用

从表中查出TrueName是小糖豆并且ID是1的数据
SELECT *FROM Designer_UserInfo WHERE Designer_UserInfo.TrueName='小糖豆' AND Designer_UserInfo.ID=1
结果为:
1   小糖豆
若把查询语句改为:
SELECT *FROM Designer_UserInfo WHERE Designer_UserInfo.TrueName='小糖豆' AND Designer_UserInfo.ID=2
因为数据库中没有满足条件的数据所以结果为:
null   null

3.3 AND作为连接条件和作为查询条件的区别

先来看一下作为连接条件:
SELECT *FROM Designer_UserInfo LEFT JOIN Student_UserInfo ON Designer_UserInfo.ID=Student_UserInfo.ID AND Student_UserInfo.Age=10
结果为:
1   小糖豆 1   10
2   小土豆 null  null  
3   大猴子 null  null  
4   小萝卜 null  null  
再来看一下作为查询条件:
SELECT *FROM Designer_UserInfo LEFT JOIN Student_UserInfo ON Designer_UserInfo.ID=Student_UserInfo.ID WHERE 1=1 AND Student_UserInfo.Age=10
运行结果为:
1   小糖豆 1   10
  1. 多表联查
最后来举一个多表联查的例子
SELECT
    Designer_UserInfo.ID,
    Designer_UserInfo.TrueName,
    ftt_table.[Work],
    Student_UserInfo.Age
FROM
    Designer_UserInfo
INNER JOIN ftt_table ON Designer_UserInfo.ID = ftt_table.ID
INNER JOIN Student_UserInfo ON ftt_table.ID = Student_UserInfo.ID
运行结果为:
1   小糖豆 学生          10
2   小土豆 学生          11
3   大猴子 老师          15
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 194,319评论 5 459
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 81,801评论 2 371
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 141,567评论 0 319
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 52,156评论 1 263
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 61,019评论 4 355
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 46,090评论 1 272
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 36,500评论 3 381
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 35,192评论 0 253
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 39,474评论 1 290
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 34,566评论 2 309
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 36,338评论 1 326
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 32,212评论 3 312
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 37,572评论 3 298
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 28,890评论 0 17
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 30,169评论 1 250
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 41,478评论 2 341
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 40,661评论 2 335

推荐阅读更多精彩内容

  • 50个常用的sql语句Student(S#,Sname,Sage,Ssex) 学生表Course(C#,Cname...
    哈哈海阅读 1,220评论 0 7
  • 什么是SQL数据库: SQL是Structured Query Language(结构化查询语言)的缩写。SQL是...
    西贝巴巴阅读 1,794评论 0 10
  • 50个常用的sql语句 Student(S#,Sname,Sage,Ssex) 学生表 Course(C#,Cna...
    最美的太阳WW阅读 3,151评论 0 23
  • 1、老板的爹和他朋友出去逛了一圈,回来了。还买了鱼,虾,现在自己动手在煮。挺有生活情趣的。 2、一直怕心躁动不安,...
    疯芝麻阅读 100评论 0 0
  • 520,T单方面删除好友后,我将他的备注改为“谢谢你”。 从前的我,我从不觉得520是个特殊的日子,或者说我从不认...
    墨子小姐阅读 773评论 4 7