我们先把数据表建好

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');
 select * from employee where sal = 3800; select * from employee where sal = null;  --这里查询不到为null的数据
 select * from employee where sal <=> 3800; select * from employee where sal <=> null; --这里可以查询到为null的数据
 select * from employee where sal is null; select * from employee where sal is not null;
 select * from employee where isnull(sal); select * from employee where !isnull(sal);

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 = '女';

select * from employee where sal >= 4500;

***************************************************************************************************************

数学函数
1: rand();

 select rand() from dual; --dual是一个伪表 select 1+1 from dual; select rand(); --可以简写
 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; --列名可以起一个别名

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);
 select 5-10; select abs(5-10);

汇总函数

1: avg();

 select * from employee where sal >= 6000; select avg(sal) from employee where sal >= 6000;
 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;

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()表示这个函数开始时间

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)

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;

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秒'));

字符串函数

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 = '李四';

更多相关文章

  1. ES6 变量声明,箭头函数,数组方法,解构赋值,JSON,类与继承,模块化练习
  2. 箭头函数的基础使用
  3. Python技巧匿名函数、回调函数和高阶函数
  4. 浅析android通过jni控制service服务程序的简易流程
  5. Android(安卓)bluetooth介绍(四): a2dp connect流程分析
  6. Android架构分析之使用自定义硬件抽象层(HAL)模块
  7. Android中OpenMax的适配层
  8. android 包管理系统分析
  9. Android中获取屏幕相关信息(屏幕大小,状态栏、标题栏高度)

随机推荐

  1. Android使用Google提供的地图实现定位时L
  2. Android实现自定义对话框(Dialog)
  3. Android 系统音量最大值的定义位置以及默
  4. android .apk 反编译
  5. Android(安卓)串口通信编程及串口协议分
  6. 【Android】Android Studio中gradle scri
  7. Flutter1.12与原生Android交互(kotlin)
  8. android开发 常用技巧
  9. android 源码导入到android studio
  10. 【译】Android 6.0接口变化(三)(Android 6.0