热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

mysql第四章_第四章常用技巧

####*MySQL一些常用查询技巧*查询每个班有多少人,如果没有人的班级显示无SELECTIF(COUNT(u.class_id),COUNT(u.class_i

> #### *MySQL一些常用查询技巧*

查询每个班有多少人,如果没有人的班级显示无

```

SELECT IF (COUNT(u.class_id),COUNT(u.class_id),'无') AS num,c.cname

FROM `class` AS c LEFT JOIN `user` AS u ON u.class_id=c.id GROUP BY c.id;

```

order by可以进行多次排序,如

```

select * from `user` order by class, order by score desc;

```

查出每个班的及格人数与不及格人数,格式为:class、及格人数、不及格人数

对于这种矛盾体来说(也就是即要不格又要及格),主要用到的是if,

向表中添加一个字段

```

alter table 表名 add 字段名 varchar(20) not null

```

修改

```

ALTER TABLE 表名 MODIFY COLUMN 字段名 字段类型定义

```

删除

```

alter table 表名 drop column 字段名

```

清空表数据

```

truncate 表名

```

复制表结构

```

1、CREATE TABLE 要复制的表名 SELECT * FROM 被复制的表名 WHERE 0;#结构与数据同时复制

2、create table 表名 like 要复制表名;#只复制表结构

insert into 表名 select * from 要复制的表名; #复制表内容

```

> #分组后一般查询的字段只能是分组的字段

> #where中不能用聚合函数

> #在聚合函数中要用having代替where,having是在进行分组后筛选

### **删除表中的重复记录,同时保留最小id的记录**

```

DELETE FROM tableName WHERE id IN (

SELECT b.id FROM (

SELECT

max(id) AS id,title,count(*) AS repeat_num

FROM

tableName as a

GROUP BY

title

HAVING

repeat_num > 1

) AS b

)

```

查看慢查询日志(超过10秒的才会被记录)

`show variables like '%quer%'`

查看一个数据库中是否有慢查询

`show status like '%quer%'`

#查出文章表中所有的文章并显示属于哪个分类下的文章,如果有图片将图片显示出业,如果没有,则不显示

```

SELECT

b.id,

b.title,

a.cat_name,

ifnull(c.file,'无图片') as image

FROM

article_category AS a

LEFT OUTER JOINarticle AS b ON a.cat_id = b.cat_id

LEFT OUTER JOIN file AS c ON b.image = c.number

```

*****

> 获取上一篇与下一篇实现思路

##### 当前文章

`select * from dou_article where id = 232 limit 0,1;

`

##### 上一篇:原理:查出比当前文章id小于的所有文章id,然后再将查出来的所有id求出最大值

&#96;select max(id) from dou_article where id <232 limit 0,1;

&#96;

##### 下一篇&#xff1a;原理&#xff1a;查出比当前文章id大于的所有文章的id&#xff0c;然后再将查出来的所有id求出最小值

&#96;select min(id) from dou_article where id > 232 limit 1;&#96;

*****

>发贴数最多的十个人名字的SQL&#xff0c;利用下表&#xff1a;members(id,username,posts,pass,email)

&#96;select username from members order by posts desc limit 0,10&#96;

*****

> 根据分组选择所有分组下面的数据

在mysql中如果用group by进行分组&#xff0c;选择的数据只包含了第一条&#xff0c;如果选择所有的数据&#xff0c;可以用mysql的一个函数来选取&#xff0c;group_concat()

&#96;select username from members order by posts desc limit 0,10&#96;



推荐阅读
  • 本文探讨了在 SQL Server 中使用 JDBC 插入数据时遇到的问题。通过详细分析代码和数据库配置,提供了解决方案并解释了潜在的原因。 ... [详细]
  • 优化SQL Server批量数据插入存储过程的实现
    本文介绍了一种改进的SQL Server存储过程,用于生成批量插入语句。该方法不仅提高了性能,还支持单行和多行模式,适用于SQL Server 2005及以上版本。 ... [详细]
  • 软件工程课堂测试2
    要做一个简单的保存网页界面,首先用jsp写出保存界面,本次界面比较简单,首先是三个提示语,后面是三个输入框,然 ... [详细]
  • 目录一、salt-job管理#job存放数据目录#缓存时间设置#Others二、returns模块配置job数据入库#配置returns返回值信息#mysql安全设置#创建模块相关 ... [详细]
  • 本文介绍 SQL Server 的基本概念和操作,涵盖系统数据库、常用数据类型、表的创建及增删改查等基础操作。通过实例帮助读者快速上手 SQL Server 数据库管理。 ... [详细]
  • 本题来自WC2014,题目编号为BZOJ3435、洛谷P3920和UOJ55。该问题描述了一棵不断生长的带权树及其节点上小精灵之间的友谊关系,要求实时计算每次新增节点后树上所有可能的朋友对数。 ... [详细]
  • MySQL 基础操作与优化
    本文详细介绍了 MySQL 的基础连接、数据库及表的操作,涵盖创建、修改、删除等常用命令,并深入解析了数据类型、列属性、索引、外键和存储引擎等内容。 ... [详细]
  • Python + Pytest 接口自动化测试中 Token 关联登录的实现方法
    本文将深入探讨 Python 和 Pytest 在接口自动化测试中如何实现 Token 关联登录,内容详尽、逻辑清晰,旨在帮助读者掌握这一关键技能。 ... [详细]
  • 深入解析MySQL中的七种JOIN查询
    本文详细介绍了MySQL中常用的七种JOIN查询方法,包括内连接、左外连接、右外连接、全外连接以及排除连接等,并通过实例进行说明。 ... [详细]
  • 本题要求在一组数中反复取出两个数相加,并将结果放回数组中,最终求出最小的总加法代价。这是一个经典的哈夫曼编码问题,利用贪心算法可以有效地解决。 ... [详细]
  • HDU 2871 内存管理问题(线段树优化)
    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2871。本题涉及内存管理操作,包括重置、申请、释放和查询内存块。通过使用线段树进行高效管理和维护。 ... [详细]
  • 本文探讨了如何使用pg-promise库在PostgreSQL中高效地批量插入多条记录,包括通过事务和单一查询两种方法。 ... [详细]
  • JSOI2010 蔬菜庆典:树结构中的无限大权值问题
    本文探讨了 JSOI2010 的蔬菜庆典问题,主要关注如何处理非根非叶子节点的无限大权值情况。通过分析根节点及其子树的特性,提出了有效的解决方案,并详细解释了算法的实现过程。 ... [详细]
  • #print(34or4 ... [详细]
  • 解决MacOS Catalina升级后VMware Fusion黑屏问题的详细指南
    本文深入探讨了如何在MacOS Catalina升级后解决VMware Fusion黑屏的问题。通过详细的步骤和代码示例,帮助用户快速恢复虚拟机的正常运行,并提供了额外的安全建议。适用于希望提升工作效率或学习新技术的读者。 ... [详细]
author-avatar
鉴佳熙萍
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有