MySQL必知必会!!!看这一篇就足够了!!!

目录

SELECT语句

关键字

排序

单列排序

按多个列排序

指定排序方向

排序+限制

WHERE关键字

AND  OR关键词

IN操作符

NOT操作符

通配符

LIKE通配符

%通配符

下划线“_”通配符

用正则表达式进行搜索

REGEXP

 进行OR匹配

匹配几个字符之一

“-”字符

“\\”匹配特殊字符

 匹配字符类

创建计算字段

拼接将值联结到一起构成单个值

 别名用AS关键字赋予

执行算术计算

MySQL函数

 文本处理函数

Upper()函数可将文本转成大写

常用的文本处理函数

日期和时间处理函数

常用日期和时间处理函数

 数值处理函数

汇总数据

概念

聚集函数

DINTINCT参数

数据分组

GROUP BY子句

 过滤分组

归纳SELECT子句的顺序

 子查询


SELECT语句

关键字

SELECT * FROM  products                "*"  通配符

SELECT  DISTINCT   id  FROM  products         DISTINCT排重

SELECT   name  FROM  products   LIMIT   5                 LIMIT 指示MySQL返回不多于五行

LIMIT3,4    指从行3开始的4行

排序

单列排序

SELECT  name  FROM   products  ORDER   BY name

将name列以字母顺序排序

按多个列排序

SELECT  id, name, price  FROM  products  ORDER  BY   price ,name

首先按价格再按名字排序

指定排序方向

SELECT   id,price,name  FROM  products  ORDER   BY  price  DESC

DESC  降序排序(只指定位于前面的列名)

如果想在多个列上进行降序排序,则需要对每个列指定DESC关键字

排序+限制

SELECT  price   FROM products  ORDER  BY  price  DESC  LIMIT   1

WHERE关键字

SELECT  name,price  FROM  products  WHERE  price = 2.50

ORDER  BY  应位于WHERE之后

WHERE子句操作符<,>,=,>=,<=,!=,<>,BETWEEN

WHERE price  BETWEEN  5  AND  10

WHERE  price   IS   NULL

*不能返回具有NULL值的行

AND  OR关键词

WHERE  id=1003  AND   price<=10

AND联结关键词

OR或关键词

用 圆括号明确分组

IN操作符

 IN与OR的功能具有相同的功能,但是IN更好就是了

NOT操作符

NOT  WHERE 子句中用来否定后跟条件的关键字

SELECT  name,price  FROM  products WHERE  id  NOT  IN(1002,1003)

意思就是匹配1002和1003之外的id

通配符

LIKE通配符

%通配符

%表示任何字符出现任意次数

例如,找出所有以词jet起头的产品,可用以下语句

SELECT  id,name  FROM  products  WHERE  name   LIKE  ‘jet%’;

同理‘%anvil’可以匹配任何位置包含文本anvil的值

‘s%e’可以匹配以s起头以e结尾的所有值

%通配符不能匹配NULL

注意MYSQL搜索可以是区分大小写的,这根据你的MySQL的配置

下划线“_”通配符

下划线与%用法相同,但是下划线只能匹配单个字符而不是多个字符。

举个栗子

SELECT  id,name  FROM  products  WHERE  name  LIKE  ‘_  ton  anvil’;

用正则表达式进行搜索

REGEXP

SELECT   name  FROM  products  WHERE   name  REGEXP  ‘1000’  ORDER  BY  name;

MySQL的正则表达式不区分大小写,若要区分大小写,则可使用BINARY关键字,例如

"."可以匹配任意的字符

WHERE   name  REGEXP  BINARY  ‘JetPack  .000’

 进行OR匹配

WHERE  name  REGEXP  ‘1000|2000’  ORDER  BY name

匹配几个字符之一

SELECT  name  FROM  products  WHERE  name  REGEXP  ‘[123] Ton’  ORDER  BY  name

这里使用了正则表达式[123] Ton,它的意思是匹配1或2或3,作用类似于IN关键字,是[1|2|3]的缩写

字符集合也可以被否定,在集合开始处放置一个"∧"即可,例如[∧123],就可以匹配除123之外的字符

“-”字符

“-”可以用来定义一个范围,例如[1-9],[a-z]都可以

举个栗子

SELECT   name  FROM  products  WHERE  name  REGEXP ‘[1-5]Ton’

“\\”匹配特殊字符

若要匹配这些关键字字符,例如“-”,“.”这些我们该怎么做呢

为了匹配特殊字符,必须要用“\\”为前导,例如

SELECT  name  FROM  products  WHERE  name  REGEXP  ‘\\.’

“\\”也用来引用元字符

为了匹配反斜杠“\”字符本身,需要使用"\\\"

 匹配字符类

 正则表达式部分略过

创建计算字段

当我们需要从数据库中检索出转换,计算,或格式化过的数据,就要用到计算字段

拼接将值联结到一起构成单个值

解决办法是吧两个列拼接起来,可使用Concat()函数来拼接两个列

 别名用AS关键字赋予

SELECT Concat(RTrim(name,'  (',RTrim(country),  ')') AS  title  FROM  vendors  ORDER  BY  name ;

语句本身与上一句相同,但是它指示SQL创建一个包含指定计算的名为title的计算字段,任何客户机都可以按名引用这个列

RTrim可以去掉右边的所有空格,LTrim可以去掉左边的所有空格,Trim可以去掉两边的空格

执行算术计算

 

MySQL函数

 文本处理函数

Upper()函数可将文本转成大写

SELECT  name,Upper(name)  AS  name——upcase

FROM  vendors

ORDER  BY  name

常用的文本处理函数

日期和时间处理函数

常用日期和时间处理函数

 MySQL使用的日期格式,日期格式必须为yyyy-mm-dd。

例如

SELECT  id  ,num  FROM  orders  WHERE  date=‘2005-09-01’;

若要检索出九月份的所有数据,可用:

SELECT  id,num  FROM  orders  WHERE  Date(order_date)  BETWEEN '2005-09-01' AND '2005-09-30';

 数值处理函数

汇总数据

概念

我们经常需要汇总数据而不用把他们实际检索出来,这时候就要用到聚集函数

 这种类型的检索例子有:

*  确定表中函数

*  获得表中行组的和

*  找出表列的最大值最小值和平均值

聚集函数

以第一个函数AVG()为例

SELECT  AVG(price) AS avg_price  FROM  products;

返回值为avg_price,为products表中的所有产品的价格的平均值

 

 

DINTINCT参数

DINTINCT即可做到排重,相同的数字不包含在聚集函数的计算范围内

数据分组

GROUP BY子句

举个栗子

 

GROUP BY可以根据指定数据进行分组,然后对于每个组内的数据进行聚集

 过滤分组

我们知道WHERE有过滤的作用,但是WHERE是对行进行过滤, 对于分组,我们可以用到HAVING子句进行对分组的过滤,语法与WHERE相同。

例如

WHERE与HAVING的同时使用

归纳SELECT子句的顺序

 子查询

即是嵌套在其他查询中的查询

——待续——

  • 1
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值