SQL必知必会 ——– 通配符、总计字段、函数

2.利用通配符的技能

正如所见,SQL的通配符很有用。但这种功效是有代价的,即通配符搜索一般比后面议论的其余搜索要消耗更长的处理时间。这里给出一些使用通配符时要铭记的技术。

  • 毫然而分施用通配符。即使另外操作符能达到同等的目的,应该利用其它操作符。
  • 在真正需要拔取通配符时,也硬着头皮不要把它们用在查找模式的启幕处。把通配符置于先河处,搜索起来是最慢的。
  • 周到留意通配符的地方。假若放错位置,可能不会回去想要的多少。

不问可知,通配符是一种极其首要和管事的检索工具,未来我们平日会用到它。

4.利用函数

4.1文本处理数据

全部字母变为大写:

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

MySQL 1

 

可以见到,UPPER()将文件转换为大写,由此本例子中各个供应商都列出两回,第一次为Vendors表中蕴藏的值,第二次作为列vend_name_upcase转换为大写。

MySQL 2

4.2日子和岁月处理函数

这一个在不同的数据库中距离相比较大

MySQL和玛丽亚(Maria)DB具有各类日期处理函数,但不曾DATEPART()。MySQL和Maria(Maria)DB用户可拔取名为YEAR()的函数从日期中提取年份:
输入:
SELECT
order_num
FROM Orders
WHERE YEAR(order_date) = 2012;

4.3数值处理函数

MySQL 3

数值函数都是大抵的,自行看文档解决即可。

作者:今孝
出处:http://www.cnblogs.com/jinxiao-pu/p/6817187.html 
正文版权归作者和知乎共有,欢迎转载,但未经作者同意必须保留此段阐明,且在著作页面显明地点给出原文连接。

以为好就点个推荐把!

1.LIKE操作符

1.1**百分号(%)通配符**

SELECT
prod_id, prod_name FROM Products WHERE prod_name LIKE
‘Fish%

MySQL 4

此例子使用了查找形式’Fish%’。在实践这条子句时,将追寻任意以Fish起初的词。%告诉DBMS接受Fish之后的随机字符,不管它有稍许字符。

声明:区分轻重缓急写
依照DBMS的不等及其配置,搜索可以是分别轻重缓急写的。倘若分别轻重缓急写,则’fish%’与Fish
bean bag toy就不兼容。

通配符可在搜寻形式中的任意地点应用,并且可以采纳四个通配符。下边的例证使用三个通配符,它们位于格局的两端
:
SELECT prod_id,
prod_name FROM Products WHERE prod_name LIKE ‘%bean bag%’ 
MySQL 5

内需特别注意,除了能匹配一个或多少个字符外,%仍可以匹配0个字符。%代表搜索情势中加以地方的0个、1个或两个字符。

警告:请注意NULL
通配符%看起来像是可以兼容任何东西,但有个例外,那就是NULL。子句WHERE
prod_name LIKE ‘%’不会配合产品名称为NULL的行。

1.2下划线(_)通配符

SELECT
prod_id, prod_name FROM Products WHERE prod_name LIKE
__ inch teddy bear’

MySQL 6

下划线的用途与%一模一样,但它只匹配单个字符,而不是三个字符。

1.3方括号([])通配符

方括号([])通配符用来指定一个字符集,它必须配合指定地方(通配符的职位)的一个字符。

讲明:并不连续扶助集合
与眼前描述的通配符不同等,并不是装有DBMS都援助用来创建集合的[]MySQL,。只有微软的Access和SQL Server补助集合。为确定你接纳的DBMS是否协助集合,请参阅相应的文档。

SELECT
cust_contact
FROM Customers
WHERE cust_contact LIKE
‘[JM]%’
ORDER BY cust_contact;

此通配符可以用前缀字符^(脱字号)来否认。 

3.创制总结字段

3.1拼接字段

mysql语法:

SELECT
Concat
(vend_name, ‘ (‘, vend_country, ‘)’ AS
vend_title FROM Vendors
ORDER BY
vend_name;

MySQL 7

concat()首假诺剔除多余的空格。

SELECT语句我与以前使用的同样,只不过这里的盘算字段之后跟了文本AS
vend_title。它指示SQL创立一个饱含指定总结结果的名为vend_title的统计字段。从出口可以见到,结果与往日的平等,但近日列名为vend_title,任何客户端应用都可以按名称引用这些列,就像它是一个事实上的表列一样。
说明:**AS**通常可选
在诸多DBMS中,AS关键字是可选的,然而最好利用它,这被视为一条最佳实践。
提醒:别名的其余用途
别名还有此外用途。常见的用途包括在其实的表列名包含不合法的字符(如空格)时重新命名它,在原来的名字含混或易于误解时扩展它。
警告:别名
别名既可以是一个单词也足以是一个字符串。假如若后人,字符串应该括在引号中。即便这种做法是合法的,但不提出这样去做。多单词的名字可读性高,不过会给客户端应用带来各类题材。由此,别名最广泛的应用是将三个单词的列名重命名为一个单词的名字。
说明:导出列
别名有时也称为导出列(derived column),不管怎么叫,它们所表示的是平等的东西。

3.2执行算术总结

算算字段的另一常见用途是对寻找出的数量开展算术总括。

SELECT
order_num,
prod_id,
quantity,
item_price,
quantity*item_price AS expanded_price
FROM
OrderItems
WHERE
order_num = 20008;

MySQL 8

出口中展现的expanded_price列是一个测算字段,此测算为quantity*item_price。

MySQL 9

 

提拔:怎么样测试总括
SELECT语句为测试、检验函数和计量提供了很好的方法。即便SELECT通常用于从表中检索数据,可是简单了FROM子句后固然简单地拜会和处理表明式,例如SELECT
3 * 2;将赶回6,SELECT
Trim(‘ abc ‘);将赶回abc,SELECT
Now();使用Now()函数重回当前些天期和时间。现在你了然了,能够遵照需要运用SELECT语句举办考查。

网站地图xml地图