– 改变 某一列的位置(一般用于后添加的id列):
alter table my_class change id id int auto_increment first;
– 交叉连接
select * from my_student cross join my_class;
– my_student cross join my_class; 整个后半部分为数据源, 即 先连 后查
– 内连接查询
select * from my_student inner join my_class on my_student.c_id = my_class.id;
select * from my_student inner join my_class on c_id = my_class.id;
– 字段和表别名
select s.*,c.name as c_name, c.room from – 字段别名
my_student as s inner join my_class as c – 表别名
on s.c_id = c.id;
– 没有 on 之后的条件
select s.*,c.name as c_name, c.room from – 字段别名
my_student as s inner join my_class as c – 表别名
;
– where 代替 on
select s.*,c.name as c_name, c.room from – 字段别名
my_student as s inner join my_class as c – 表别名
where s.c_id = c.id;
– 左连接
select s.*, c.name as c_name,c.room from
my_student as s left join my_class as c – 左表为主表: 最终记录数不少于左表已有的记录数
on s.c_id = c.id;
– 右连接
select s.*, c.name as c_name,c.room from
my_student as s right join my_class as c – 右表为主表: 最终记录数不少于右表已有的记录数
on s.c_id = c.id;
– 自然内连接
select * from my_student natural join my_class;
– 自然左外连接
select * from my_student natural left join my_class;
– 外连接模拟自然外连接 : using
select * from my_student left join my_class using(id);