mysql的dql_Mysql:dql(基本数据查询)

数据查询语言DQL,关键字:select、from、where等

1、单表查询

(1)查询学生表的学生的全部属性信息:

select *

from student

(2)查询全体学生的学号与姓名:

selectsno,snamefrom student

(3)查询的属性值可以经过计算后输出:

select sname,2019-sage--查询姓名和年龄

from student

(4)目标列表达式还可以是字符串常量

select sname,'Year of Birth:',birthday

from student

944d5dd64331fe1efe5e40f14c61b1d2.png

(5)distanct关键字

--distinct:用于去除重复元组,写在select之后,属性列表之前

--一个select语句只能有一个distinct

(6)null运算

IFNULL

当某一列的属性值为NULL的时候将属性值设为设定的值

全部的学生信息为:

studentno birthday classno phone sex sname score---------- ---------- ------- ----------- ------ --------- --------

2020043002 1998-11-18 202001 18739496123 男 张博 560

2020043004 1998-11-10 202001 18739496100 男 文昊 601

2020043005 1998-11-09 202001 18739496577 男 伟琦 574

2020043006 1997-01-18 202002 18739492332 男 赵宏文 637

2020043007 1998-11-19 202001 18739494123 男 王石 567

2020043008 1997-02-18 202001 18739496109 女 艾诚 539

2020043009 1998-11-15 202001 18739396145 女 王丽丽 571

2020043010 1998-11-12 202001 18739490123 女 孙晓燕 583

2020043099 (NULL) (NULL) (NULL) 女 (NULL) (NULL)

最后一名学生的信息存在数据为空的字段,添加对分数的空值处理

studentno birthday classno phone sex sname score IFNULL(score,0)---------- ---------- ------- ----------- ------ --------- ------ -----------------

2020043002 1998-11-18 202001 18739496123 男 张博 560 560

2020043004 1998-11-10 202001 18739496100 男 文昊 601 601

2020043005 1998-11-09 202001 18739496577 男 伟琦 574 574

2020043006 1997-01-18 202002 18739492332 男 赵宏文 637 637

2020043007 1998-11-19 202001 18739494123 男 王石 567 567

2020043008 1997-02-18 202001 18739496109 女 艾诚 539 539

2020043009 1998-11-15 202001 18739396145 女 王丽丽 571 571

2020043010 1998-11-12 202001 18739490123 女 孙晓燕 583 583

2020043099 (NULL) (NULL) (NULL) 女 (NULL) (NULL) 0

查询语句为:

SELECT *,

IFNULL(score,0)

FROM student

(7)排序

order by 属性名列表:将查询结果按属性名排序,如果需要改变排序方式,在属性名后,desc降序,asc升序

使用关键词 asc/desc,如果省略默认为升序

select studentno,sname,email--查询每个学生的学号,姓名和Email,按照班级编号降序排列,同一班级按入学成绩降序排列。

fromstudentorder by classno desc,point desc

2、聚合函数

(1)MAX

SELECT MAX(Id) ,sname

FROM t_stu

(2)MIN

SELECT MIN(Id) ,sname

FROM t_stu

(3)count

SELECT COUNT(Id)

FROM t_stu

只要是一条记录中有一个字段不为空的字段就进行计数,而select count(字段)只会统计该字段不为null的记录条数

SELECT COUNT(*)

FROM t_stu

SELECT COUNT(*)与SELECT COUNT(1):

count(1)或括号中是其它数字、字段名,表示只选择一个字段进行查询,而count(*)表示选择所有的字段进行查询,因此, SELECT COUNT(*)的效率较低

2f26cdb4c5c804fa7847679a35779d42.png

514d25de55a05923c04f868284344575.png

(4)AVG

SELECT AVG(score)

FROM student

(5)SUM

SELECT SUM(score)

FROM student

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值