mysql之select+五种子句的理解

select 可以包含很复杂,很丰富的逻辑,最能考验一个人的逻辑思维能力和sql语句的掌握程度,我是这么认为,以前的很多次面试几乎都死在它手上,所以才有了今天的这篇日志,下定决心把它学好。

where 表达式

我们要这样理解,表达式放在表中的哪一行成立,哪一行就取出来

=,>,<,>=,<=,!=/<>,and,or,between and,in,not

group by

分组,一般和统计函数配合使用才有意义

max,min,avg,count,sum

having 表达式

数据在表中,表在硬盘或内存以文件形式存在

和where区别:where 是针对表文件发挥作用的。

查询出的结果,也可以看成一张表,其文件一般临时存在于缓冲区

having就是针对查询结果发挥作用的。

所以应该现有where,才有having

order by 排序

可以针对字段进行排序,order by 字段1 [asc] 升序,[desc] 降序

有可能一个字段排序不出结果,可以选用其他字段继续排序,

order by 字段1 [asc/desc],字段2 [asc/desc]

limit [offset,] N

offset:偏移量

N:取出的条目

例如:要取某张表3-5行的记录,

select * from tableName limit 2,3;

注意:where->group by->having-order by->limit,必须按顺序出现。

子查询(重点)

where型的子查询:把内层查询的结果作为外层查询比较的条件

差不多这种形式:

select * from tableName where tid = (select tid from ...);

from型子查询:把内层查询的结果,当做一张临时表,供外层继续查询

形式:select * from (select * from ...)  as temp group by...;

exists型子查询:把外层的查询结果拿到内层,看内层的查询是否成立

形式:select oid from outTable o where exists(select * from inTable i where i.oid=o.oid);

时间: 2024-11-03 22:15:25

mysql之select+五种子句的理解的相关文章

mysql 不乱码五种方法

方法1: 登录mysql,先做set names latin1; 前提是你的创建的表是(ENGINE=MyISAM DEFAULT CHARSET=latin1)latin1字符集. 如果你的表是gbk,那就set names gbk; 这种方法是临时的,也就是你每次登录的时候都要set names latin1 下面的方法也要遵守这个前提 查看表是哪一种字符集的方法 mysql> show create table lvnian\G; *************************** 1

Mysql基本类型(五种年日期时间类型)——mysql之二

转自:<MySQL技术内幕:时间和日期数据类型> http://tech.it168.com/a2012/0904/1393/000001393605_all.shtml

Sql语句之select 5种查询

select 5种子句:注意顺序where / group by /having / order by / limit / 清空表中的数据:truncate 表名: 导入表结构(不含数据): create table 表2 like 表1; 删除表:drop table 表名: 导入数据:insert into g2 select * from stu order by name, fenshu desc; //从临时表中查询=========子查询select * from (select *

12_查询之五种子句使用陷阱

1.查询的五种子句是有先后顺序的, 先后顺序分别是: where,group by,having,order by,limit 2.使用group by时要小心, 因为查询的列中的内容第一次出现当成代表,后面只换group by后字段中的内容, 而不是group by后字段中的内容就不会变.如: select goods_name,cat_id,max(shop_price) from goods group by cat_id;这条语句就是错误的.goods_name只显示第一次查询到的内容.

Linux网络编程 五种I/O 模式及select、epoll方法的理解

Linux网络编程 五种I/O 模式及select.epoll方法的理解 web优化必须了解的原理之I/o的五种模型和web的三种工作模式 五种I/O 模式--阻塞(默认IO模式),非阻塞(常用语管道),I/O多路复用(IO多路复用的应用场景),信号I/O,异步I/OLinux网络编程 五种I/O 模式及select.epoll方法的理解

五种完整性约束分别是什么——基于MySQL数据库的数据约束实例

为了防止不符合规范的数据进入数据库,在用户对数据进行插入.修改.删除等操作时,DBMS自动按照一定的约束条件对数据进行监测,使不符合规范的数据不能进入数据库,以确保数据库中存储的数据正确.有效.相容. #数据约束 #五种完整性约束: #NOT NULL :非空约束,指定某列不能为空: #UNIQUE : 唯一约束,指定某列或者几列组合不能重复 #PRIMARY KEY :主键,指定该列的值可以唯一地标识该列记录 #FOREIGN KEY :外键,指定该行记录从属于主表中的一条记录,主要用于参照完

小贝_mysql select5种子句介绍

mysql select5种子句介绍 简要 一.五种字句 二.具体解释五种字句 一.五种字句 where.group by.having.order by.limit 二.具体解释五种字句 2.1.理解where子句 理解select 列1.列2- fromtable where where子句 a. 把where子句看成表达式.到table中查询满足表达式成立的行 b. 上述查询语句的运行顺序.先找到表table后.再运行where子句.满足表达式后进行展示. c.比較运算符和逻辑运算符 2.

五种方式让你在java中读取properties文件内容不再是难题

一.背景 最近,在项目开发的过程中,遇到需要在properties文件中定义一些自定义的变量,以供java程序动态的读取,修改变量,不再需要修改代码的问题.就借此机会把Spring+SpringMVC+Mybatis整合开发的项目中通过java程序读取properties文件内容的方式进行了梳理和分析,先和大家共享. 二.项目环境介绍 Spring 4.2.6.RELEASE SpringMvc 4.2.6.RELEASE Mybatis 3.2.8 Maven 3.3.9 Jdk 1.7 Id

Android数据存储五种方式总结

本文介绍Android平台进行数据存储的五大方式,分别如下: 1 使用SharedPreferences存储数据     2 文件存储数据       3 SQLite数据库存储数据 4 使用ContentProvider存储数据 5 网络存储数据 下面详细讲解这五种方式的特点 第一种: 使用SharedPreferences存储数据     适用范围:保存少量的数据,且这些数据的格式非常简单:字符串型.基本类型的值.比如应用程序的各种配置信息(如是否打开音效.是否使用震动效果.小游戏的玩家积分