mysql-5 数据检索(3)
计算字段
- 如果想在一个字段中既显示公司的名称,又显示公司的地址,但是这两个信息一般包含在不同的表列中
- 城市、州和邮政编码存储在不同的列中,但是邮件标签打印程序却需要把它们作为一个恰当格式的字段检索出来
- 物品订单表存储物品的价格和数量,但不需要存储每个物品的总价格,为了打印发票,需要物品的总价
- 需要根据表数据进行总数、平均数计算或者其它计算
拼接字段
例子: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 = ;
SELECT prod_id ,quantity ,item_price, quantity*item_price AS expanded_price FROM orderitems WHERE order_num = ;
使用数据处理函数
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)= AND MONTH(order_date)= ;
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 = ;
SELECT prod_id ,quantity ,item_price, quantity*item_price AS expanded_price FROM orderitems WHERE order_num = ;
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)= AND MONTH(order_date)= ;
mysql-5 数据检索(3)的更多相关文章
- 【译】MongoDb vs Mysql—以NodeJs为例
亲爱的读者,您可能想知道为什么要写关于MongoDb和MySql这篇文章.那是因为我与NodeJs开发人员讨论在应用程序中使用哪种数据存储作为主要的数据存储方式. 我看过很多评论都在争论这个问题. 有 ...
- MySql必知必会实战练习(二)数据检索
在上篇博客MySql必知必会实战练习(一)表创建和数据添加中完成了各表的创建和数据添加,下面进行数据检索和过滤操作. 1. Select子句使用顺序 select--->DISTINCT---& ...
- MySQL笔记(二)之数据检索常用关键字
SELECT 用于数据的选择 语法: SELECT 列 FROM 表; #从表中选择某些列,也可以是*,代表全部列 DISTINCT 当某些列包含重复值的时候,DISTINCT用于过滤掉重复值,使重复 ...
- MySQL数据检索时,sql查询的结果如何加上序号
1.sql语法 @i:类型java定义的变量 @i:=0:这里类似给i初始化值为0 @i:=@i+1 :每次从0开始递增+1 SELECT (@i:=@i+1) as id,TDLINE FROM Y ...
- MySQL常见面试题
1. 主键 超键 候选键 外键 主 键: 数据库表中对储存数据对象予以唯一和完整标识的数据列或属性的组合.一个数据列只能有一个主键,且主键的取值不能缺失,即不能为空值(Null). 超 键: 在关系中 ...
- 一个高级的J2E工程师需要面对MySQL要有那些基本功夫呢<上>
1. MySQL的架构介绍1.1 MySQL简介: MySQL是一个关系型数据库管理系统,由瑞典MySQL AB公司开发,目前属于Oracle公司. MySQL是一种关联数据库管理系统,将数据保存在不 ...
- MySQL性能优化:索引
MySQL性能优化:索引 索引提供指向存储在表的指定列中的数据值的指针,然后根据您指定的排序顺序对这些指针排序.数据库使用索引以找到特定值,然后顺指针找到包含该值的行.这样可以使对应于表的SQL语句执 ...
- MySQL性能优化总结
一.MySQL的主要适用场景 1.Web网站系统 2.日志记录系统 3.数据仓库系统 4.嵌入式系统 二.MySQL架构图: 三.MySQL存储引擎概述 1)MyISAM存储引擎 MyISAM存储引擎 ...
- mysql-7 数据检索(5)
联结(join) SQL最强大的功能之一就是能在数据检索查询的执行中联结(join)表.联结就是利用SQL的SELECT能执行的最重要的操作. 例子:此例子包含两个表,一个表是vendors , ve ...
- mysql缓存、存储引擎
一. mysql查询缓存 查询缓存不是mysql的子系统,却是查询优化和执行子系统不可缺少的组成部分.它不仅可以缓存查询结果,还可以缓存查询结果本身.如果某个查询的结果就在缓存里, 系 ...
随机推荐
- Spark集群 + Akka + Kafka + Scala 开发(3) : 开发一个Akka + Spark的应用
前言 在Spark集群 + Akka + Kafka + Scala 开发(1) : 配置开发环境中,我们已经部署好了一个Spark的开发环境. 在Spark集群 + Akka + Kafka + S ...
- Web Service代理类生成工具
本文原文连接:http://www.cnblogs.com/dengxinglin/p/3334158.html 之前一篇文章写 Web Service服务代理类生成及编译 , 通过命令行的方式可以直 ...
- 使用CTE解决复杂查询的问题
最近,同事需要从数个表中查询用户的业务和报告数据,写了一个SQL语句,查询比较慢: Select S.Name, S.AccountantCode, ( Select COUNT(*) from ( ...
- 多平台下Modbus通信协议库的设计(一)
1.背景 1.1.范围 MODBUS 是 OSI 模型第 7 层上的应用层报文传输协议, 它在连接至不同类型总线或网络的设备之间提供客户机/服务器通信. 自从 1979 年出现工业串行链路的事实标准以 ...
- Converse.js – 开源的 XMPP 聊天客户端
Converse.js 是一个运行在浏览器的免费和开源的聊天客户端.它可以集成到任何网页.类似于 Facebook 的聊天,它也支持多用户聊天室.Converse.js 可以连接到任何可访问的 XMP ...
- 20个新鲜出炉的网站模板【HTML & PSD】
这里给大家分享20 个新鲜出炉的免费网站模板.这些设计元素将成为你下一个项目的重要素材,可以帮你节省很多的时间.与往常一样,我们经常漫游网络,寻找最好的资源, HTML.CSS 和 PSD 等等,记得 ...
- babel 无法解析jsx (webpack react )
webpack.config.js的配置如下图: 报错: 修改webpack.config.js文件,如下即可:
- [原创]html5游戏_贪吃蛇
代码随便写写,尚有许多不足,PC与手机端皆可运行 手机端滑屏操作,PC端方向键操作 疑问: 生成食物,与判断是否可以移动方面 有两种实现方式, 1.使用js内存,数组循环判断 2.使用dom的quer ...
- CSS的盒子模型
1.边框:包裹内容的容器 统一设置:border: border-width border-style border-color 上:border-top 下:border-bottom 左:bord ...
- jQuery.buildFragment源码分析以及在构造jQuery对象的作用
这个方法在jQuery源码中比较靠后的位置出现,主要用于两处.1是构造jQuery对象的时候使用 2.是为DOM操作提供底层支持,这也就是为什么先学习它的原因.之前的随笔已经分析过jQuery的构造函 ...