MySQL运算符和常用函数

描述

  1. 运算符
    1. 查询 t_employee 表中员工的年薪(包含每月奖金)
    2. 举例说明 = 和 <=> 运算符的区别
    3. 查询出名字中带有“AM”字符串的员工
    4. 查询出名字以“JA”字符串开头的员工
    5. 查询出名字以“ES”字符串结尾的员工
    6. 查询出名字中不包含“SMI”字符串中任意字符的员工
    7. 查询出名字中以“SMI”字符串开头的员工,其中的M字符可以出现1~3次
  2. 常用函数(以下内容可以直接用常量字段测试)
    1. 使用函数获得一个数的四舍五入的整数值
    2. 使用函数获得一个数的绝对值
    3. 使用函数连接两个字符串
    4. 使用函数返回从字符串‘abcdef’左边开始的3个字符
    5. 使用函数去除字符串‘ abcdef ’两边的空格
    6. 使用函数比较两个字符串的大小
    7. 列举出常用的日期和时间函数
    8. 返回当前用户
    9. 返回最近生成的auto_increment值

分析

第1题 - 查询 t_employee 表中员工的年薪(包含每月奖金)

  1. 年薪 = 12 * 月薪 + 奖金
  2. 奖金可能为 null
select empno,  sal * 12 + IFNULL(comm,0) 年薪 from t_employee;

第2题 - 举例说明 = 和 <=> 运算符的区别

  1. 打开 MySQL 5.7 Command Line Client
  2. 输入密码后
  3. 输入 ? <=>
  4. 观察到如下结果
mysql> SELECT 1 <=> 1, NU
        -> 1, 1, 0
mysql> SELECT 1 = 1, NULL
        -> 1, NULL, NULL

第3题 - 查询出名字中带有“AM”字符串的员工

  1. 模糊查询
  2. 通配符和like关键词均可
-- 使用 like 关键字
select t_employee.ename from t_employee where t_employee.ename like "%AM%";

-- 使用 REGEXP 通配符
select t_employee.ename from t_employee where t_employee.ename REGEXP "AM";

第4题 - 查询出名字以“JA”字符串开头的员工

-- 使用 like 关键字
select t_employee.ename from t_employee where t_employee.ename like "JA%";

-- 使用 REGEXP 通配符
select t_employee.ename from t_employee where t_employee.ename REGEXP "^JA";

第5题 - 查询出名字以“ES”字符串结尾的员工

  1. % 表示任意字符,0个或多个
  2. $ 表示以…结尾
-- 使用 like 关键字
select t_employee.ename from t_employee where t_employee.ename like "%ES";

-- 使用 REGEXP 通配符
select t_employee.ename from t_employee where t_employee.ename regexp "ES$";

第6题 - 查询出名字中不包含“SMI”字符串中任意字符的员工

select ename from t_employee where ename regexp '^[^SMI]+$';

第7题 - 查询出名字中以“SMI”字符串开头的员工,其中的M字符可以出现1~3次

-- 使用 REGEXP 通配符
select ename from t_employee where ename REGEXP "^SM{1,3}I";

第8题

  1. 使用函数获得一个数的四舍五入的整数值
  2. 使用函数获得一个数的绝对值
  3. 使用函数连接两个字符串
  4. 使用函数返回从字符串‘abcdef’左边开始的3个字符
  5. 使用函数去除字符串‘ abcdef ’两边的空格
  6. 使用函数比较两个字符串的大小
  7. 列举出常用的日期和时间函数
  8. 返回当前用户
  9. 最近生成的auto_increment值
 select round(2.3), round(3.8) 
 -- 2, 4

select abs(-123), abs(123);
-- 123, 123

select CONCAT("Good?","Yes i am .");
-- Good?Yes i am .

select left("abcdef", 3);
-- abc
    select right("abcdef", 3);
    -- def
    select right("abcdef", 10);
    -- abcdef

select TRIM("  abcdef   ")
-- abcdef
    select LTRIM("  abcdef   ")
    -- abcdef   
    select RTRIM("  abcdef   ")
    --   abcdef

select NOW(), CURDATE(),CURTIME();
-- 2018-05-17 20:37:10  2018-05-17  20:37:10

select STRCMP("abc","abcd"),STRCMP("abc","abd"),STRCMP("abc","abb"),STRCMP("abc","abc");
-- -1 , -1, 1, 0

SELECT DATABASE(),VERSION(),USER();
-- exercisemysql    5.7.21-log  root@localhost

select LAST_INSERT_ID();
-- 0
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值