MySQL学习(七)
学习子查询
1 查出本网站最新的good_id最大的一条商品(要求取出商品名)
mysql> select goos_id,goods_name from goods
-> order by goos_id desc
-> limit 0,1;
取出本站中goos_id最大的一条商品,要求:不用排序
mysql> select goos_id,goods_name from goods
-> where
-> goos_id = (select max(goos_id) from goods);
子查询指一个查询语句嵌套在另一个查询语句内部的查询。
2 用where型子查询,查询出每个栏目下goos_id最大的商品
mysql> select cat_id,goos_id,goods_name from goods
-> where
-> goos_id
-> in
-> (select max(goos_id) from goods
-> group by cat_id);
典型错误
mysql> select goos_id,goods_name from goods
-> where
-> goos_id
-> =
-> (select max(goos_id) from goods
-> group by cat_id);
ERROR 1242 (21000): Subquery returns more than 1 row
注意!!!
where型子查询
如果where列 = (内存sql),则内层sql返回的必是单行单列,单个值
如果where列 in(内存sql),则内层sql只返回单列,可以多行。
查询模型
查询结果集在结构上可以当成表看。
from型子查询
即内层sql的查询结果,当成一张临时表,供外层sql,再次查询
3
exists型子查询
是指把外层sql的结果,拿到内层sql去测试,如果内层sql成立,则该行取出
新建一张表
mysql> create table category
-> (
-> cat_id int auto_increment primary key,
-> cat_name varchar(20) not null default ''
-> )engine myisam charset utf8;
插入如下数据

别把14个栏目都取出来,只把下面有商品的栏目取出来
mysql> select cat_id,cat_name from category
-> where exists
-> (select * from goods where goods.cat_id = category.cat_id);
想明白上面的过程是如何发生的!!!
4 建表时,列后面not null default ' ',或者default 0,这是什么意思?
答:就是让这个列值不为null,如果某个列确实没有填值,也会有默认值,不会为null
为什么不希望列的值为null?
null是一种类型,null是空,null的比较需要用特殊的运算符,is null 或 is not null,碰到运算符,一律返回null,并且效率不高。
MySQL学习(七)的更多相关文章
- MySql学习(七) —— 查询性能优化 深入理解MySql如何执行查询
本篇深入了解查询优化和服务器的内部机制,了解MySql如何执行特定查询,从中也可以知道如何更改查询执行计划,当我们深入理解MySql如何真正地执行查询,明白高效和低效的真正含义,在实际应用中就能扬长避 ...
- 我的MYSQL学习心得(七) 查询
我的MYSQL学习心得(七) 查询 我的MYSQL学习心得(一) 简单语法 我的MYSQL学习心得(二) 数据类型宽度 我的MYSQL学习心得(三) 查看字段长度 我的MYSQL学习心得(四) 数据类 ...
- 我的MYSQL学习心得(七)
原文:我的MYSQL学习心得(七) 我的MYSQL学习心得(七) 我的MYSQL学习心得(一) 我的MYSQL学习心得(二) 我的MYSQL学习心得(三) 我的MYSQL学习心得(四) 我的MYSQL ...
- 我的MYSQL学习心得(一) 简单语法
我的MYSQL学习心得(一) 简单语法 我的MYSQL学习心得(二) 数据类型宽度 我的MYSQL学习心得(三) 查看字段长度 我的MYSQL学习心得(四) 数据类型 我的MYSQL学习心得(五) 运 ...
- 我的MYSQL学习心得(二) 数据类型宽度
我的MYSQL学习心得(二) 数据类型宽度 我的MYSQL学习心得(一) 简单语法 我的MYSQL学习心得(三) 查看字段长度 我的MYSQL学习心得(四) 数据类型 我的MYSQL学习心得(五) 运 ...
- 我的MYSQL学习心得(三) 查看字段长度
我的MYSQL学习心得(三) 查看字段长度 我的MYSQL学习心得(一) 简单语法 我的MYSQL学习心得(二) 数据类型宽度 我的MYSQL学习心得(四) 数据类型 我的MYSQL学习心得(五) 运 ...
- 我的MYSQL学习心得(四) 数据类型
我的MYSQL学习心得(四) 数据类型 我的MYSQL学习心得(一) 简单语法 我的MYSQL学习心得(二) 数据类型宽度 我的MYSQL学习心得(三) 查看字段长度 我的MYSQL学习心得(五) 运 ...
- 我的MYSQL学习心得(五) 运算符
我的MYSQL学习心得(五) 运算符 我的MYSQL学习心得(一) 简单语法 我的MYSQL学习心得(二) 数据类型宽度 我的MYSQL学习心得(三) 查看字段长度 我的MYSQL学习心得(四) 数据 ...
- 我的MYSQL学习心得(六) 函数
我的MYSQL学习心得(六) 函数 我的MYSQL学习心得(一) 简单语法 我的MYSQL学习心得(二) 数据类型宽度 我的MYSQL学习心得(三) 查看字段长度 我的MYSQL学习心得(四) 数据类 ...
随机推荐
- Prometheus监控学习笔记之Prometheus不完全避坑指南
0x00 概述 Prometheus 是一个开源监控系统,它本身已经成为了云原生中指标监控的事实标准,几乎所有 k8s 的核心组件以及其它云原生系统都以 Prometheus 的指标格式输出自己的运行 ...
- A-作业01
#1 简单作业 1. 系统的日志文件/var/log/secure /var/log/messages /var/log/cron会自动的进行轮询,系统是通过什么实现的? 2. 写出下面特殊符号在定时 ...
- bzoj2152 / P2634 [国家集训队]聪聪可可(点分治)
P2634 [国家集训队]聪聪可可 淀粉质点分治板子 边权直接 mod 3 直接点分治统计出所有的符合条件的点对再和总方案数约分 至于约分.....gcd搞搞就好辣 #include<iostr ...
- enq: TM - contention一例
今天下午,有台服务器出现异常,响应特别慢,io等待奇高,awr top 5事件如下: 经回查ash,找到了造成这些事件的sql语句,如下: select * from v$active_session ...
- fread和fseek的用法
原味:http://baike.baidu.com/view/656696.htm http://baike.baidu.com/view/656689.htm fread 功 能: 从一个流中 ...
- rsync: read error: Connection reset by peer (104)
Centos7 rsync守护进程上传文件失败 [root@nfs ~]# rsync -avz /etc rsync_backup@172.16.1.41::backupsending inc ...
- topcoder srm 693 div1 -3
1.给出一个$n$个顶点的无向带权图.其中顶点$i,i+1$之间存在边,$i,i+2$之间存在边.而且仅有这些边.现在删掉其中的一些边,剩下的边满足图仍然是2联通的情况下使得权值和最小? 思路:其实就 ...
- Linux服务器搭建Nexus-Maven私服(适合新手比较基础)
背景 在使用maven构建项目的时候,几乎都会涉及到一个“私服”的概念,那么到底什么是私服?使用私服有能够带来哪些益处? 私服:私服是指私有服务器,是架设在局域网的一种特殊的远程仓库,目的是代理远程仓 ...
- SpringBoot 消息转换器 HttpMessageConverter
1.简介: Spring在处理请求时,由合适的消息转换器将请求报文绑定为方法中的形参对象,在这里,同一个对象就有可能出现多种不同的消息形式,比如json和xml.同样,当响应请求时,方法的返回值也同样 ...
- SPOJ 694 DISUBSTR - Distinct Substrings
思路 求本质不同的子串个数,总共重叠的子串个数就是height数组的和 总子串个数-height数组的和即可 代码 #include <cstdio> #include <algor ...