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 u inner join student 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 join student 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 *from worker as w left join student as s on s.workID=w.workID  left join  user as u on 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 right join student as s on u.id=s.id right join worker as w on s.workID=w.workID;。

 

四、刪除表里面的數據內容的三種方法(in、or):

(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;。

 

五、子查詢:⼦查詢也是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;


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM