姓张信息mysql_MySQL_数据查询

select

from

[where]

[group]

[having]

[order by]

[limit]

[union]

1.查看数据的两种方法

select 字段名 from 表名;

查看多指定的字段

select 字段名,字段名 from 表名

2.查看数据并进行筛选(where)

select 字段名 from 表名

where 字段名=字段值;

例如:

select name from student

where xb='f';

我查看student表中,关于记录name(姓名)的字段

但是他要满足xb(性别)为f(男)

3.不查看重复记录(distinct),空值,非空值

不查看重复记录,多字段无效

select distinct 字段名 from 表名;

查看含有空值的记录

select *from 表名

where 字段名 is null;

查看不为空的学生信息

select *from 表名

where 字段名 is not null;

5.查看指定行(limit)

查看3行

select *from 表名 limit 3;

从第三行开始,查看三行

select *from 表名 limit 2,3;

6.模式匹配(like)

通配符

名称

描述

%

百分号

匹配0个或者多个任意字符

_

下划线

匹配单个任意字符

查看张姓的人

select *from 表名

where 姓名 like '张%';

查看不姓张的人

select *from 表名

where 姓名 not like '张%';

查看姓张或者名字中有张的人

select *from 表名

where 姓名 like '%张%';

regexp

通配符

名称

描述

^

插入号

匹配字符串的开始部分

$

美元

匹配字符串的结束部分

.

匹配字符串(包括回车和新行)

*

乘号

匹配-0个或多个任意字符

+

加号

匹配单个或多个任意字符

?

问号

匹配0个或单个任意字符

()

括号

匹配括号里面的内容

{n}

大括号

匹配括号前的内容出现n次的序列

查看姓张的人

select *from 表名

where 姓名 regexp '^张';

select *from 表名

where 姓名 regexp '张*';

6.范围查询(between and)

查询80分到100分之间的学生

select *from 表名

where 成绩 between 80 and 100;

in语句指定列表查询条件

select *from 表名

where 开课学期 in('1','2');

7.逻辑运算符查询

运算符

说明

not

否定,逻辑非

and

连接,都满足时返回真,类似逻辑与&&

or

类似逻辑或

xor

只有一个满足时返回真,两个都满足或不满足返回假

使用逻辑运算符查看成绩在80以上和100以下的学生信息

select *from 表名

where 成绩>=80 and 成绩<=100;

8.order by 子语句(排序)

asc升序,desc降序,默认为升序

查询选修了07003课程的学生成绩,以降序排序

select *from 表名

where 课程号='07003'

order by 成绩 desc;

- 单列排序

select *from 表名 order by 字段名1;

- 多列排序

select *from 表名 order by 字段名1,字段名2;

- 指定排序方向

select *from 表名 order by 字段名1,字段名2 desc;

会对字段1进行默认的升序排序,当有重复的值时候,会对字段2进行排序,因为字段2已经指定了排序方式为降序。

所以字段1默认的升序排序,字段2指定的降序排序

9.group by 子语句(聚合函数)

函数名

功能

sum()

返回一个数值列或计算列的总和

avg()

返回一个数值列或计算列的平均值

min()

返回一个数值列或计算列的最小值

max()

返回一个数值列或计算列的最大值

count()

返回满足select语句中指定条件的记录数

count(*)

返回找到的行数

- 进行分组

select 要分组的字段名 from 表名 group by 要分组的字段名;

select 要分组的字段名 as 别名 from 表名 group by 要分组的字段名;

count()的用法

如果里面是*号,会返回所有的行包括空值。

如果里面是具体的字段名,然会返回行数,不包括空值

select count(*) from 表名;

select count(字段名) from 表名;

- 分组查询

select 性别,count(*) from 表名 group by 性别;

select 性别 as 人数,count(*) as 人数 from 表名 group by 性别;

如果性别字段中有空值,还可以用这种方式

select 性别 as 人数,count(性别) as 人数 from 表名 group by 性别;

它会对性别进行分组,但是对于空值的那一组不会返回数值

having(过滤)

select 性别 from 表名 group by 性别 having xb is not null;

对字段“性别”进行分组,但是不对空值进行分组

select 性别 from 表名 group by 性别 having 性别 is null;

对字段“性别”进行分组,只对空值进行分组

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值