MySQL查询

MySql查询

1.查询数值型数据

 SELECT * FROM tb_name WHERE sum > 100;
 查询谓词: > , = , < , <> , != , !> , !< , => , =< 

2.查询字符串

 SELECT * FROM tb_stu  WHERE sname  =  '小刘'
 SELECT * FROM tb_stu  WHERE sname like '刘%'
 SELECT * FROM tb_stu  WHERE sname like '%程序员'
 SELECT * FROM tb_stu  WHERE sname like '%PHP%'

3.查询日期型数据

SELECT * FROM tb_stu WHERE date = '2011-04-08'

注:不同数据库对日期型数据存在差异: :
 (1)MySQL: SELECT * from tb_name WHERE birthday = '2011-04-08'
 (2)SQL Server: SELECT * from tb_name WHERE birthday = '2011-04-08'
 (3)Access: SELECT * from tb_name WHERE birthday = #2011-04-08#

4.查询逻辑型数据

 SELECT * FROM tb_name WHERE type = 'T'
 SELECT * FROM tb_name WHERE type = 'F'

5.查询非空数据

 SELECT * FROM tb_name WHERE address <>'' order by addtime desc
 注:<>相当于PHP中的!=

6.利用变量查询数值型数据

SELECT * FROM tb_name WHERE id = '$_POST[text]' 

注:利用变量查询数据时,传入SQL的变量不必用引号括起来,因为PHP中的字符串与数值型数据进行连接时,程序会自动将数值型数据转变成字符串,然后与要连接的字符串进行连接

7.利用变量查询字符串数据 

SELECT * FROM tb_name WHERE name LIKE '%$_POST[name]%' 
完全匹配的方法"%%"表示可以出现在任何位置

8.查询前n条记录

 SELECT * FROM tb_name LIMIT 0,$N;

 limit语句与其他语句,如order by等语句联合使用,会使用SQL语句千变万化,使程序非常灵活

9.查询后n条记录

SELECT * FROM tb_stu ORDER BY id DESC
LIMIT $n

10.查询从指定位置开始的n条记录

SELECT * FROM tb_stu ORDER BY id ASC LIMIT $_POST[begin],$n

注意:数据的id是从0开始的

11.查询统计结果中的前n条记录

SELECT * ,(yw+sx+wy) AS total FROM tb_score ORDER BY (yw+sx+wy) DESC LIMIT 0,$num

12.查询指定时间段的数据

SELECT  要查找的字段 FROM 表名 WHERE 字段名 BETWEEN 初始值 AND 终止值
 SELECT * FROM tb_stu WHERE age BETWEEN 0 AND 18

13.按月查询统计数据

SELECT * FROM tb_stu WHERE month(date) = '$_POST[date]' ORDER BY date ;

如查询三月份插入的数据:SELECT
* FROM `user` WHERE month(create_time) = '3' ORDER BY create_time ;
 注:SQL语言中提供了如下函数,利用这些函数可以很方便地实现按年、月、日进行查询
 year(data):返回data表达式中的公元年分所对应的数值
 month(data):返回data表达式中的月分所对应的数值
 day(data):返回data表达式中的日期所对应的数值

14.查询大于指定条件的记录

SELECT * FROM tb_stu WHERE age>$_POST[age] ORDER BY age;

15.查询结果不显示重复记录

SELECT DISTINCT 字段名 FROM 表名 WHERE 查询条件 

注:SQL语句中的DISTINCT必须与WHERE子句联合使用,否则输出的信息不会有变化 ,且字段不能用*代替

16.NOT与谓词进行组合条件的查询

 (1)NOT BERWEEN … AND … 对介于起始值和终止值间的数据时行查询 可改成 <起始值 AND >终止值
 (2)IS NOT NULL 对非空值进行查询 
 (3)IS NULL 对空值进行查询
 (4)NOT IN 该式根据使用的关键字是包含在列表内还是排除在列表外,指定表达式的搜索,搜索表达式可以是常量或列名,而列名可以是一组常量,但更多情况下是子查询

17.显示数据表中重复的记录和记录条数

 SELECT  name,age,count(*) ,age FROM tb_stu WHERE age = '19' group by date

18.对数据进行降序/升序查询

 SELECT 字段名 FROM tb_stu WHERE 条件 ORDER BY 字段 DESC 降序
 SELECT 字段名 FROM tb_stu WHERE 条件 ORDER BY 字段 ASC  升序
 注:对字段进行排序时若不指定排序方式,则默认为ASC升序

19.对数据进行多条件查询

SELECT 字段名 FROM tb_stu WHERE 条件 ORDER BY 字段1 ASC 字段2 DESC  …
 注意:对查询信息进行多条件排序是为了共同限制记录的输出,一般情况下,由于不是单一条件限制,所以在输出效果上有一些差别。

 20.对统计结果进行排序

函数SUM([ALL]字段名) 或 SUM([DISTINCT]字段名),可实现对字段的求和,函数中为ALL时为所有该字段所有记录求和,若为DISTINCT则为该字段所有不重复记录的字段求和
 如:SELECT name,SUM(price) AS sumprice  FROM tb_price GROUP BY name
 
SELECT * FROM tb_name ORDER BY mount DESC,price ASC

21.单列数据分组统计

 SELECT id,name,SUM(price) AS title,date FROM tb_price GROUP BY pid ORDER BY title DESC
 注:当分组语句group by排序语句order by同时出现在SQL语句中时,要将分组语句书写在排序语句的前面,否则会出现错误

22.多列数据分组统计

多列数据分组统计与单列数据分组统计类似 
SELECT *,SUM(字段1*字段2) AS (新字段1) FROM 表名 GROUP BY 字段 ORDER BY 新字段1 DESC
 SELECT id,name,SUM(price*num) AS sumprice  FROM tb_price GROUP BY pid ORDER BY sumprice DESC
 注:group by语句后面一般为不是聚合函数的数列,即不是要分组的列
 

23.多表分组统计

SELECT a.name,AVG(a.price),b.name,AVG(b.price) FROM tb_demo058 AS a,tb_demo058_1 AS b WHERE a.id=b.id GROUP BY b.type;

24.查询某年某月某日的数据量

SELECT
* FROM `user` WHERE month(create_time) = '3' AND year(create_time) ='2015' and day(create_time)='26' ORDER BY create_time ;

时间: 2024-08-03 17:03:11

MySQL查询的相关文章

mysql查询学生成绩及各科成绩的排名

问题描述 mysql查询学生成绩及各科成绩的排名 学生表student有主键id,学号stuNum,姓名stuName, 课程表course有课程名称主键id,cname 成绩表sc有主键id,学生表id,课程表id 班级表class有主键id,班级名称cname,外键gid关联年纪表的id主键 年纪表grade有主键id,年纪名称gname 年纪-课程表gc有主键id,年纪表gid,课程表cid 所有的表主键id都是uuid 现在查询一个学生的各科成绩以及每科的成绩在班级和在年纪的排名,(如可

MySQL 4.1.0 中文参考手册 --- 6.9 MySQL 查询缓存

mysql|参考|参考手册|缓存|中文 MySQL 4.1.0 中文参考手册 --- 犬犬(心帆)翻译 MySQL Reference Manual for version 4.1.0-alpha. 6.9 MySQL 查询缓存 从 MySQL 4.0.1 开始,MySQL server 有一个重要的特征:Query Cache. 当在使用中,查询缓存会存储一个 SELECT 查询的文本与被传送到客户端的相应结果.如果之后接收到一个同样的查询,服务器将从查询缓存中检索结果,而不是再次分析和执行这

mysql查询区分大小写高性能

 mysql查询默认是不区分大小写的 如: 1 2 3 4 5 6 7 <a href="/tags.php/select/" target="_blank">select</a>  * from  table_name where  a like  'a%'       select  * from  table_name where  a like  'A%'       select * from table_name where a 

MySQL查询和修改auto

 本文实例讲述了MySQL查询和修改auto_increment的方法.分享给大家供大家参考.具体如下: 查询表名为tableName的auto_increment值: 代码如下: SELECT AUTO_INCREMENT FROM information_schema.tables WHERE table_name="tableName";   修改表名为tableName的auto_increment值: 代码如下: ALTER TABLE tableName auto_incr

mysql查询随机几条数据

MySql查询随机几条数据 想到了 Max RAND 这几个函数 用以下2种办法都可以实现查询. 速度还行. 几十万数据左右, 没有什么问题. SELECT * FROM `news` WHERE id >= (SELECT floor(RAND() * (SELECT MAX(id) FROM `news`))) LIMIT 10; SELECT * FROM `news` AS t1 JOIN (SELECT ROUND(RAND() * ((SELECT MAX(id) FROM `new

mysql查询当天所有数据sql语句

  mysql查询当天的所有信息: 代码如下 select * from test where year(regdate)=year(now()) and month(regdate)=month(now()) and day(regdate)=day(now()) 这个有一些繁琐,还有简单的写法: 代码如下 select * from table where date(regdate) = curdate(); 另一种写法没测试过 查询当天的记录 代码如下 select * from hb_a

十四条实用的MySQL 查询语句

  1. 手动修改密码 某些情况下,我们忘记了管理员的密码.或者站点遭受攻击后,管理员密码被恶意修改了.这个时候,我们能做的就只有重新设置管理员的密码了. 以下查询语句,使用 MySQL 的 MD5() 函数将我们的密码进行 MD5 加密. UPDATE 'wp_users' SET 'user_pass' = MD5('PASSWORD') WHERE 'user_login' ='admin' LIMIT 1; 2. 批量转换日式的作者 大多数刚使用 WordPress 的人可能都是直接使用

mysql查询如何先排序再分组呢?纠结了好几天了。

问题描述 mysql查询如何先排序再分组呢?纠结了好几天了. 比如数据表"article"中有一组这样的数据: id uid title... .... .....375 1 文章标题1376 1 文章标题2377 1 文章标题3378 2 asdfasdf379 3 fdaewqwe... .... ..... 然后我写了一句这样的sql:select * from article order by id desc执行后,结果如下: id uid title... .... ....

mysql查询结果为空-mysql查询,参数中文时查询结果为空

问题描述 mysql查询,参数中文时查询结果为空 图里的两种方法都改过了,还是不管用.大神指教一下 解决方案 首先调试下,看看你页面返回的查询参数有没有正确.这个如果不正确,光设置字符集是不行的. 解决方案二: 中文有没有转成utf8编码 解决方案三: 去我的博客,看怎么设置数据集支持中文,但是这个设置只对设置之后添加的数据有效,之前得无法更改

查询语句-mysql 查询出错! 是权限的问题吗?

问题描述 mysql 查询出错! 是权限的问题吗? 报错如下: 查询不了当前使用的数据库, 也查询不了当前操作数据库的版本, 可以查询当前用户,当前时间, 这是权限问题吗?请大神指教! 并且在增加了一个用户后却删不了, 该怎么办? 最后这个ERROR 1064(4200)与 1054(42S22) 的报错又是怎么回事? 解决方案 当前使用的数据库 show databases 数据库的版本 select version();或select @@version 解决方案二: 暴汗!去百度搜索,关键