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

MySQL查詢語句之連表查詢和增刪改查語句補充

數(shù)據(jù)庫 MySQL
這章有點像收尾部分,補充了連表查詢,后續(xù)又補充了Mysql的增刪改查。連表查詢要區(qū)分一下left和inner的區(qū)別,一個是正向連,一個是反向連。

前言

Hey,大家好,我是碼農(nóng)星期八!

上次怎么大概說了一下or,!=,in/not in between,like,limit,order by,group by。

但是還沒完,咱們接著往下說!

查詢

我們的數(shù)據(jù)是這樣的。

發(fā)現(xiàn)class_id是一個數(shù)字,這是因為我們在設(shè)計時,將學生表和班級表分開設(shè)計的。

但是如果我們偏偏想要查詢這個人是幾班的,怎么辦?

連表查詢

方式一,where連表

語法

  1. SELECT * from 表1,表2 WHERE 表1.外鍵列=表2.被外鍵列; 
  2. SELECT 表1.列1,表1.列2,表2.列1,... from 表1,表2 WHERE 表1.外鍵列=表2.被外鍵列; 

連表顯示所有列

  1. SELECT * from student,class WHERE student.class_id=class.id; 

執(zhí)行結(jié)果

喏,這樣就知道哪個學生是哪個班的了!

連表顯示指定列

  1. SELECT student.id,student.`name`,class.title from student,class WHERE student.class_id=class.id; 

執(zhí)行結(jié)果

方式二,left連表

通過where連表固然簡單,但是缺點明顯。

因為我們的where后面是要跟判斷條件的,使用where進行連表會造成邏輯有些混亂。

在一般連表操作中,使用的也是left進行連表。

語法

  1. SELECT * from 表1 LEFT JOIN 表2 on 表1.外鍵字段=表2.被外鍵字段; 
  2. SELECT 表1.列1,表1.列2,表2.列1,... from 表1 LEFT JOIN 表2 on 表1.外鍵字段=表2.被外鍵字段; 

連表顯示所有列

  1. SELECT * from student LEFT JOIN class on student.class_id=class.id; 

執(zhí)行結(jié)果

選擇指定列查詢

  1. SELECT student.id,student.`name`,class.title from student LEFT JOIN class on student.class_id=class.id; 

執(zhí)行結(jié)果

其實這和where連表是一樣的。

方式三,inner連表

inner和left是差不多的,只不過left是正向連表,inner是反向連表。

就像學生表和課程表。

如果是通過學生表連課程表,屬于正向,用left。

如果是通過課程表連學生表,就屬于反向,用inner。

如果反向連表硬生生用left,會出現(xiàn)一些空值現(xiàn)象。

inner語法同left,只不過是表的前后順序不一樣。

其他操作

上述所有的操作,都屬于查詢操作,基本上入門是可以的,下面咱們來看一下剩下的增,刪,改操作。

增(insert)

單條插入

語法

  1. INSERT INTO 表(列名1,列名2,...) values(值1,值2,...); 

添加一條學生信息

  1. INSERT into student(name,age,gender,class_id) VALUES("吳彥祖",22,"男",1); 

執(zhí)行結(jié)果

表內(nèi)容

多條插入

語法

  1. INSERT INTO 表(列名1,列名2,...) values(值1,值2,...),(值1,值2,...); 

批量添加學生信息

  1. INSERT INTO student (NAME, age, gender, class_id) 
  2. VALUES 
  3.     ("范冰冰", 18, "女", 2), 
  4.     ("成龍", 24, "男", 3); 

執(zhí)行結(jié)果

表內(nèi)容

改(update)

語法

  1. UPDATE <表> set 列 = 值 where <條件>; 

將李四的年齡修改成88歲

  1. UPDATE student set age = 88 where name = "張三" 

執(zhí)行結(jié)果

刪除(delete)

語法

  1. delete from <表名> 
  2. delete from <表名> where <條件> 

刪除張三

  1. DELETE from student where name="張三" 

執(zhí)行結(jié)果

總結(jié)

這章有點像收尾部分,補充了連表查詢,后續(xù)又補充了Mysql的增刪改查。

連表查詢要區(qū)分一下left和inner的區(qū)別,一個是正向連,一個是反向連。

插入數(shù)據(jù)可以插入單條數(shù)據(jù)和多條數(shù)據(jù),多跟參數(shù)即可。

 

責任編輯:姜華 來源: IT共享之家
相關(guān)推薦

2009-06-30 16:57:21

Criteria查詢

2010-09-26 15:23:24

SQL語句

2010-10-27 15:34:37

oracle查詢

2020-09-13 13:05:41

MySQL慢查詢數(shù)據(jù)

2010-11-24 17:36:02

MySQL條件查詢語句

2021-03-15 10:01:40

Mysql查詢語句

2010-09-25 16:42:45

sql語句

2010-11-16 16:26:42

Oracle查詢用戶表

2010-11-25 15:57:49

mysql查詢語句

2010-11-18 13:40:48

mysql分頁查詢

2018-06-07 09:45:08

2011-04-28 09:49:56

SQLwith子查詢

2009-09-24 10:35:10

Hibernate查詢

2010-10-27 10:11:07

Oracle分頁查詢

2022-06-26 06:32:28

MySQL數(shù)據(jù)庫維護

2022-09-01 16:42:47

MySQL數(shù)據(jù)庫架構(gòu)

2019-11-07 15:39:36

數(shù)據(jù)庫MySQL文章

2010-10-21 10:28:13

SQL Server查

2010-11-25 14:33:26

MySQL查詢分頁

2021-06-28 10:25:47

MySQL語句接口
點贊
收藏

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