一、mysql的连接查询
1、等值连接
这里是三张表的等值连接
select rp.role_id,rp.permission_id from role_permission rp, role r, permission p
where rp.role_id=r.id and rp.permission_id=p.id
2、内连接: 角色:系统管理员 是否拥有权限:增加会员
INNER JOIN内连接,或等值连接
这里是三张表的内连接
select rp.role_id,rp.permission_id from role_permission rp
inner join role r on rp.role_id=r.id inner join permission p on rp.permission_id=p.id
where r.name='系统管理员' and p.name='增加会员'
3、获取左表所有记录,即使右表没有对应匹配的记录
LEFT JOIN(左连接)/ left outer join on
select * from student s left join student_course sc on s.id=sc.student_id
说明:左表的记录将会全部表示出来,而右表只会显示符合搜索条件的记录。右表记录不足的地方均为NULL
4、用于获取右表所有记录,即使左表没有对应匹配的记录。
select * from student s right join student_course sc on s.id=sc.student_id
RIGHT JOIN(右连接)/ right outer join on
说明: 与左(外)连接相反。右(外)连接,左表只会显示符合搜索条件的记录,而右表的记录将会全部表示出来。左表记录不足的地方均为NULL。
二、sql语句分类
Structured Query Language 结构化的查询语言
1、DDL语句,是数据定义语言,如CREATE 和DROP
2、DML语句,是数据库操作语言,如INSERT、DELETE、UPDATE和SELECT
3、DCL语句,数据库控制语言,GRANT或REVOKE