MYSQL学习笔记DQL(四)

笔记资料来自黑马程序员。

一,基本查询     

1,概念

数据库管理系统一个重要功能就是数据查询,数据查询不应只是简单返回数据库中存储的数据,还应该根据需要对数据进行筛选以及确定数据以什么样的格式显示。MySQL提供了功能强大、灵活的语句来实现这些操作。MySQL数据库使用select语句来查询数据。数据库管理系统一个重要功能就是数据查询,数据查询不应只是简单返回数据库中存储的数据,还应该根据需要对数据进行筛选以及确定数据以什么样的格式显示。MySQL提供了功能强大、灵活的语句来实现这些操作。MySQL数据库使用select语句来查询数据。

2,语法

语法格式:

简化版语法

 

二,简单查询

 

 注意:去掉重复值是指输出的界面中没有重复值,但是不会影响表中的值。

三,运算符

1,算术运算符

算术运算符

说明

+

加法运算

-

减法运算

*

乘法运算

/ 或  DIV

除法运算,返回商

% 或  MOD

求余运算,返回余数

2,比较运算符

比较运算符

说明

=

等于

<        <=

小于和小于等于

>        >=

大于和大于等于

<=>

安全的等于,两个操作码均为NULL时,其所得值为1;而当一个操作码为NULL时,其所得值为0

<> !=

不等于

IS NULL  ISNULL

判断一个值是否为 NULL

IS NOT NULL

判断一个值是否不为 NULL

LEAST

当有两个或多个参数时,返回最小值

GREATEST

当有两个或多个参数时,返回最大值

BETWEEN AND

判断一个值是否落在两个值之间

IN

判断一个值是IN列表中的任意一个值

NOT IN

判断一个值不是IN列表中的任意一个值

LIKE

通配符匹配

REGEXP

正则表达式匹配

 3,逻辑运算符

逻辑运算符

说明

NOT 或者 !

逻辑非

AND 或者 &&

逻辑与

OR 或者 ||

逻辑或

XOR

逻辑异或

4,位运算符

位运算符

说明

|

按位或

&

按位与

^

按位异或

<< 

按位左移

>> 

按位右移

~

按位取反,反转所有比特

5,操作-算术运算符

6,条件查询

 

四,排序查询

 1,介绍

如果我们需要对读取的数据进行排序,我们就可以使用 MySQL order by 子句来设定你想按哪个字段哪种方式来进行排序,再返回搜索结果。

2,特点

asc代表升序,desc代表降序,如果不写默认升序

order by用于子句中可以支持单个字段,多个字段,表达式,函数,别名

order by子句,放在查询语句的最后面。LIMIT子句除外

3,操作

 第二条:当价格相同时,才会以分类来排序

五,聚合查询

1,简介

之前我们做的查询都是横向查询,它们都是根据条件一行一行的进行判断,而使用聚合函数查询是纵向查询,它是对一列的值进行计算,然后返回一个单一的值;另外聚合函数会忽略空值

聚合函数

作用

count()

统计指定列不为NULL记录行数

sum()

计算指定列的数值和,如果指定列类型不是数值类型,那么计算结果为0

max()

计算指定列的最大值,如果指定列是字符串类型,那么使用字符串排序运算;

min()

计算指定列的最小值,如果指定列是字符串类型,那么使用字符串排序运算;

avg()

计算指定列的平均值,如果指定列类型不是数值类型,那么计算结果为0

2,操作

 3,NULL的处理

3.1介绍

1,count函数对null值的处理

如果count函数的参数为星号(*),则统计所有记录的个数。而如果参数为某字段,不统计含null值的记录个数。

2,sum和avg函数对null值的处理

这两个函数忽略null值的存在,就好象该条记录不存在一样。

3、maxmin函数对null值的处理

 maxmin两个函数同样忽略null值的存在。

3.2操作

注意:count(1)等价于count(*) 

六,分组查询----group by

1,简介

分组查询是指使用group by字句对查询信息进行分组。

操作:

 如果要进行分组的话,则SELECT子句之后,只能出现分组的字段和统计函数,其他的字段不能出现:

2,分组之后的条件筛选

分组之后对统计结果进行筛选的话必须使用having,不能使用where,where子句用来筛选 FROM 子句中指定的操作所产生的行 group  by  子句用来分组 WHERE 子句的输出。               having 子句用来从分组的结果中筛选行、

操作例子:

 

七,分页查询

1,简介

分页查询在项目开发中常见,由于数据量很大,显示屏长度有限,因此对数据需要采取分页显示方式。例如数据共有30条,每页显示5条,第一页显示1-5条,第二页显示6-10条。 

操作格式:

 八,导入数据

1,INSERT INTO SELECT

 要求目标表Table2必须存在

2,SELECT INTO  

 

要求目标表Table2不存在,因为在插入时会自动创建表Table2,并将Table1中指定字段数据复制到Table2中。 

九,正则表达式

1,介绍

正则表达式(regular expression)描述了一种字符串匹配的规则,正则表达式本身就是一个字符串,使用这个字符串来描述、用来定义匹配规则,匹配一系列符合某个句法规则的字符串。在开发中,正则表达式通常被用来检索、替换那些符合某个规则的文本。

MySQL通过REGEXP关键字支持正则表达式进行字符串匹配。

2,格式

模式

描述

^

匹配输入字符串的开始位置。

$

匹配输入字符串的结束位置。

.

匹配除 "\n" 之外的任何单个字符。

[...]

字符集合。匹配所包含的任意一个字符。例如, '[abc]' 可以匹配 "plain" 中的 'a'

[^...]

负值字符集合。匹配未包含的任意字符。例如, '[^abc]' 可以匹配 "plain" 中的'p'

p1|p2|p3

匹配 p1 p2 p3。例如,'z|food' 能匹配 "z" "food"'(z|f)ood' 则匹配 "zood" "food"

模式

描述

*

匹配前面的子表达式零次或多次。例如,zo* 能匹配 "z" 以及 "zoo"* 等价于{0,}

+

匹配前面的子表达式一次或多次。例如,'zo+' 能匹配 "zo" 以及 "zoo",但不能匹配 "z"+ 等价于 {1,}

{n}

n 是一个非负整数。匹配确定的 n 次。例如,'o{2}' 不能匹配 "Bob" 中的 'o',但是能匹配 "food" 中的两个 o

{n,m}

m n 均为非负整数,其中n <= m。最少匹配 n 次且最多匹配 m 次。

3,操作

 

   

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值