mysql能找工作_MySQL之day5

函数

函数种类:

算术函数

字符串函数

日期函数

转换函数

聚合函数

1. 算术函数

+   -   *   /

abs  --绝对值

mod(被除数,除数)  --求余

round(对象数值, 保留小数位数)  --四舍五入

2. 字符串函数

concat(str, str2 ,...)  -- 字符串拼接

length(字符串)  --计算长度

注意:  中文一个字相当于两个字节,一个半角字符一个字节

没有SQL 还有  char_length()函数

lower(字符串)

upper()

replace(对象字符,替换前字符,替换后字符)

substring(对象字符串  from  截取的起始位置  for  截取的字符数 )

3. 日期函数

mysql> select current_date;+--------------+

| current_date |

+--------------+

| 2019-07-08 |

+--------------+

1 row in set (0.03sec)

mysql> select current_time;+--------------+

| current_time |

+--------------+

| 10:38:43 |

+--------------+

1 row in set (0.02sec)

mysql> select current_timestamp;+---------------------+

| current_timestamp |

+---------------------+

| 2019-07-08 10:39:07 |

+---------------------+

1 row in set (0.04 sec)

3.2 截取日期元素

extract(日期元素 from   日期)

mysql> select current_timestamp,-> extract(year from current_timestamp) as year,-> extract(month from current_timestamp) as month,-> extract(day from current_timestamp) as day,-> extract(hour from current_timestamp) ashour,-> extract(minute from current_timestamp) asminute,-> extract(second from current_timestamp) assecond;+---------------------+------+-------+------+------+--------+--------+

| current_timestamp | year | month | day | hour | minute | second |

+---------------------+------+-------+------+------+--------+--------+

| 2019-07-08 11:01:10 | 2019 | 7 | 8 | 11 | 1 | 10 |

+---------------------+------+-------+------+------+--------+--------+

1 row in set (0.03 sec)

4. 转换函数

字符串 ---->  数值

select cast(  as  signed integer) as

字符串 ----->日期

select  cast( as date )  as   

将null ----->其他值

coalesce(数据1, 数据2,......)    --- 如果有NULL 则转换为对于数据字符 ,没有不会转换

8f900a89c6347c561fdf2122f13be562.png

961ddebeb323a10fe0623af514929fc1.png

mysql> select * fromproduct;+------------+--------------+--------------+------------+----------------+-------------+------+

| product_id | product_name | product_type | sale_price | purchase_price | regist_date | co |

+------------+--------------+--------------+------------+----------------+-------------+------+

| 0001 | T恤 | 衣服 | 1000 | 500 | 2009-09-20 | NULL |

| 0002 | 打孔器 | 办公用品 | 500 | 320 | 2009-09-11 | NULL |

| 0003 | 运行T恤 | 衣服 | 4000 | 2800 | NULL | NULL |

| 0004 | 菜刀 | 厨房用品 | 30000 | 1400 | 2009-09-20 | NULL |

| 0005 | 高压锅 | 厨房用品 | 68000 | 2500 | 2009-01-15 | NULL |

| 0006 | 叉子 | 厨房用品 | 5000 | NULL | 2009-09-20 | NULL |

| 0007 | 砧板 | 厨房用品 | 8800 | 395 | 2008-04-28 | NULL |

| 0008 | 圆珠笔 | 办公用品 | 100 | NULL | 2009-11-11 | NULL |

| 0009 | 电视机 | 家具 | 4000 | 3000 | 2019-07-04 | NULL |

| 0010 | 电视机2 | 家具 | 40000 | NULL | 2019-07-05 | NULL |

| 0011 | 4k电视 | 家具 | 10000 | 3000 | 2019-07-07 | NULL |

| 0020 | 电视机4 | 家具 | NULL | 40001 | 2019-07-05 | NULL |

+------------+--------------+--------------+------------+----------------+-------------+------+

12 rows in set (0.04sec)

mysql> select coalesce( purchase_price , 'null')-> fromproduct;+------------------------------------+

| coalesce( purchase_price , 'null') |

+------------------------------------+

| 500 |

| 320 |

| 2800 |

| 1400 |

| 2500 |

| null |

| 395 |

| null |

| 3000 |

| null |

| 3000 |

| 40001 |

+------------------------------------+

12 rows in set (0.00 sec)

View Code

谓词

like

前方一致           ddd%

中间一致            %ddd%

后方一致            %ddd

下划线              ddd_        ----一个下划线一个字符,以此类推

模式描述

^

匹配输入字符串的开始位置。如果设置了 RegExp 对象的 Multiline 属性,^ 也匹配 '\n' 或 '\r' 之后的位置。

$

匹配输入字符串的结束位置。如果设置了RegExp 对象的 Multiline 属性,$ 也匹配 '\n' 或 '\r' 之前的位置。

.

匹配除 "\n" 之外的任何单个字符。要匹配包括 '\n' 在内的任何字符,请使用象 '[.\n]' 的模式。

[...]

字符集合。匹配所包含的任意一个字符。例如, '[abc]' 可以匹配 "plain" 中的 'a'。

[^...]

负值字符集合。匹配未包含的任意字符。例如, '[^abc]' 可以匹配 "plain" 中的'p'。

p1|p2|p3

匹配 p1 或 p2 或 p3。例如,'z|food' 能匹配 "z" 或 "food"。'(z|f)ood' 则匹配 "zood" 或 "food"。

*

匹配前面的子表达式零次或多次。例如,zo* 能匹配 "z" 以及 "zoo"。* 等价于{0,}。

+

匹配前面的子表达式一次或多次。例如,'zo+' 能匹配 "zo" 以及 "zoo",但不能匹配 "z"。+ 等价于 {1,}。

{n}

n 是一个非负整数。匹配确定的 n 次。例如,'o{2}' 不能匹配 "Bob" 中的 'o',但是能匹配 "food" 中的两个 o。

{n,m}

m 和 n 均为非负整数,其中n <= m。最少匹配 n 次且最多匹配 m 次。

mysql> select *

-> fromproduct-> where product_name like '%视%';+------------+--------------+--------------+------------+----------------+-------------+------+

| product_id | product_name | product_type | sale_price | purchase_price | regist_date | co |

+------------+--------------+--------------+------------+----------------+-------------+------+

| 0009 | 电视机 | 家具 | 4000 | 3000 | 2019-07-04 | NULL |

| 0010 | 电视机2 | 家具 | 40000 | NULL | 2019-07-05 | NULL |

| 0011 | 4k电视 | 家具 | 10000 | 3000 | 2019-07-07 | NULL |

| 0020 | 电视机4 | 家具 | NULL | 40001 | 2019-07-05 | NULL |

+------------+--------------+--------------+------------+----------------+-------------+------+

4 rows in set (0.00 sec)

between     ---包括边界

mysql> select *

-> fromproduct-> where purchase_price between 400 and 3000;+------------+--------------+--------------+------------+----------------+-------------+------+

| product_id | product_name | product_type | sale_price | purchase_price | regist_date | co |

+------------+--------------+--------------+------------+----------------+-------------+------+

| 0001 | T恤 | 衣服 | 1000 | 500 | 2009-09-20 | NULL |

| 0003 | 运行T恤 | 衣服 | 4000 | 2800 | NULL | NULL |

| 0004 | 菜刀 | 厨房用品 | 30000 | 1400 | 2009-09-20 | NULL |

| 0005 | 高压锅 | 厨房用品 | 68000 | 2500 | 2009-01-15 | NULL |

| 0009 | 电视机 | 家具 | 4000 | 3000 | 2019-07-04 | NULL |

| 0011 | 4k电视 | 家具 | 10000 | 3000 | 2019-07-07 | NULL |

+------------+--------------+--------------+------------+----------------+-------------+------+

6 rows in set (0.00 sec)

in     和  not in

mysql> select *

-> fromproduct-> where product_id in ('0002','0011');+------------+--------------+--------------+------------+----------------+-------------+------+

| product_id | product_name | product_type | sale_price | purchase_price | regist_date | co |

+------------+--------------+--------------+------------+----------------+-------------+------+

| 0002 | 打孔器 | 办公用品 | 500 | 320 | 2009-09-11 | NULL |

| 0011 | 4k电视 | 家具 | 10000 | 3000 | 2019-07-07 | NULL |

+------------+--------------+--------------+------------+----------------+-------------+------+

2 rows in set (0.37 sec)

8f900a89c6347c561fdf2122f13be562.png

961ddebeb323a10fe0623af514929fc1.png

mysql> select * fromshopproduct;+---------+-----------+------------+----------+

| shop_id | shop_name | product_id | quantity |

+---------+-----------+------------+----------+

| 000A | 东京 | 0001 | 30 |

| 000A | 东京 | 0002 | 50 |

| 000A | 东京 | 0003 | 15 |

| 000B | 名古屋 | 0002 | 30 |

| 000B | 名古屋 | 0003 | 120 |

| 000B | 名古屋 | 0004 | 20 |

| 000B | 名古屋 | 0006 | 10 |

| 000B | 名古屋 | 0007 | 40 |

| 000C | 大阪 | 0003 | 20 |

| 000C | 大阪 | 0004 | 50 |

| 000C | 大阪 | 0006 | 90 |

| 000C | 大阪 | 0007 | 70 |

| 000D | 大阪 | 0001 | 100 |

+---------+-----------+------------+----------+

13 rows in set (0.00sec)

mysql> selectproduct_name ,sale_price-> fromproduct-> where product_id in (selectproduct_id-> fromshopproduct-> where shop_id = '000B');+--------------+------------+

| product_name | sale_price |

+--------------+------------+

| 打孔器 | 500 |

| 运行T恤 | 4000 |

| 菜刀 | 30000 |

| 叉子 | 5000 |

| 砧板 | 8800 |

+--------------+------------+

5 rows in set (0.00 sec)

View Code

exists    --判断是否满足某种条件的记录  ,,  存在 的意思

注意: 关联子查询作为exists 参数

mysql> SELECTproduct_name, sale_price-> FROM Product ASP-> WHERE EXISTS (SELECT *

-> FROM ShopProduct ASSP-> WHERE SP.shop_id = '000C'

-> AND SP.product_id =P.product_id);+--------------+------------+

| product_name | sale_price |

+--------------+------------+

| 运行T恤 | 4000 |

| 菜刀 | 30000 |

| 叉子 | 5000 |

| 砧板 | 8800 |

+--------------+------------+

4 rows in set (0.00 sec)

case

分为简单CASE表达式和搜索CASE表达式两种

CASE WHEN THEN

WHEN THEN

WHEN THEN .

.

.ELSE

END    --不可省略

mysql> select sum(case when sale_price < 1000 then 1 else 0 end ) aslow_price,-> sum(case when sale_price between 1000 and 3000 then 1 else 0 end ) asmid_price,-> sum(case when sale_price >3001 then 1 else 0 end ) ashigh_price-> fromproduct;+-----------+-----------+------------+

| low_price | mid_price | high_price |

+-----------+-----------+------------+

| 2 | 1 | 8 |

+-----------+-----------+------------+

1 row in set (0.08 sec)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值