mysql_5.5.8_教程_05 介绍常用函数和分组查询(group by),表连接(join on),嵌套查询(in)

  • 格式:txt
  • 大小:3.82 KB
  • 文档页数:2

这是有声音的视频,请检查播放器或者声音输出设备。

这次的学习内容:介绍常用函数和分组查询(group by),表连接(join on),嵌套查询(in)

==============================

create database xue_xiao character set utf8 collate utf8_general_ci;

use xue_xiao;

create table xue_sheng(id int, xing_ming varchar(50), fen_shu int, xing_bie char(2), bj_id int);

insert into xue_sheng values(1,'张三',90,'男',1);

insert into xue_sheng values(2,'李四',70,'男',2);

insert into xue_sheng values(3,'李小红',80,'女',1);

insert into xue_sheng values(4,'陈小明',80,'男',3);

create table ban_ji( id int, ban_ming varchar(15) );

insert into ban_ji values(1,'一年级(1)班');

insert into ban_ji values(2,'一年级(2)班');

insert into ban_ji values(3,'一年级(3)班');

====================================
先介绍一下,一些比较常用的函数,一般配合 select 一起使用

sum , count , max , min , avg

分别显示学生的 总成绩 总数,最高、最低分数,还有平均分数

mysql> select * from ban_ji;
+------+-----------------+
| id | ban_ming |
+------+-----------------+
| 1 | 一年级(1)班 |
| 2 | 一年级(2)班 |
| 3 | 一年级(3)班 |
+------+-----------------+
3 rows in set (0.00 sec)

mysql> select * from xue_sheng;
+------+-----------+---------+----------+-------+
| id | xing_ming | fen_shu | xing_bie | bj_id |
+------+-----------+---------+----------+-------+
| 1 | 张三 | 90 | 男 | 1 |
| 2 | 李四 | 70 | 男 | 2 |
| 3 | 李小红 | 80 | 女 | 1 |
| 4 | 陈小明 | 80 | 男 | 3 |
+------+-----------+---------+----------+-------+
4 rows in set (0.00 sec)

mysql> select sum(fen_shu) from xue_sheng;
+--------------+
| sum(fen_shu) |
+--------------+
| 320 |
+--------------+
1 row in set (0.00 sec)

mysql> select max(fen_shu) from xue_sheng;
+--------------+
| max(fen_shu) |
+--------------+
| 90 |
+--------------+
1 row in set (0.00 sec)

mysql> select min(fen_shu) from xue_sheng;
+--------------+
| min(fen_shu) |
+--------------+
| 70 |
+--------------+
1 row in set (0.00 sec)

mysql> select avg(fen_shu) from xue_sheng;
+--------------+
| avg(fen_shu) |
+--------------+
| 80.0000 |
+--------------+
1 row in set (0.00 sec)

mysql> select count(*) from xue_sheng;
+----------+
| count(*) |
+----------+
| 4 |
+----------+
1 row in set (0.00 sec)


==================
下面是分组查询 , 分别显示男女总分数
mysql> select xing_bie, sum(fen_shu) from xue_sheng group by xing_bie;

mysql> select xing_bie,sum(fen_shu) from xue_sheng group by xing_bie;
+----------+--------------+
| xing_bie | sum(fen_shu) |
+----------+--------------+
| 女 | 80 |
| 男 | 240 |
+----------+---

-----------+

==================

同时查询2张表, 查询学生所在的班级
mysql> select xing_ming,ban_ming from xue_sheng,ban_ji;

别名的使用
mysql> select xing_ming,ban_ming from xue_sheng x,ban_ji b where x.bj_id=b.id;

下面使用 join on 表连接
mysql> select xing_ming,ban_ming from xue_sheng x join ban_ji b on x.bj_id=b.id;

+-----------+-----------------+
| xing_ming | ban_ming |
+-----------+-----------------+
| 张三 | 一年级(1)班 |
| 李四 | 一年级(2)班 |
| 李小红 | 一年级(1)班 |
| 陈小明 | 一年级(3)班 |
+-----------+-----------------+

====================================

子查询,又叫嵌套查询 in() 或者 not in()

看下面一个例子, 查询在 一年级(1)班 的所有同学

select * from xue_sheng where bj_id in( select id from ban_ji where ban_ming='一年级(1)班' );

分解一下:

select id from ban_ji where ban_ming='一年级(1)班';

得到的结果为 1

然后把第一个查询的结果,作为第二个查询的条件

select * from xue_sheng where bj_id in( 1 );

===========================

这次的视频就演示到这里结束了, 88




下载文档原格式

  / 2
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。