1. 程式人生 > 其它 >mysql多個表之間的連線方式(內連線、左連線、右連線)、delete刪除表內資料的方法以及mysql索引

mysql多個表之間的連線方式(內連線、左連線、右連線)、delete刪除表內資料的方法以及mysql索引

一、內連線(inner join)

主要是獲取兩個表中欄位匹配關係的表。查詢關聯欄位共同擁有的資料,用兩個表相同的欄位和內容相關聯起來。

1、兩個表之間的右連線。

  使用命令:select*from 表名1 as 別名1 inner join 表名2 as 別名2 on 別名1.欄位名1=別名2.欄位名1;。

  比如:select*from user as uinner joinstudent as s on u.id=s.id;。

2、多個表之間的連線 

  使用命令:select*from 表名1 as 別名1 inner join 表名2 as 別名2 on 別名1.欄位名1=別名2.欄位名1 inner join表名3 as 別名3 on 別名2.欄位名2=別名3.欄位名2;。

  比如:select*from user as u inner joinstudent as s on u.id=s.id inner join worker as w on s.workID=w.workID;。

二、左連線(left join)

獲取左表所有的資料,同時獲取到右表與左表相同的資料。

1、兩個表之間的右連線。

  使用命令:select*from 表名1 as 別名1 left join 表名2 as 別名2 on 別名1.欄位名1=別名2.欄位名1;。

  比如:select*from student as s left join worker as w on s.workID=w.workID;

2、多個表之間的連線 

  使用命令:select*from 表名1 as 別名1 left join 表名2 as 別名2 on 別名1.欄位名1=別名2.欄位名1 left join表名3 as 別名3 on 別名2.欄位名2=別名3.欄位名2;。

  比如:select*fromworker as w left joinstudent as s ons.workID=w.workID left join user as uon u.id=s.id;。

三、右連線(right join)

  獲取右表所有的資料,同時獲取到左表與右表相同的資料。

兩個表之間的右連線。

  使用命令:select*from 表名1 as 別名1 left join 表名2 as 別名2 on 別名1.欄位名1=別名2.欄位名1;。

  比如:select*from student as s right join worker as w on s.workID=w.workID;。

2、多個表之間的連線 

  使用命令:select*from 表名1 as 別名1 right join 表名2 as 別名2 on 別名1.欄位名1=別名2.欄位名1 right join表名3 as 別名3 on 別名2.欄位名2=別名3.欄位名2;。

  比如:select*from user as u rightjoinstudent as s on u.id=s.id rightjoin worker as w on s.workID=w.workID;。

四、刪除表裡面的資料內容的三種方法(in、or、and):

(1)、使用命令:delete from 表名 where 欄位名 in(欄位值,欄位值);。比如:delete from user where id in(3,4);。

(2)、使用命令:delete from 表名 where 欄位名=欄位值 or 欄位名=欄位值;。比如:delete from user where id=3 or id=4;。

(3)、使用命令:delete from 表名 where 欄位名=欄位值 and 欄位名=欄位值;。比如:delete from user where id=3 and id=4;。

五、子查詢:⼦查詢也是select語句的⼀種形式

  使用命令:select 欄位名1 from 表名1 where 欄位名3 in (select 欄位名4 from 表名2 where 表名2='欄位值' );。(欄位3和欄位4必須是一致的)

  比如:select name from user where id in (select id from student where isGood="good");

六、mysql的索引

在MySQL中,建立MySQL的索引主要是為了提⾼MySQL查詢的效率。但是新增太多的索引也是會降低更新表的速 度的,因為對錶進⾏DML操作的時候,

MySQL的內部不僅僅要儲存資料,還需要儲存索引⽂件的。

  建立索引使用命令:create table userIndex( id int primary key, name varchar(10), address varchar(100), index indexName (name) );

新增索引使用的命令:alter table student add index indexStu(score);

ps:刪除表裡面的內容為NULL的命令:delete from worker where workID is null;