use test;
create table `employee`(
    emp_no int unsigned,
    emp_name varchar(30),
    emp_sex varchar(3),
    emp_age tinyint unsigned,
    sal double,
    history datetime
);
insert into employee values(1, '张三', '男', 18, 5000, '2012-04-23'),
(2, '李四', '男', 27, 4500, '2013-05-23'),
(3, '王五', '男', 23, 4700, '2012-04-21'),
(4, '子龙', '男', 19, 3800, '2011-03-04'),
(5, '李白', '男', 15, 6200, '2015-09-09'),
(6, '刘备', '男', 28, 2500, '2016-02-11'),
(7, '吕布', '男', 21, 6000, '2010-10-18'),
(8, '尚香', '女', 16, 4500, '2011-09-26'),
(9, '小乔', '女', 15, null, '2013-07-05'),
(10, '大乔', '女', 16, 5000, '2017-09-01');

常用的运算符:
1: 等于( = )
    select * from employee where sal = 3800;
    select * from employee where sal = null;     --这里查询不到为null的数据

2: 等于( <=> )
    select * from employee where sal <=> 3800;
    select * from employee where sal <=> null;   --这里可以查询到为null的数据

3: is判断(null)
    select * from employee where sal is null;
    select * from employee where sal is not null;

4: null值判断还可以使用isnull();
    select * from employee where isnull(sal);
    select * from employee where !isnull(sal);

5: 在区间(between)内  between min and max  ps:这里是一个闭区间
    select * from employee where sal between 4500 and 5000;

6: 不在区间内
    select * from employee where sal not between 4500 and 5000;  --null不为包括进去

7: and 和 or
    select * from employee where sal not between 4500 and 5000 or sal is null;
    select * from employee where sal = 4500 and emp_sex = '女';

8: 小于(<), 大于(>), 小于等于(<=), 大于等于(>=)
    select * from employee where sal >= 4500;
***************************************************************************************************************

数学函数
1: rand();
    select rand() from dual;   --dual是一个伪表
    select 1+1 from dual;
    select rand();   --可以简写

2: least(value1, value2, ...) 返回最小值
    select least(54,76,4,65,76,87,87,56,65,654,45,23,1,76);
    select least(54,76,4,65,76,87,87,56,65,654,45,23,1,76) as min_value;   --列名可以起一个别名

3: greatest(value1, value2, ...) 返回最大值
    select greatest(54,76,4,65,76,87,87,56,65,654,45,23,1,76);

4: round(M, D); 返回M的四舍五入的值, D表示要保留几们小数,默认值是0
    select round(1.69);
    select round(1.69, 1);

5: abs() 绝对值
    select 5-10;
    select abs(5-10);
***************************************************************************************************************

汇总函数
1: avg();
    select * from employee where sal >= 6000;
    select avg(sal) from employee where sal >= 6000;

2: count()
    select count(*) from employee;
    select count(emp_name) from employee;
    select count(sal) from employee;      --打印9 这里会忽略null值
    select count(*) from employee where sal >= 4000;
    select count(*) from employee where sal <= 4000 or sal is null;

3: sum()
    select sum(sal) from employee where sal >= 6000;

4: min()
    select min(sal) from employee;

5: max()
    select max(sal) from employee;
***************************************************************************************************************

日期函数
1: 获取当前的日期时间
    select now(), sysdate(), current_timestamp();
    select now(6), sysdate(6), current_timestamp(6);
    ps: now(), current_timestamp();没有区别, 表示sql开始执行时的时间
        sysdate()表示这个函数开始时间

2: 获取当前日期
    select curdate();   --只有年月日

3: 获取当前时间
    select curtime();   --只有时分秒

4: 日期的加运算date_add     
    select history, date_add(history, interval '1 12:10' day_minute) from employee;   --date_add(history, interval '1 12:10' day_minute)
    select history, date_add(history, interval '1-1' year_month) from employee;       --date_add(history, interval '1-1' year_month)
    select history, date_add(history, interval '1' second) from employee;             --date_add(history, interval '1' second)

5: 日期的减运算data_sub
    select history, date_sub(history, interval '1-1' year_month) from employee;  

6: 计算日期差
    select history, sysdate(), datediff(sysdate(), history) from employee;     --以天数来表示

7: 获取日期的指定部分(把日期转换为指定的格式)  date_format()
    select history, date_format(history, '%Y年%m月%d号') from employee;
    select history, date_format(history, '%d号') from employee;
    select history, date_format(history, '%Y年%m月%d号 %H时%i分%s秒') from employee;

8: 计算出一个日期是星期几
    select history, dayname(history) from employee;

9: 中文日期字符串转换日期str_to_date()
    insert into employee values(11, '张飞', '男', 22, 3000, '2017年02月01号');   --报错
    insert into employee values(11, '张飞', '男', 22, 3000, str_to_date('2017年02月01号', '%Y年%m月%d号 %H时%i分%s秒'));

    insert into employee values(12, '二哥', '男', 22, 3000, str_to_date('2017年02月01号 23时02分02秒', '%Y年%m月%d号 %H时%i分%s秒'));
    insert into employee values(12, '二哥', '男', 22, 3000, str_to_date('2017年02月01号 11时02分02秒', '%Y年%m月%d号 %h时%i分%s秒'));
    ps: 如果是h则表示12小制, 如果是大H则表示24小明制;

字符串函数
1: left(str, len) 返回字符串str的左端len个字符
    select left('abcdefg', 5);
 
2: length()
    select length('abcdefg');

3: lower(str) 返回小写的字符串str
    select lower('HELLO');

4: substring() 取子字符串, 第二个参数是截取的起始位置, 第三个参数是要截取的长度
    select substring('helloworld',2,3);

5: concat() 字符串拼接
    select concat(emp_name, '员工') from employee;

6: replace(替换
    select replace(emp_name, '李', '老') from employee where emp_name = '李四';

Mysql运算符与函数(胖胖老师)的更多相关文章

  1. MySQL运算符和函数

    运算符 1.算数运算符 加(+):mysql> SELECT 1+1; 减(-):mysql> SELECT 3-2; 乘(*):mysql> SELECT 2*3; 除(/):my ...

  2. Mysql单表查询(胖胖老师)

    数据准备drop table if exists class;create table class(    class_no int(2) unsigned zerofill primary key ...

  3. MySQL运算符和内置函数

    1.字符函数 CONCAT('a','-','b','-','c')效果等同于CONCAT_WS('-','a','b','c') FORMAT()的返回结果是字符型,会对操作数四舍五入,如:SELE ...

  4. MYSQL常见运算符和函数

    字符函数 (1)CONCAT():字符连接 SELECT CONCAT('IMOOC','-','MySQL');//IMOOC-MySQL SELECT CONCAT (first_name,las ...

  5. MySQL系列:数据类型、运算符及函数(5)

    1. 数据类型 MySQL支持多种数据类型,主要有数值类型.日期/时间类型和字符串类型. (1)数值类型:包括整数类型:TINYINT.SMALLINT.MEDIUMINT.INT.BIGINT,   ...

  6. MySQL学习总结(四)数据的基本操作以及MySQL运算符和常用函数

    数据库是存储数据库对象的仓库,数据库的基本对象是表,表用来存储数据.关于数据的操作也就是我们常说的CRUD,C指的是CREATE(插入数据记录).R指的是READ(查询数据记录).U指的是UPDATE ...

  7. Mysql常用运算符与函数汇总

    Mysql常用运算符与函数汇总 本文给大家汇总介绍了mysql中的常用的运算符以及常用函数的用法及示例,非常的全面,有需要的小伙伴可以参考下 我们先把数据表建好 use test;create tab ...

  8. MYSQL常见运算符和函数【重要】

    字符函数 (1)CONCAT():字符连接 SELECT CONCAT(‘IMOOC’,’-‘,’MySQL’);//IMOOC-MySQL SELECT CONCAT (first_name,las ...

  9. 【MySQL】01_运算符、函数

    运算符 运算符是保留字或主要用于 SQL 语句的 WHERE 子句 中的字符,用于执行操作,例如:比较和算术运算. 这些运算符用于指定 SQL 语句中的条件,并用作语句中多个条件的连词. 常见运算符有 ...

随机推荐

  1. Sagit.Framework For IOS 开发框架入门教程6:网络请求STHttp

    前言: IOS的文章,今天,再来补一篇,Sagit的教程: 虽然感觉IOS的文章没什么观众,还是努力写吧,-_-〜 Sagit 开源地址:https://github.com/cyq1162/Sagi ...

  2. iOS移动端直连数据库

    一个可以直接连接服务器MySQL的工具包(极不安全,如非特殊需求,不推荐使用) 这种直接连接服务器数据的方式是极为不安全的,但因为我们这个项目特殊情况,只在局域网内使用, 且只有一个pad对一台设备进 ...

  3. 算法题丨Longest Consecutive Sequence

    描述 Given an unsorted array of integers, find the length of the longest consecutive elements sequence ...

  4. 网络1711班 C语言第一次作业批改总结

    Testing 总结 1 本次作业评分规则 1.1 基本要求(1分) 按时交 - 有分 未交 - 0分 迟交一周以上 - 倒扣本次作业分数 抄袭 - 0分 博客作业格式不规范,没有用Markdown语 ...

  5. alpha-咸鱼冲刺day5

    一,合照 emmmmm.自然还是没有的. 二,项目燃尽图 三,项目进展 !!!QAQ可以做到跟数据库交互了!!!!先来撒花花!(然后继续甲板) 四,问题困难 日常啥都不会,百度真心玩一年. 还得自学n ...

  6. C语言--第七周作业

    一.求交错序列前N项和 1.代码 #include <stdio.h> int main() { int i=1,N; double j=0,sum=0; scanf("%d&q ...

  7. 深入理解PHP之require/include顺序

    深入理解PHP之require/include顺序 作者: Laruence(   ) 本文地址: http://www.laruence.com/2010/05/04/1450.html 转载请注明 ...

  8. js判断IE浏览器版本(IE8及以下)

    var DEFAULT_VERSION = 8.0; var ua = navigator.userAgent.toLowerCase(); var isIE = ua.indexOf("m ...

  9. js中严格模式

    我们在js中可以使用"use strict";定义了我们在接下来的文档输写中 将按照严格模式进行: function(){ "use strict'; ;// 在这里我们 ...

  10. ( 转 ) CORS 有一次 OPTIONS 请求的原理

    刚接触前端的时候,以为HTTP的Request Method只有GET与POST两种,后来才了解到,原来还有HEAD.PUT.DELETE.OPTIONS-- 目前的工作中,HEAD.PUT.DELE ...