select 查询“固定数据”,并且运算

mysql FIND_IN_SET 与like 效率问题 mysql like and_数据

select 查询出的数据字段可以使用别名

mysql FIND_IN_SET 与like 效率问题 mysql like and_数据_02

select 使用distinct消除查询结果重复行

mysql FIND_IN_SET 与like 效率问题 mysql like and_字段_03

–导入数据库 source F:\学习项目\图片轮播2\02php\Day-10\垫子商店.sql

mysql FIND_IN_SET 与like 效率问题 mysql like and_数据_04

基础运算符 1.1.1. 算术运算符 + - * / % 1.1.2. 比较运算符: 相等: = 不相等: <> 或 != 大于: > 大于等于: >= 小于: < 小于等于: <= 1.1.3. 逻辑运算符: 逻辑与: && 或 and 逻辑或: || 或 or 逻辑非: ! 或 not

like模糊查找运算符: 用于判断某个字符型字段的值是否包含给定的字符。 语法形式: xxx字段 like ‘%关键字%’ 其中:%表示“任意个数的任意字符”。 还可以使用“”(下杠),表示“任意一个字符”。 where name like ‘罗%’ //找出name的第一个字为“罗”的所有 //可以找出:”罗成”,“罗永浩”,“罗纳尔多”,“罗” //但找不出“c罗纳尔多”这个 where name like ‘罗’ //可以找出:”罗成”, “罗兰”, //但找不出“c罗”,“罗永浩” 极端情况: where name like “罗” //其实它只是相当于: name = ‘罗’ 如果不使用“%”或“_”,则 like 相当于等于(=)。比如: xxx字段 like ‘关键字’ 相当于: xxx字段 = ‘关键字’

mysql FIND_IN_SET 与like 效率问题 mysql like and_字段_05

between范围限定运算符: 用于判断某个字段的值是否在给定的两个数据范围之间。 语法形式: xxx字段 between 值1 and 值2 其含义相当于: xxx字段 >= 值1 and xxx字段 <= 值2 select * from product where price between 5000 and 10000;

in运算符: 用于判断某个字段的值是否在给出的若干个“可选值”范围。 语法形式: xxx字段 in (值1, 值2, … ) 其含义是:该字段的值等于所列出的任意一个值,就算满足条件,比如: 籍贯 in (‘北京’,‘山东’,‘河北’, ‘江西’); //则某人籍贯为上述4个之一就ok。 is运算符: 用于判断一个字段中的是“是否存在”(即有没有),只有两个写法,如下所示: where content is null; //不能写成: content = null; where content is not null; //不能写成: content != null;

group by子句

mysql FIND_IN_SET 与like 效率问题 mysql like and_字段_06

mysql FIND_IN_SET 与like 效率问题 mysql like and_数据_07


– 分组的基本理解: SELECT pinpai, count() as 数量, avg(price) as 平均价, max(price) as 最高价, min(price), sum(price) as 价格之和 FROM product group by pinpai 示例1: 查询出各个品牌的产品的平均价。 select pinpai, avg(price) from product group by pinpai; 示例2: 查询出各个产地的产品数量、平均价,最高价,最低价。 SELECT chandi, count() as 数量, avg(price) as 平均价, max(price) as 最高价, min(price) FROM product group by chandi 示例3: 查询出产品表中的产品总数。 select count() as 产品总数量 from product; 示例4: 查询出产品表中联想品牌的产品总数。 select count() as 总数 from product where pinpai = ‘联想’; 多条件分组: 将product表中的所有商品以品牌和产地进行分组,并求出每一组的数量 select pinpai, chandi, count(*) as 数量 from product group by pinpai, chandi;

mysql FIND_IN_SET 与like 效率问题 mysql like and_数据_08


having子句– having的应用: – 查询出品牌平均价超过5000的所有品牌的平均价,最高价,以及产品的数量。 select pinpai,avg(price) as 平均价, max(price) as 最高价, count() as 数量 from product group by pinpai having avg(price) > 5000; --查询出价格超过3000的所有产品的品牌平均价超过5000所有品牌的平均价,最高价,以及产品的数量 select pinpai, avg(price) as 平均价 from product where price > 3000 group by pinpai having 平均价>5000; select pinpai,avg(price) as 平均价,max(price) as 最高价,count() as 数量 from product where price > 3000 group by pinpai having avg(price) > 5000;

mysql FIND_IN_SET 与like 效率问题 mysql like and_运算符_09


order by子句

语法形式: order by 字段1 [asc或desc], 字段2 [asc或desc], … 含义: 对前面所取得的数据按给定的字段进行排序。 排序方式有: 正序asc, 倒序desc,如果省略不写,就是asc 示例1: 对所有产品按价格从高到低进行排序; select * from product order by price desc; --对所有品牌的平均价按从高到低的顺序进行排序,并列出品牌名和平均价。 select pinpai, avg(price) as 平均价 from product group by pinpai order by 平均价 desc ;

mysql FIND_IN_SET 与like 效率问题 mysql like and_运算符_10


9.8.limit 子句

语法形式:

limit 起始行号,行数

说明:

1,limit表示对前面所取得的数据再进行数量上的筛选:取得从某行开始的多少行。

2,行号就是前面所取得数据的“自然顺序号”,从0开始算起——注意不是id,或任何其他实际数据。

3,起始行号可以省略,此时limit后只用一个数字,表示从第0行开始取出多少行。

4,limit子句通常用在“翻页”功能上,用于找出“第n页”的数据,其公式为:

limit (n - 1) * pageSize, pageSize; 其中pageSize表示每页显示的条数。

示例1:

取出商品表中价格最高的3个商品,并按倒序排列出来。

select * from product order by price desc limit 0,3;

应用:
limit子句常常用于网页的“翻页功能”。
假设总的数据行数为9,每页显示2行(条),则:
查看第1页: select * from product limit 0, 2;
查看第2页: select * from product limit 2, 2;
查看第3页: select * from product limit 4, 2;

查看第n页: select * from product limit (n-1)*2, 2;