mysql学习笔记(11-20)

以你之姓@ 2023-05-31 12:25 47阅读 0赞

十一、使用数据处理函数

1.文本处理函数

  1. select vend_name,upper(vend_name) AS vend_name_upcase
  2. from vendors
  3. order by vend_name; //很明显转化为大写

watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9taWRpNjY2LmJsb2cuY3Nkbi5uZXQ_size_16_color_FFFFFF_t_70

watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9taWRpNjY2LmJsb2cuY3Nkbi5uZXQ_size_16_color_FFFFFF_t_70 1

SOUNDEX是一个将任何文本串转换为描述其语音表示的字母数字模式的算法。SOUNDEX考虑了类似的发音字符和音节,使得能对串进行发音比较而不是字母比较。

  1. select cust_name,cust_contact
  2. from customers
  3. where soundex(cust_contact)=soundex('Y Lie');

在这个例子中,WHERE子句使用Soundex()函数来转换cust_ contact列值和搜索串为它们的SOUNDEX值。因为Y.Lee和Y.Lie发音相似,所以它们的SOUNDEX值匹配,因此WHERE子句正确地过滤出了所需的数据。

2.日期和时间处理函数

watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9taWRpNjY2LmJsb2cuY3Nkbi5uZXQ_size_16_color_FFFFFF_t_70 2

不管是插入或更新表值还是用WHERE子句进行过滤,日期必须为格式yyyy-mm-dd。

  1. select cust_id,order_num
  2. from orders
  3. where order_date = '2005-09-01';
  4. //上面这种写法不好,应为如果是 2005-09-01 11:30:05 就会匹配失败

解决办法是指示MySQL仅将给出的日期与列中的日期部分进行比较,而不是将给出的日期与整个列值进行比较。为此,必须使用Date()函数。Date(order_date)指示MySQL仅提取列的日期部分,更可靠的SELECT语句为:

  1. select cust_id,order_num
  2. from orders
  3. where date(order_date)= '2005-09-01';

同样,只需要时间的话,用Time()函数

如果你想检索出2005年9月下的所有订单,怎么办?

  1. //方法一
  2. select cust_id,order_num
  3. from orders
  4. where date(order_date) between '2005-09-01' and '2005-09-30';
  5. //方法二
  6. select cust_id,order_num
  7. from orders
  8. where year(order_date)=2005 and month(order_date)=9;

3.数值处理函数

watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9taWRpNjY2LmJsb2cuY3Nkbi5uZXQ_size_16_color_FFFFFF_t_70 3

发表评论

表情:
评论列表 (有 0 条评论,47人围观)

还没有评论,来说两句吧...

相关阅读

    相关 MYSQL学习笔记

    MYSQL学习笔记 一. MYSQL分层 > 1、连接层:负责数据库连接; > 2、服务层:负责解析查询(编译SQL),并对其进行优化(SQL优化器 SQL Q

    相关 MySQL学习笔记

    数据库应用场景 咨询类型网站:存新闻,存评论,存用户信息 电商类:商品,订单,用户信息 社交类:微博,用户信息,用户微博信息,评论信息 课程介绍: ![I