SQL语句复习(多表查询,连接查询)

主键和唯一的区别

主键唯一
保证唯一性
是否为空×
一个表中可以有多少个最多一个可以有多个
是否允许组合√,但不推荐√ ,但不推荐

外键

外键特点:

  • 要求在从表来设置外键关系
  • 从表的外键列的类型和主表的关联列的类型要求一致或兼容,名称要求
  • 主表的关联列必须是一个key(一般是主键或者是唯一键)
  • 插入数据时,应该先插入主表的数据,在插入从表的数据。

连接查询(JOIN)

内连接

  • 等值连接
    • select vend_name,pro_name,pro_price from vendors,products WHERE vendors.vend_id = products.vend_id;
  • 非等值连接
    • select salary,grad_level from employee e,job_grads g where salary BETWEEN g.‘lowest_sal’ AND g.‘highest_sal’;
  • 自连接
    • 只有一个表,有特殊字段才可以自连接
    • select e.employee_id,e.employee_name, m.employee_id,m.employee_name FROM employee e,employee m WHEREe.employee_id= m.employee_id
    • 例二在这里插入图片描述

外连接

  • 左外连接
    • select * from student stu LEFT JOIN score sco ONstu.id=sco.student_id;
  • 右外连接
    • select * from score sco RIGHT JOIN student stu ON stu.id=sco.student_id;
  • 全外连接
    • select * from score sco FULL JOIN student stu ON stu.id=sco.student_id;
  • 左连接和右连接的区别
    • 左外连接就是以左边的表为主表,在显示内容时,左表会全部显示,而右表只会显示与左表重叠的部分
    • 右外连接就是以右边的表为主表,在显示内容时,右表会全部显示,而左表只会显示与左表重叠的部分

交叉连接

  • SELECT b.*, bo.id from beauty b CROSS JOIN boys bo;

各连接图(理解)

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值