表关联查询

内连接

inner join,⼜叫内连接的部分,主要是获取两个表中字段匹配关系的表。查询关联字段共同拥有的数据。

 再次查询

 将employees表中的first_name,last_name和salaries表中的salary 内连接起来。

 三个表之间的关联

左连接(left join)

获取左表所有记录,获取左边数据表所有符合要求的字段数据信息

 

 1、先走内连接的逻辑

2、再查询出左表所有的数据

select * from good g left join shop s on g.id=s.good_id;

右连接(right join)

获取右表所有记录的信息,获取右边数据表所有的数据信息

 

1、先走内连接的逻辑

2、再查询出右表所有的数据

select * from 表1 表1别名 right join 表2 表2别名 on 表1别名.id=表2别名.good_id;

⼦查询

select 字段列表 from 表1 where 字段名 in(select 字段名  from 表2 where 条件);

子查询的逻辑:里面的SQL执行的结果是,是外面SQL执行的结果是输入(能够子查询的必然能够内连接)

查询工资在155000与160000之间的员工姓名

 有两张表分别计算(算术表达式)

MySQL索引

创建表示增加索引

 

给已有的表增加索引

给已有的表删除索引

更新表的索引信息

补充知识

一、创建表的约束

create table if not exists tableName(Field Type);

如果不存在表就创建它,且如果该表已存在,该sql语句不会报错。

二、列的约束

AUTO_INCREMENT:自增 PRIMARY KEY:主键 NOT NULL:不为空 unique:唯一性 default:默认

一个表中多个字段怎么设置主键?

三、MySql的时间类型

DATETIME:YYYY-MM-DD HH:MM:SS 最大值到9999

TIMESTAMP:YYYY-MM-DD HH:MM:SS 最大值到2038年

DATE:YYYY-MM-DD TIME:HH:MM:SS

YEAR:YYYY

 查询时间范围

四、MySQL小数点

FLOAT:单精度 DOUBLE:双精度 DECIMAL (M, D):D代表小数点前的位数,M代表小数点后的位数

语法格式“DECIMAL(M,D)”。其中,M是数字的最大数(精度),其范围为“1~65”,默认值是10;D是小数点右侧数字的数目(标度),其范围是“0~30”,但不得超过M。