MYSQL分组查询

原创 2016年05月31日 18:40:38

更新用户名为4位的用户,让其已有年龄-3

UPDATE csm_user SET age=age-3 WHERE username LIKE ‘__‘;

更新前3条几率,让已有年龄+10

UPDATE smc_user SET age=age+10 LIMIT 3;

按照id降序排列,更新前3调

UPDATE smd_user SET age=age+10 ORDER BY id DESC LIMIT 3;

删除用户性别为男的用户,按照年龄降序排列, 删除1条前记录

DELETE FROM user WHERE sex=’男’ ORDER BY age DESC LIMIT 1;

查询cms_user id,username

provinces,proname

SELECT cms_user.id,username,proName FROM cms_proName,provinces;

cms_user的proid对应省份表中的id

SELECT cms_user.id,username,proName FROM cms_proName,provinces
WHERE cms_user.proid=provinces.id;

查询cms_user表中id,username,email,sex

查询provinces表中的proName

SELECT u.id,u.username,u.email,u.sex,p.proName
FROM cms_user AS u
INNER JOIN provinces AS p
ON u.proid=p.id;

查询cms_user id,lusername,sex

查询provinces proName

条件是cms_user 的性别为男的用户

根据proname分组

SELECT u.id,u.username,u.sex,p.proName,COUNT(*) AS totalusers,GROUP_CONCAT(username)
FROM cms_user AS u
INNER JOIN provinces AS p
ON u.proid=p.id
WHERE u.sex=’男’
GROUP BY p.proName;

对分组结果进行筛选,选出组中人数大于1的用户

SELECT u.id,u.username,u.sex,p.proName,COUNT(*) AS totalusers,GROUP_CONCAT(username)
FROM cms_user AS u
INNER JOIN provinces AS p
ON u.proid=p.id
WHERE u.sex=’男’
GROUP BY p.proName
HAVING COUNT(*)>=1;

按照id升序排列

SELECT u.id,u.username,u.sex,p.proName,COUNT(*) AS totalusers,GROUP_CONCAT(username)
FROM cms_user AS u
INNER JOIN provinces AS p
ON u.proid=p.id
WHERE u.sex=’男’
GROUP BY p.proName
HAVING COUNT(*)>=1
ORDER BY u.id ASC;

限制显示条数 ,前2条

SELECT u.id,u.username,u.sex,p.proName,COUNT(*) AS totalusers,GROUP_CONCAT(username)
FROM cms_user AS u
INNER JOIN provinces AS p
ON u.proid=p.id
WHERE u.sex=’男’
GROUP BY p.proName
HAVING COUNT(*)>=1
ORDER BY u.id ASC
LIMIT 0,2;

3个表的链接

SELECT u.id,p.id,a.id
FROM cms_user AS u
JOIN
cms_new AS p
ON u.id=p.id
JOIN
cms_sd AS a
ON u.id=a.id;

外连接 (左)

SELECT u.id,p.id,a.id
FROM cms_user AS u
LEFT JOIN
cms_new AS p
ON u.id=p.id
JOIN
cms_sd AS a
ON u.id=a.id;

外连接 (右)

SELECT u.id,p.id,a.id
FROM cms_user AS u
RIGHT JOIN
cms_new AS p
ON u.id=p.id
JOIN
cms_sd AS a
ON u.id=a.id;

外键的操作,在创建表的时候添加(创建父子关系) FOREIGN KEY(cms_admin) REFERENCES cms_admi(id)

删除外键

ALTER TABLE employee DROP FOREIGN KEY em_fk_dep;

添加外键

ALTER TABLE employee ADD CONSTRAINT emp_fk_dep FOREIGN KEY(depid) REFERENCES departemen(id);

删除主表,对应的子表也删除 (在创建子表中加入ON DELETE CASCADE)

更新主表,对应的子表也删除 (在创建子表中加入NO UPDATE CASCADE)

联合查询(UNION合并在一起,去掉重复)(UNION ALL合并在一起)

SELECT username FROM employee UNION SELECT username FROM cms_user;

MySQL——分组查询子查询

1.数据分组 分组允许把数据分为多个组,以便对每个组进行聚集计算;如果对某列进行分组,要想看到这列写在group by 后面 分组建立:select 子句后面的group by 子句 分组...
  • eleanshu
  • eleanshu
  • 2017年03月12日 15:48
  • 331

mysql的查询、子查询、连接查询、groud by分组查询

一、mysql查询的五种子句         where(条件查询)、having(筛选)、group by(分组)、order by(排序)、limit(限制结果数)       ...
  • aa249856445
  • aa249856445
  • 2016年11月16日 14:45
  • 455

mysql分组查询最新数据

select user_id,sbp,dbp,pulse from p_bp as a, (select max(id) as id, max(measure_at) as measure_at fr...
  • u011816231
  • u011816231
  • 2016年06月28日 16:42
  • 15197

MySQL对数据表进行分组查询(GROUP BY)

MySQL对数据表进行分组查询(GROUP BY) GROUP BY关键字可以将查询结果按照某个字段或多个字段进行分组。字段中值相等的为一组。基本的语法格式如下: GROUP BY 属性名 [...
  • q1054261752
  • q1054261752
  • 2015年09月01日 11:53
  • 28759

21、MySQL-分组查询(GROUP BY)及二次筛选(HAVING)

为了测试GROUP BY 语句,我们创建两张表,并往表中添加数据 -- 创建部门表 CREATE TABLE IF NOT EXISTS department( id TINYINT UNSIG...
  • li460998973
  • li460998973
  • 2015年03月06日 15:05
  • 16456

Mysql高级查询-----汇总和分组数据

一 汇总数据在工作中经常需要汇总数据而不是将他们全部检索出来(实际数据本身:返回实际数据是对时间和处理资源的浪费),这种类型的检索有如下特点:1:确定表中的行数(或满足某个条件或包含某个特定值的行数)...
  • Google_huchun
  • Google_huchun
  • 2017年06月11日 23:41
  • 1981

mysql分组查询排序

创建表并插入数据:  复制代码代码如下: create table tb(name varchar(10),val int,memo varchar(20))  insert int...
  • ll3527
  • ll3527
  • 2014年12月04日 10:23
  • 4942

MYSQL子查询和分组查询

一、子查询 1、子查询(subquery):嵌套在其他查询中的查询。 例如:select user_id from usertable where mobile_no in (select...
  • qq_28347599
  • qq_28347599
  • 2017年07月14日 22:53
  • 213

mysql分组查询group by时分页的实现。

传统的分页办法是先查询出符合条件的总记录数,然后根据每页的显示条数,计算出一共有多少页,然后进行相应的分页处理,所以一般会进行一次总记录数查询,也就是 select count(*)  from  t...
  • zhang197093
  • zhang197093
  • 2015年10月26日 16:01
  • 4976

(oracle/mysql)查询出分组查询每组的第一条数据

一下是oracle/mysql分组查询查出每组数据的第一条数据: 表数据: create table tb_name (   column1 int,   column2 varchar,  ...
  • O_ORick
  • O_ORick
  • 2017年05月27日 14:52
  • 967
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:MYSQL分组查询
举报原因:
原因补充:

(最多只允许输入30个字)