欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

MySQL連表查詢的實現(xiàn)

 更新時間:2023年06月07日 14:48:12   作者:不是很帥@  
在Mysql數(shù)據(jù)庫中,表的連接操作是非常重要的,能夠?qū)⒉煌谋斫Y(jié)合在一起,實現(xiàn)更加豐富和復(fù)雜的查詢操作,本文主要介紹了MySQL連表查詢的實現(xiàn),感興趣的可以了解一下

1.連接查詢—內(nèi)連接

1.1隱式內(nèi)連接

笛卡爾乘積,錯誤示范

select student.id ,teacher.t_id from student,teacher ;

 正確示范

 后面要加上條件證明兩表有相同的字段

select s.id, t.t_id from student s,teacher t where s.teacher_id= t.t_id;

1.1.1等值連接和非等值連接

等值連接指的多表查詢語句中的連接條件使用的是等號。

非等值連接指的是多表查詢語句中的連接條件使用的不是等號而是>,>=,<,<=,!=以及使用between進(jìn)行范圍判斷的稱之為非等值連接。

1.2.顯示內(nèi)連接—inner join

-- 顯示連接: A表 inner join B表 on 連表條件。 
2.查詢每一個員工的姓名,及關(guān)聯(lián)的部門的名稱〔顯式內(nèi)連接實現(xiàn))

select * from tb_emp  inner join tb_dept on tb_emp.dept_id=tb_dept.id;
select * from tb_emp e inner join tb_dept d on e.dept_id=d.id;

-- 上面的 inner可以省略。

select * from tb_emp e  join tb_dept d on e.dept_id=d.id;

2.連接查詢—外連接

2.1 左外連接

-- 語法: select 查詢列集 from A表 left join B表 on 連表條件
-- 1.查詢emp表的所有數(shù)據(jù), 和對應(yīng)的部門信息(左外連接)

select * from tb_emp e left outer join tb_dept d on e.dept_id = d.id;
select * from tb_emp e left join tb_dept d on e.dept_id=d.id;

-- 2.查詢dept表的所有數(shù)據(jù),和對應(yīng)的員工信息(右外連接)

2.2右外連接

select * from tb_emp e right join tb_dept d on e.dept_id=d.id;

3.自連查詢

自己和自己相連接查詢。
select * from A表 join A表 on 連表條件。

-- 1.查詢員工及其所屬領(lǐng)導(dǎo)的名字。你要查詢的結(jié)果再一張表中,但是還不能使用單表查詢得到結(jié)果。

select a.name,b.name from tb_emp a join tb_emp b on a.managerid=b.id;

-- 2.查詢所有員工 emp及其領(lǐng)導(dǎo)的名字emp ,如果員工沒有領(lǐng)導(dǎo),也需要查詢出來

select a.name,b.name from tb_emp a left join tb_emp b on a.managerid=b.id;

4.子查詢

一個查詢的結(jié)果 作為另一個查詢的條件 或者 臨時表。
-- 查詢市場部的員工信息-----
-- 子查詢返回的結(jié)果一列一條記錄。 這個時候可以用

 select * from tb_emp where dept_id=(select id from tb_dept where name='市場部')

-- 查詢市場部和研發(fā)部員工的信息。in
-- -- 查詢市場部和研發(fā)部員工的信息。
-- a) 查詢市場部和研發(fā)部的編號

select id from tb_dept where name in('市場部','研發(fā)部')

-- b) 再員工表中根據(jù)部門編號查詢員工信息

select * from tb_emp where dept_id in (select id from tb_dept where name in('市場部','研發(fā)部'))

5.組合查詢

多個查詢的結(jié)果 組合到一起。
sql union sql --->把這兩條sql查詢的結(jié)果組合到一起。如果有重復(fù)記錄則合并成一條。
sql union all sql--->把這兩條sql查詢的結(jié)果組合到一起。如果有重復(fù)記錄,不合并。

注意: 這兩條sql返回的字段必須一樣。

select name from tb_emp where salary>8000
UNION?
select * from tb_emp where age>40;

6.注意事項

如果查詢語句中出現(xiàn)了多個表中都存在的字段,則必須指明是哪個表中的字段

建議:從sql 優(yōu)化的角度,建議多表查詢時,每個字段前都指明其所在的表。

正確代碼

select s.id, t.t_id from student s,teacher t where s.teacher_id= t.t_id;

可以給表起別名,在 SELECT 和 WHERE 中使用表的別名。

如果給表起了別名,一旦在 SELECT 或 WHERE 中使用表名的話,則必須使用表的別名,而不能再使用表的原名。

錯誤示范

select s.id, t.t_id from student s,teacher t where student.teacher_id= teacher.t_id;

到此這篇關(guān)于MySQL連表查詢的實現(xiàn)的文章就介紹到這了,更多相關(guān)MySQL連表查詢內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • 在Win下mysql備份恢復(fù)命令

    在Win下mysql備份恢復(fù)命令

    假設(shè)mysql安裝在c:盤,mysql數(shù)據(jù)庫的用戶名是root,密碼是123456,數(shù)據(jù)庫名是database_name
    2010-02-02
  • 區(qū)分MySQL中的空值(null)和空字符('''')

    區(qū)分MySQL中的空值(null)和空字符('''')

    這篇文章主要介紹了如何區(qū)分MySQL中的空值(null)和空字符(''),幫助大家更好的理解和使用MySQL數(shù)據(jù)庫,感興趣的朋友可以了解下
    2020-09-09
  • MySQL由淺入深掌握連接查詢

    MySQL由淺入深掌握連接查詢

    連接查詢是關(guān)系數(shù)據(jù)庫中最主要的查詢,主要包括內(nèi)連接、外連接和交叉連接等。通過連接運(yùn)算符可以實現(xiàn)多個表查詢。連接是關(guān)系數(shù)據(jù)庫模型的主要特點(diǎn),也是它區(qū)別于其它類型數(shù)據(jù)庫管理系統(tǒng)的一個標(biāo)志
    2022-03-03
  • MySQL中對于索引的基本增刪查改操作總結(jié)

    MySQL中對于索引的基本增刪查改操作總結(jié)

    這篇文章主要介紹了MySQL中對于索引的基本增刪查改操作總結(jié),索引可以提高M(jìn)ySQL的檢索速度,需要的朋友可以參考下
    2016-01-01
  • mysql日志觸發(fā)器實現(xiàn)代碼

    mysql日志觸發(fā)器實現(xiàn)代碼

    這篇文章主要介紹了mysql日志觸發(fā)器實現(xiàn)代碼,需要的朋友可以參考下
    2020-02-02
  • 解析Mysql Profiling的使用

    解析Mysql Profiling的使用

    本篇文章是對Mysql Profiling的使用進(jìn)行了詳細(xì)的分析介紹,需要的朋友參考下
    2013-06-06
  • mysql刪除操作其實是假刪除問題

    mysql刪除操作其實是假刪除問題

    這篇文章主要介紹了mysql刪除操作其實是假刪除問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2023-04-04
  • 深入Mysql字符集設(shè)置[精華結(jié)合]

    深入Mysql字符集設(shè)置[精華結(jié)合]

    深入Mysql字符集設(shè)置,建議大家看本文之前先看風(fēng)雪之隅的文章,需要的朋友可以參考下
    2012-07-07
  • MySQL如何防止SQL注入并過濾SQL中注入的字符

    MySQL如何防止SQL注入并過濾SQL中注入的字符

    SQL注入是指在輸入?yún)?shù)中添加一些特殊字符(例如單引號),使輸入的語句成為一段單獨(dú)的可執(zhí)行的SQL語句,這篇文章主要給大家介紹了關(guān)于MySQL如何防止SQL注入并過濾SQL中注入字符的相關(guān)資料,需要的朋友可以參考下
    2024-02-02
  • mysql查看表結(jié)構(gòu)的三種方法總結(jié)

    mysql查看表結(jié)構(gòu)的三種方法總結(jié)

    這篇文章主要介紹了mysql查看表結(jié)構(gòu)的三種方法總結(jié),具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-07-07

最新評論