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;

posted @ 2021-10-28 22:58  就不将就就  阅读(4450)  评论(0编辑  收藏  举报