mysql子句查询

  mysql的select查询一共有5种子句查询,包括where,group by,having,order by,limit,在select语句中可以使用一种或多种子句查询,但如果要使用多种,必须要按where,group by,having,order by,limit的顺序来书写。

  where子句查询

  where后面跟的是条件,比如,select goods_id,goods_name from goods where goods_id>5 and goods_id<10;

  group by子句查询

  group by是分组查询,一般是和max(),min(),sum(),count(),avg(),比如,select avg(shop_price),cat_id from goods group by cat_id;

  having子句查询

  having是筛选查询,比如,select goods_id,cat_id,goods_name,(mark_price-shop_price) as sheng from goods having sheng >100; 注意这里不能用where sheng,因为where是针对磁盘上的数据文件,select语句选出来的是结果集,储存在内存上,此时的sheng列是存在结果集里的,不是磁盘上的,所以where是找不到sheng列的,having是针对结果集的。

  order by子句查询

  order by是排序查询,默认是升序asc,降序是desc,可以是多列排序,比如,select goods_id,goods_name,cat_id,shop_price from goods where cat_id<=3 order by cat_id asc,shop_price desc;

  limit子句查询

  limit是限制取出条目的,一般是配合order使用,通常用在分页上,比如,select goods_id,cat_id,goods_name,shop_price from goods order by shop_price desc limit 2,5;

时间: 2024-10-09 22:18:36

mysql子句查询的相关文章

mysql 子句、子查询、连接查询

一.mysql查询的五种子句 where子句(条件查询):按照“条件表达式”指定的条件进行查询. group by子句(分组):按照“属性名”指定的字段进行分组.group by子句通常和count().sum()等聚合函数一起使用. having子句(筛选):有group by才能having子句,只有满足“条件表达式”中指定的条件的才能够输出. order by子句(排序):按照“属性名”指定的字段进行排序.排序方式由“asc”和“desc”两个参数指出,默认是按照“asc”来排序,即升序.

mysql子查询慢的问题

当你在用explain工具查看sql语句的执行计划时,若select_type 字段中出现"DEPENDENT SUBQUERY"时,你要注意了,你已经掉入了mysql子查询慢的"坑"...下面我们来看一个具体的例子 有这样一条查询语句: SELECT gid,COUNT(id) as count FROM shop_goods g1 WHERE status =0 and gid IN (SELECT gid FROM shop_goods g2 WHERE si

MySQL 子查询

-- 商品类别表 --CREATE TABLE category( cat_id INT PRIMARY KEY AUTO_INCREMENT,#类别编号 cat_name VARCHAR(30) NOT NULL#类别名称); -- 商品表 --CREATE TABLE goods( goods_id INT PRIMARY KEY AUTO_INCREMENT,#商品编号 goods_name VARCHAR(30) NOT NULL,#商品名称 goods_price DOUBLE,#商品

mysql随机查询记录的高效率方法

mysql使用rand随机查询记录的高效率方法 一直以为mysql随机查询几条数据,就用 SELECT * FROM `table` ORDER BY RAND() LIMIT 5 就可以了. 但是真正测试一下才发现这样效率非常低.一个15万余条的库,查询5条数据,居然要8秒以上 查看官方手册,也说rand()放在ORDER BY 子句中会被执行多次,自然效率及很低. You cannot use a column with RAND() values in an ORDER BY clause

mysql的查询、子查询及连接查询

一.mysql查询的五种子句 where(条件查询).having(筛选).group by(分组).order by(排序).limit(限制结果数)  1.where常用运算符: 比较运算符 > ,  < ,=  , != (< >),>=   ,   <= in(v1,v2..vn) between v1 and v2    在v1至v2之间(包含v1,v2) 逻辑运算符 not ( ! )  逻辑非 or ( || )    逻辑或 and ( &&am

MySQl 子查询,左右连接,多表连接学习笔记

1.子查询是指在另一个查询语句中的SELECT子句. 例句: SELECT * FROM t1 WHERE column1 = (SELECT column1 FROM t2); 其中,SELECT * FROM t1 ...称为Outer Query[外查询](或者Outer Statement), SELECT column1 FROM t2 称为Sub Query[子查询]. 所以,我们说子查询是嵌套在外查询内部.而事实上它有可能在子查询内部再嵌套子查询. 子查询必须出现在圆括号之间. 行

23个MySQL常用查询语句

一查询数值型数据: SELECT * FROM tb_name WHERE sum > 100; 查询谓词:>,=,<,<>,!=,!>,!<,=>,=< 二查询字符串 SELECT * FROM tb_stu  WHERE sname  =  '小刘' SELECT * FROM tb_stu  WHERE sname like '刘%' SELECT * FROM tb_stu  WHERE sname like '%程序员' SELECT * F

MySQL子查询的优化

一.MySQL子查询的位置 当一个查询是另一个查询的子部分是,称之为子查询(查询语句中嵌套含有查询语句).子查询也是使用频率比较高的一种查询类型.因此,优化子查询,对于整个系统的性能也有直接的影响. 从查询出现在SQL语句的位置来看,它可以出现在目标列中,也可以出现在from子句中,还可以出现在JOIN/ON子句.GROUPBY子句.HAVING子句.ORDERBY子句等位置.下面依次来看这几种形式的子查询,以及对他们进行优化的一些想法. 1.子查询出现在目标列位置 当子查询出现在目标列位置的时

mysql慢查询解析-linux命令

使用mysqldumpslow 命令可以解析mysql慢查询日志,mysqldumpslow的参数如下: -s ,是按照任何方式排序,c.t.l.r分别是按照记录次数.时间.查询时间.返回的记录数 来排序,ac/at/al/ar 表示相应的倒叙 -t,是top n的意思,即为返回前面多少条 的数据 -g,后面可以写一个正则匹配模式,大小写不敏感 例如 1.sql执行时间最长的前20调sql mysqldumpslow -s t -t 20 -g 'select' /opt/data/slowqu