博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
mysql-5 数据检索(3)
阅读量:6341 次
发布时间:2019-06-22

本文共 2867 字,大约阅读时间需要 9 分钟。

计算字段

  • 如果想在一个字段中既显示公司的名称,又显示公司的地址,但是这两个信息一般包含在不同的表列中
  • 城市、州和邮政编码存储在不同的列中,但是邮件标签打印程序却需要把它们作为一个恰当格式的字段检索出来
  • 物品订单表存储物品的价格和数量,但不需要存储每个物品的总价格,为了打印发票,需要物品的总价
  • 需要根据表数据进行总数、平均数计算或者其它计算

拼接字段

例子:vendors表包含供应商名和位置信息。假如要生成一个供应商报表,需要在供应商的名字中按照name(location)这样的格式列出供应商信息。此报表需要单个值,而表中数据存储在两个列vend_name和vend_country中,此外,需要用括号将vend_country括起来,这些东西都没有明确存储在数据表中,我们来看看怎么样编写返回供应商名和位置的select语句

SELECT CONCAT(vend_name, ' (',vend_country,')') FROM vendors ORDER BY vend_name;

这里用到了concat函数,拼接串,即把多个串连接起来形成一个较长的串,concat需要一个或者多个指定的串,各个串之间用逗号分隔

SELECT CONCAT(RTRIM(vend_name),' (',RTRIM(vend_country),')') FROM vendors ORDER BY vend_name;

rtrim函数去掉值右边的所有空格,通过使用rtrim(),各个列都进行了整理

使用别名

SELECT CONCAT(RTRIM(vend_id),' (',RTRIM(vend_country),')') AS vend_title FROM vendors ORDER BY vend_name;

执行算数计算

SELECT prod_id ,quantity ,item_price FROM orderitems WHERE order_num = 20005;

SELECT prod_id ,quantity ,item_price, quantity*item_price AS expanded_price  FROM orderitems WHERE order_num = 20005;

使用数据处理函数

upper()函数

SELECT vend_name ,UPPER(vend_name) AS vend_name_upcase FROM vendors ORDER BY vend_name;

     函数                                     说明

   Left()                        返回串左边的字符

   Length()                   返回串的长度

   Locate()                   找出串的一个子串

   Lower()                    将串转换为小写

   LTrim()                     去掉串左边的空格

   Right()                     返回串右边的字符

   RTrim()                    去掉串右边的空格

   Soundex()               返回串的soundex值

   SubString()             返回子串的字符

   upper()                    将串转为大写

 

SELECT cust_name , cust_contact FROM customers WHERE SOUNDEX(cust_contact)=SOUNDEX('Y lie');

查找与lie发音相似的cust_contact的列

 日期和时间处理函数

 

SELECT cust_id , order_num FROM orders WHERE order_date = '2005-09-01';
SELECT cust_id , order_num FROM orders WHERE DATE(order_date) = '2005-09-01';

SELECT cust_id , order_num ,order_date FROM orders WHERE DATE(order_date) BETWEEN '2005-09-01' AND '2005-09-30';
SELECT cust_id ,order_num,order_date FROM orders WHERE YEAR(order_date)= 2005 AND MONTH(order_date)= 9;

9月份的所有订单

SELECT CONCAT(vend_name, ' (',vend_country,')') FROM vendors ORDER BY vend_name;SELECT CONCAT(RTRIM(vend_name),' (',RTRIM(vend_country),')') FROM vendors ORDER BY vend_name;SELECT CONCAT(RTRIM(vend_id),' (',RTRIM(vend_country),')') AS vend_title FROM vendors ORDER BY vend_name;SELECT prod_id ,quantity ,item_price FROM orderitems WHERE order_num = 20005;SELECT prod_id ,quantity ,item_price, quantity*item_price AS expanded_price FROM orderitems WHERE order_num = 20005;SELECT vend_name ,UPPER(vend_name) AS vend_name_upcase FROM vendors ORDER BY vend_name;SELECT cust_name , cust_contact FROM customers WHERE SOUNDEX(cust_contact)=SOUNDEX('Y lie');SELECT cust_name , cust_contact FROM customers;SELECT cust_id , order_num FROM orders WHERE order_date = '2005-09-01';SELECT cust_id , order_num FROM orders WHERE DATE(order_date) = '2005-09-01';SELECT cust_id , order_num ,order_date FROM orders WHERE DATE(order_date) BETWEEN '2005-09-01' AND '2005-09-30';SELECT cust_id ,order_num,order_date FROM orders WHERE YEAR(order_date)= 2005 AND MONTH(order_date)= 9;

 

转载于:https://www.cnblogs.com/kafeikele/p/6095913.html

你可能感兴趣的文章
Oracle运算符收录(易忘记,但是又很重要的运算符)
查看>>
POJ 2062 Card Game Cheater
查看>>
'ascii' codec can't decode byte 0xd6 in position 0
查看>>
TPVJ水题
查看>>
OWINS是什么(转载)
查看>>
在一台电脑访问另一台电脑的mysql数据库
查看>>
指针数组与数组指针
查看>>
python之MySQL学习——数据操作
查看>>
Quartz定调度简单案例
查看>>
关于微信小程序 modal弹框组件的介绍
查看>>
给一系列的div中的第一个添加class
查看>>
centos6.8 安装jenkins
查看>>
vue-cli3.0+node.js+axios跨域请求session不一样的问题
查看>>
C#发送DKIM签名的邮件
查看>>
python中获取字典的key列表和value列表
查看>>
Windows8中使用IE8等低版本浏览器
查看>>
[图形图像]一次光线追踪的尝试
查看>>
C# 中out,ref,params参数的使用
查看>>
玩转VIM编辑器-vim附加特性
查看>>
Ubuntu下有关Java和数据库的一些工作记录(二)
查看>>