常用sql语句

查询:

SELECT 列名(或者*,表示所有列) FROM 表名 WHERE 筛选条件;

FROM 表名:顾名思义,就是从表名指定的这张表格中;

WHERE 筛选条件:意思是“当满足筛选条件”的时候;

SELECT 列名:意思是选择出这些记录,并且展示指定的列名;

从tb_stu_math_score表中挑选出得分大于95分的学生姓名;

SELECT name FROM tb_stu_math_score WHERE score >= 95;

从tb_stu_math_score表中挑选出得分小于60分的学生姓名,

SELECT name, number FROM tb_stu_math_score WHERE score < 60;

从tb_stu_math_score表中挑选出得分为100分学生的所有信息(注意SELECT后面的*符号,表示所有字段),

SELECT * FROM tb_stu_math_score WHERE score = 100;

高级用法:

如有表tb_rider、tb_order两张表

IN 操作

WHERE id IN(2, 4, 7)的意思就是筛选id字段的值在2,4,7这几个值当中的记录,

SELECT name, level, level_city FROM tb_rider WHERE id IN(2, 4, 7);

关系运算符 AND 和 OR

查询tb_rider``表中创建时间处于2017-02-01到2017-06-01之间的数据。

SELECT * FROM tb_rider WHERE created_at >= "2017-02-01 00:00:00" AND created_at < "2017-06-01 00:00:00";

查询tb_rider``2017-02-01(包括当天)之前,或者2017-06-01(包括当天)之后注册的骑手所有信息。

SELECT * FROM tb_rider WHERE created_at <= "2017-02-01 00:00:00" OR created_at >= "2017-06-01 00:00:00";

查询tb_rider``2017-02-01(包括2017-02-01当天)到2017-06-01(不包括2017-06-01当天)期间注册的且当前是金牌等级的骑手所有信息,

SELECT * FROM tb_rider

WHERE created_at >= "2017-02-01 00:00:00"

AND created_at < "2017-06-01 00:00:00"

AND level = 3;

排序:ORDER BY DESC:递减 ASC:递增

按照运单的创建时间倒序排序把最近创建的运单排在最前面,使用ORDER BY语法:created_at字段值递减(DESC)的顺序对查询结果排序

SELECT order_id, created_at FROM tb_order

WHERE rider_id = 1

AND grabbed_time >= "2017-12-30 00:00:00"

AND grabbed_time < "2017-12-31 00:00:00"

AND order_state = 40

ORDER BY created_at DESC;

更加复杂的场景:假设想要查询2017-12-30和2017-12-31两天所有运单的所有信息,并先按照骑手id递增,再按运单状态递减的顺序排序展示。

SELECT * FROM tb_order WHERE created_at >= "2017-12-30 00:00:00" AND created_at < "2018-01-01 00:00:00"

ORDER BY rider_id ASC, order_state DESC;

排序是有优先级:当rider_id字段的值都相同无法区分顺序时,才会对相同rider_id的这几条数据再按照order_state字段的值进行排序:举例来说,rider_id = 2且order_state = 80的数据,也依然不可能排在rider_id = 1且order_state = 40的数据前面。

分页

查询前20行的数据

SELECT created_at FROM tb_order WHERE rider_id = 1 LIMIT 20;

聚合函数:COUNT,SUM, AVG

COUNT:对查询结果集合中特定的列进行计数;

SUM:对查询结果的某个字段进行求和;

AVG:就是average的意思,对查询结果的某个字段计算平均值;

COUNT求总

COUNT一般拿来统计总数:COUNT(name):表示对name这一列进行统计如(需要注意的是COUNT不会对name=null的那一行进行计算:比如总数有20行,但是其中有一行name=null,则实际上统计出来结果是19):

SELECT COUNT() FROM tb_order;(统计表tb_order总数:单纯统计表总数)

SELECT COUNT(
) FROM tb_order WHERE rider_id = 1;(统计表tb_order条件为rider_id = 1总数:单纯统计满足条件总数)

SELECT COUNT(name) FROM tb_order;(统计表tb_order总数:以name列为准)

SELECT COUNT(name) FROM tb_order WHERE rider_id = 1;(统计表tb_order条件为rider_id = 1总数:以name列为准)

注意点:1.COUNT不会自动去重;

2.COUNT在某一条查询结果中,用来计数的那一列的值为“空"时,这条记录不进行计数;

SUM 求和

SELECT SUM(merchant_customer_distance) FROM tb_order WHERE rider_id = 1 AND order_state = 40;

AVG 求和

SELECT AVG(merchant_customer_distance) FROM tb_order WHERE rider_id = 1 AND order_state = 40;

去重:DISTINCT

COUNT(DISTINCT name)就是对去重后的name进行计数

SELECT COUNT(DISTINCT name) FROM tb_sample_1;

将查询数据分组:GROUP BY 语法

SELECT rider_id, rider_name, AVG(merchant_customer_distance)

FROM tb_order WHERE order_state = 40

AND created_at >= "2017-12-30 00:00:00"

AND created_at < "2017-12-31 00:00:00"

GROUP BY rider_id;

聚合函数的好搭档:HAVING 语法

HAVING语法的含义类似于WHERE,之所以有HAVING函数是因为WHERE语法是不能和聚合函数一起使用的,因此只能使用HAVING作为筛选条件的语法

GROUP BY rider_id将SELECT的结果根据rider_id进行分组,分组完成后HAVING AVG(merchant_customer_distance) > 1.5语句对每一组的merchant_customer_distance字段值求取平均数,并且将平均数大于1.5的结果筛选出来,作为返回结果。

SELECT rider_id, rider_name, AVG(merchant_customer_distance)
FROM tb_order WHERE order_state = 40
AND created_at >= "2017-12-30 00:00:00"
AND created_at < "2017-12-31 00:00:00"
GROUP BY rider_id
HAVING AVG(merchant_customer_distance) > 1.5;

Sql中常常接触的数据类型主要包括几类。

整型:

1:tinyint:用来表示很小很小的整数,比如常常用它作为is_deleted、is_valid这些字段的字段类型,因为这两个字段表示该条记录是否有效,只存在两个值分别是0和1;

2:smallint:比tinyint稍微大一点点的整型,可以表示更大一点的整数,比如200、404、401这样的整数值;

3:int:常用的整型,可以用来表示比较大的整数,比如10322(事实上int可以表示的整数范围远远比这个大);

4:bigint:用来表示非常大的整数,比如大多数表的自增id就会使用这个类型,可以表示类似10322903这样非常大的整数(事实上bigint可以表示的整数范围远远比这个要大);

浮点型:

1: decimal:可以表示非常准确的小数,比如经纬度;

字符串类型

char:固定长度的字符串;

varchar:可变长度的字符串;

日期类型

date:表示一个日期,只包含日期部分,不包含时间,比如当前日期"2018-01-23";

datetime:表示一个日期,同时包含日期部分和时间部分,比如当前日期"2018-01-23 03:01:43";

mysql常用基础语句学习的更多相关文章

  1. Mysql常用sql语句(3)- select 查询语句基础使用

    测试必备的Mysql常用sql语句系列 https://www.cnblogs.com/poloyy/category/1683347.html 前言 针对数据表里面的每条记录,select查询语句叫 ...

  2. mysql 常用 sql 语句 - 快速查询

    Mysql 常用 sql 语句 - 快速查询 1.mysql 基础 1.1 mysql 交互         1.1.1 mysql 连接             mysql.exe -hPup    ...

  3. Mysql 常用 SQL 语句集锦

    Mysql 常用 SQL 语句集锦 基础篇 //查询时间,友好提示 $sql = "select date_format(create_time, '%Y-%m-%d') as day fr ...

  4. Mysql 常用 SQL 语句集锦 转载(https://gold.xitu.io/post/584e7b298d6d81005456eb53)

    Mysql 常用 SQL 语句集锦 基础篇 //查询时间,友好提示 $sql = "select date_format(create_time, '%Y-%m-%d') as day fr ...

  5. Mysql常用sql语句(22)- insert 插入数据

    测试必备的Mysql常用sql语句系列 https://www.cnblogs.com/poloyy/category/1683347.html 前言 终于讲完基础的查询语句了...这篇讲的就是插入数 ...

  6. mysql常用操作语句

    mysql常用操作语句 1.mysql -u root -p   2.mysql -h localhost -u root -p database_name 2.列出数据库: 1.show datab ...

  7. 23个MySQL常用查询语句

    23个MySQL常用查询语句 一查询数值型数据: SELECT * FROM tb_name WHERE sum > 100; 查询谓词:>,=,<,<>,!=,!> ...

  8. MySQL常用经典语句

    http://www.cnblogs.com/see7di/archive/2010/04/27/2239909.html MySQL常用经典语句 .重命名表ALTER TABLE tbl1 RENA ...

  9. php面试专题---MySQL常用SQL语句优化

    php面试专题---MySQL常用SQL语句优化 一.总结 一句话总结: 原理,万变不离其宗:其实SQL语句优化的过程中,无非就是对mysql的执行计划理解,以及B+树索引的理解,其实只要我们理解执行 ...

随机推荐

  1. WPF自定义控件 依赖属性绑定

    控件cs文件 using System.ComponentModel; using System.Windows; using System.Windows.Controls; using Syste ...

  2. Codeforces 425B

    点击打开题目链接 题意:给定一个n×m的0,1矩阵,做多可以对矩阵做k次变换,每次变换只可以将矩阵的某一个元素由0变成1,或从1变成0. 求最小的变换次数使得得到的矩阵满足:每一个连通块都是一个“实心 ...

  3. 【JZOJ4841】【NOIP2016提高A组集训第4场11.1】平衡的子集

    题目描述 夏令营有N个人,每个人的力气为M(i).请大家从这N个人中选出若干人,如果这些人可以分成两组且两组力气之和完全相等,则称为一个合法的选法,问有多少种合法的选法? 数据范围 40%的数据满足: ...

  4. hdu4313 贪心+并查集

    题意简单思路也还可以.开始从小到大排序非常烦.后来从大到小就很简单了: 从大到小解决了删除的边最小. #include<stdio.h> #include<string.h> ...

  5. phpcms信息模型使用

    PHPCMS V9 分类信息模型测试版下载 安装 1.确定您的phpcms版本为20110318版本以上 2.将所有文件覆盖到网站目录下,运行install_info. 3.将文件中所有的phpcms ...

  6. GIT 用RSA加密方式来记住密码

    ssh-kegen -t rsa -C "你的帐号";//生成rsa的公钥和密钥 当然这个要在GNU环境下来执行,要是用Windows的CMD是不可以的(不输入DIR时),感觉是因 ...

  7. C++类继承中的虚方法

    #include <bits/stdc++.h> using namespace std; class A { public: void Show() { cout << &q ...

  8. 2019-8-31-dotnet-使用-lz4net-压缩-Stream-或文件

    title author date CreateTime categories dotnet 使用 lz4net 压缩 Stream 或文件 lindexi 2019-08-31 16:55:58 + ...

  9. OO第四单元博客作业

    OO第四单元博客作业 BUAA_1706_HugeGun 目录 第四单元作业架构设计 四个单元架构设计及OO方法理解 四个单元测试理解与实践演进 课程收获 一点建议 第四单元作业架构设计 ### 第十 ...

  10. php第三方登录(微博登录,仿照慕课网)

    https://www.cnblogs.com/haoyu521/p/5606931.html 1:开发之前,请大家先自行熟悉一下OAuth协议原理. 2:我们开发需要具备一个外网可访问的线上域名,如 ...