原文链接: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. [Leetcode] Longest Consecutive Sequence 略详细 (Java)

    题目参见这里 https://leetcode.com/problems/longest-consecutive-sequence/ 这个题目我感觉很难,看了半天别人写的答案,才明白个所以然.下面的代 ...

  2. 织梦dedecms5.7后台进去就卡死解决方法

    症状:进入dede后台点击菜单后,浏览器进入假死状态要等好久才能反应过来. 解决方式:1.打开后台目录dede/templets/ 2.找到index_body.htm文件中的第25行至第35行部分屏 ...

  3. Python学习笔记捌——面向对象高级编程

    __slots__特殊变量的使用: 由于Python是动态语言,允许先编写类,然后在创建实例的时候添加属性或者方法:而__slots__特殊变量就是,限制往类里添加属性的: 在创建类的时候,使用__s ...

  4. 每次从vss获取文件都是只读

    在 Visual Studio 2008 中,使用 VSS 作为源码管理器,把文件签入后,文件会自动变为只读状态.在公司习惯是在某个开发人员的机器上获取最新的代码后编译,编译完之后服务器上再从 VSS ...

  5. 用户子查询,用case

    select  satisfy.STARTTIME,cc.C_CrmID,cc.C_Name ClientName,be.C_NAME,count(yskj.c_id) PhoneSum,sum(ca ...

  6. angular--bootstrap实例日期控件【datepicker】

    head部分: <!--Bootstrap--> <link rel="stylesheet" href="/supProdom/script/boot ...

  7. android添加edittext后布局就不好用

    在布局添加控件手动添加还是拖的添加,添加edittext后布局就不好用,其他控件好用,然后就说下面这段话 Exception raised during rendering: java.lang.Sy ...

  8. 批量删除Kindle Personal Documents

    javascript:(function(){ var v = new RegExp("amazon"); if (!v.test(document.URL)) { return ...

  9. Eclipse标准版安装J2EE

    虽然有Eclipse IDE for Java EE Developers,已经包含了j2ee的插件,但有时我们需要在标准版上安装插件来达到开发j2ee的功能. 安装 Java EE 插件:  * 依 ...

  10. [转] Hive 内置函数

    原文见:https://cwiki.apache.org/confluence/display/Hive/LanguageManual+UDF 1.内置运算符1.1关系运算符 运算符 类型 说明 A ...