mysql数据库-多表查询

多表连接查询
以一个共同的字段,求两张表当中符合条件的并集。 通过共同字段把这两张表连接起来。
内连接:根据表中的共同字段进行匹配
外连接:左外连接、右外链接。
内连接
select 字段 from 表1 inner join 表2 on 表1.字段=表2.字段
创建stu_info和stu_chj表
mysql> create table stu_info(xh int primary key,xm varchar(30) not null,sex enum(‘M’,‘W’)) engine=innodb default charset=utf8;
mysql> create table stu_chj(xh int,yw float(5,2),shx float(5,2));
向stu_info和stu_chj表插入测试的数据
mysql> insert into stu_info values(1,‘lisi’,‘M’),(2,‘lier’,‘W’),(3,‘zhs’,‘M’),(4,‘liming’,‘W’);
mysql> insert into stu_chj values(1,99,77),(2,89,78),(3,100,67);
用内连接查询实现查询每个学生的学号、姓名以及各科成绩
mysql> select stu_info.xh,xm,yw,shx from stu_info inner join stu_chj on stu_info.xh=stu_chj.xh;
实际使用中inner可省略掉,使用where子句代替。
mysql> select a.bname,a.price,b.btypename from books a, category b where a.btypeid=b.btypeid;

外连接
左连接
select 字段 from a表 left join b表 on 连接条件
a表是主表,指定的字段内容都显示。
b表从表,没有的内容显示null
mysql> select a.bname,a.price,b.btypename from books a left join category b on a.btypeid=b.btypeid;
右连接
select 字段 from a表 right join b表 on 连接条件
a表是从表,
b表主表,都显示。
mysql> select a.bname,b.* from books a right join category b on a.btypeid=b.btypeid;
聚合函数
算数运算函数
Sum()求和
显示所有图书单价的总和
mysql> select sum(price) from books;
avg()平均值:
求书籍bId小于3的所有书籍的平均价格
mysql> select avg(price) from books where bId<=3;
max() 最大值:
求所有图书中价格最贵的书籍
mysql> select bName,price from books where price=(select max(price) from books);
min()最小值:
求所有图书中价格便宜的书籍
mysql> select bName,price from books where price=(select min(price) from books);
count()统计记录数:
统计价格大于40的书籍数量
mysql> select count(*) from books where price>40;
Count()中还可以增加你需要的内容,比如增加distinct来配合使用
mysql> select count(distinct price) from books where price>40; #指定价格

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值