原文链接:http://www.ifyao.com/2015/01/26/%E6%93%8D%E4%BD%9C%E6%95%B0%E6%8D%AE%E8%A1%A8%E4%B8%AD%E7%9A%84%E8%AE%B0%E5%BD%95-select-where%E8%A1%A8%E8%BE%BE%E5%BC%8F%E3%80%81group-by%E3%80%81having%E3%80%81limit/

操作数据表中的记录——SELECT
一、查找记录
1、语法:

SELECT select_expr [,select expr2…]
[
FROM table_references 查询表名
[WHERE where_conditon] 查询条件
[GROUP BY {col_name|position} [ASC|DESC],…] 按某个字段进行分组,相同的只显示第一个
[HAVING where_conditon] 分组时,给出显示条件
[ORDER BY {col_name|expr|position} [ASC|DESC],…] 排序
[LIMIT {[offset,]row_count|row_count OFFSET offset}] 限制返回数量
}

2、查询表达式的顺序会影响结果顺序
3、使用tbl_name.col_name来表示列记录,这多表查询时可以区别开同名的列
4、使用[AS] alias_name为其赋予别名,别名可以用于GROUP BY、ORDER BY或HAVING子句,例如SELECT id AS userId,username AS uname FROM users; 这样查询出来的结果会用别名表示

操作数据表中的记录——where表达式
1、条件表达式WHERE
2、对记录进行过滤,如果没有指定WHERE子句,则表示对所有记录进行操作
3、可以使用MySQL支持的函数或运算符

操作数据表中的记录——GROUP BY
1、对查询结果进行分组GROUP BY
2、语法:可以指定列的列名和位置[GROUP BY {col_name|position} [ASC|DESC],…]
3、例如:
使用col_name名字:SELECT sex FROM users GROUP BY sex;
4、ASC升序ascending DESC降序descending

操作数据表中的记录——HAVING
1、分组条件:对一部分记录进行分组
2、语法:[HAVING where_conditon]
3、例如:SELECT * FROM users GROUP BY age HAVING age > 30;
4、要求where_condition中使用的条件字段,必须出现在查询结果里

使用having设置分组,条件是要么保证分组条件是聚合函数,要么保证分组条件中的字段在查询中出现

例如:
select sex,age from users group by 1 having age > 35;
或者
select sex from users group by 1 having count(id) >= 2;

操作数据表中的记录——ORDER BY
1、对查询结果进行排序:[ORDER BY [col_name | expr | position } [ASC|DESC],…]
2、可以同时按多条字段进行排序,规则是先按前面的字段排,在基础上再按后面字段排。
3、如:SELECT * FROM users ORDER BY age,id DESC; 先按照age排序,如果age有重复的,重复的字段里按id排
对查询结果进行排序

select * from users order by age desc;age降序

select * from users order by age,id desc;(如果年龄一样则年龄相同点的以id来排序)

操作数据表中的记录——LIMIT
1、限制查询结果返回的数量:[LIMIT {[offset,] row_count|row_count OFFSET offset}]
2、默认返回所有结果,通过LIMIT可以限制其返回指定数量的记录
3、如SELECT * FROM users LIMIT 2,3; 偏移量为2,从第三条开始,返回3条结果
4、偏移量不是按照id等字段来排序,而是按照当前查询排序的方式顺序偏移

demo

创建一个表用来存放查询的记录
把users表中age>30的记录的用户名写入到Test表
创建一个新表test
create table test(
id tinyint unsigned primary key auto_increment,
username varchar(20) );
把查询到的结果插入到test中
insert test(username) select username from users where age>=30;

操作数据表中的记录——SELECT (where表达式、GROUP BY、HAVING、LIMIT)的更多相关文章

  1. MYSQL操作数据表中的记录

    36:操作数据表中的记录插入记录   INSERT INTO 表名  VALUES();   或者INSERT 表名  VALUES();  UPDATE更新记录(单表更新)  DELETE删除记录( ...

  2. MySQL数据库基础(三)(操作数据表中的记录)

    1.插入记录INSERT 命令:,expr:表达式 注意:如果给主键(自动编号的字段)赋值的话,可以赋值'NULL'或'DEFAULT',主键的值仍会遵守默认的规则:如果省略列名的话,所有的字段必须一 ...

  3. MySQL基础(三)(操作数据表中的记录)

    1.插入记录INSERT 命令:,expr:表达式 注意:如果给主键(自动编号的字段)赋值的话,可以赋值‘NULL’或‘DEFAULT’,主键的值仍会遵守默认的规则:如果省略列名的话,所有的字段必须一 ...

  4. 【MySQL】(4)操作数据表中的记录

    1. 插入记录INSERT 方法一: INSERT [INTO] tbl_name [(clo_name,...)] {VALUES | VALUE} ({expr | DEFAULT},...),( ...

  5. MySQL(四) —— 操作数据表中的记录

    插入记录 INSERT [INTO] tbl_name [(col_name,...)] {VALUES | VALUE} ({expr | DEFAULT},...),(...),... //法二: ...

  6. mysql操作数据表中的记录1

    一.插入记录INSERT ​ mysql> create TABLE users(    -> id SMALLINT UNSIGNED PRIMARY KEY AUTO_INCREMEN ...

  7. MySQL--4操作数据表中的记录小结

    最常用,最复杂的语句: 每一项的: 表的参照  From 条件    WHERE 进行记录的分组 GROUP BY 分组的时候对分组的条件进行设定  HAVING 对结果进行排序  ORDER BY ...

  8. MySQL查询数据表中数据记录(包括多表查询)

    MySQL查询数据表中数据记录(包括多表查询) 在MySQL中创建数据库的目的是为了使用其中的数据. 使用select查询语句可以从数据库中把数据查询出来. select语句的语法格式如下: sele ...

  9. Sql Server删除数据表中重复记录 三种方法

    本文介绍了Sql Server数据库中删除数据表中重复记录的方法. [项目]数据库中users表,包含u_name,u_pwd两个字段,其中u_name存在重复项,现在要实现把重复的项删除![分析]1 ...

随机推荐

  1. GDB调试一

    http://blog.csdn.net/haoel/article/details/2881 GDB主要调试的是C/C++的程序.要调试C/C++的程序,首先在编译时,我们必须要把调试信息加到可执行 ...

  2. javaweb分页思想

    web上的分页分析   在web编写中的经常会遇到,数据需要分页的情况.当数据量不是很大的时候.   可以直接使用js来分页.可以很好的提高性能.简化代码.数据量大的时候.还是需要使用java的分页类 ...

  3. C++第一课(2013.9.26 )

    //C++三大特性:封装,继承,多态 //C++新增的数据类型:bool型 一个字节 真 true 假 false //case 定义变量的问题 ; switch(nValue) { : { prin ...

  4. .net mvc结合微软提供的FormsAuthenticationTicket登陆

    一.Web.config <system.web> <compilation debug="true" targetFramework="4.5&quo ...

  5. 使用QtCreator作为ROS调试器

    如果你用过QtCreator,你一定会喜欢上它. 流畅的速度,强大的功能,优雅的外观,友好的界面,一切让人如此舒服.而且它支持从命令行作为调试器启动,只需加上-debug exe即可. 因此我想如果能 ...

  6. Effective Java2读书笔记-对于所有对象都通用的方法(三)

    第12条:考虑实现Comparable接口 这一条非常简单.就是说,如果类实现了Comparable接口,覆盖comparaTo方法. 就可以使用Arrays.sort(a)对数组a进行排序. 它与e ...

  7. LeetCode_Distinct Subsequences

    Given a string S and a string T, count the number of distinct subsequences of T in S. A subsequence ...

  8. Source Insight设置总结

    在网上搜索了一些关于Source Insight的设置技巧,把这些结果给总结下来: 1. 背景色选择 要改变背景色Options->preference->windows backgrou ...

  9. geoip 添加一列,add_field =>["[geoip][request_time]","%{request_time}"]

    "message" => " 10.171.246.184 [11/Sep/2016:14:42:53 +0800] \"GET /wechat/home ...

  10. SuperSpider——打造功能强大的爬虫利器

    SuperSpider——打造功能强大的爬虫利器   1.爬虫的介绍 图1-1  爬虫(spider) 网络爬虫(web spider)是一个自动的通过网络抓取互联网 上的网页的程序,在当今互联网 中 ...