Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >专栏 >基础SQL-DQL语句-SELECT查询的简单使用以及IFNULL函数

基础SQL-DQL语句-SELECT查询的简单使用以及IFNULL函数

作者头像
Devops海洋的渔夫
发布于 2022-01-17 06:09:22
发布于 2022-01-17 06:09:22
1.5K00
代码可运行
举报
文章被收录于专栏:Devops专栏Devops专栏
运行总次数:0
代码可运行

6. 基础SQL-DQL语句-SELECT查询的简单使用以及IFNULL函数

分类

描述

关键字

DQL(Data Query Language)数据查询语言 (掌握)

DQL语言并不是属于MYSQL官方的分类,但是对数据库的操作最多就是查询,所以我们的程序员把查询语句的语句称作为DQL语言

SELECT 等

查询不会对数据库中的数据进行修改.只是一种显示数据的方式

1. 简单查询

备用数据:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
----------------运行下面的sql语句,生成相关的数据库表
# 创建商品表:
CREATE TABLE product(
 pid INT,
 pname VARCHAR(20),
 price DOUBLE,
 category_id VARCHAR(32)
);

INSERT INTO product(pid,pname,price,category_id) VALUES(1,'联想',5000,'c001');
INSERT INTO product(pid,pname,price,category_id) VALUES(2,'海尔',3000,'c001');
INSERT INTO product(pid,pname,price,category_id) VALUES(3,'雷神',5000,'c001');
INSERT INTO product(pid,pname,price,category_id) VALUES(4,'JACK JONES',800,'c002');
INSERT INTO product(pid,pname,price,category_id) VALUES(5,'真维斯',200,'c002');
INSERT INTO product(pid,pname,price,category_id) VALUES(6,'花花公子',440,'c002');
INSERT INTO product(pid,pname,price,category_id) VALUES(7,'劲霸',2000,'c002');
INSERT INTO product(pid,pname,price,category_id) VALUES(8,'香奈儿',800,'c003');
INSERT INTO product(pid,pname,price,category_id) VALUES(9,'相宜本草',200,'c003');
INSERT INTO product(pid,pname,price,category_id) VALUES(10,'面霸',5,'c003');
INSERT INTO product(pid,pname,price,category_id) VALUES(11,'好想你枣',56,'c004');
INSERT INTO product(pid,pname,price,category_id) VALUES(12,'香飘飘奶茶',1,'c005');
INSERT INTO product(pid,pname,price,category_id) VALUES(13,'果9',1,NULL);
INSERT INTO product(pid,pname,category_id) VALUES(14,'香飘飘奶茶','c005');

1.1 查询所有

select * from 表名;

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
-- 需求:查询所有的商品.
SELECT * FROM product;  

查询结果如下:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
mysql> select * from product;
+------+-----------------+-------+-------------+
| pid  | pname           | price | category_id |
+------+-----------------+-------+-------------+
|    1 | 联想            |  5000 | c001        |
|    2 | 海尔            |  3000 | c001        |
|    3 | 雷神            |  5000 | c001        |
|    4 | JACK JONES      |   800 | c002        |
|    5 | 真维斯          |   200 | c002        |
|    6 | 花花公子        |   440 | c002        |
|    7 | 劲霸            |  2000 | c002        |
|    8 | 香奈儿          |   800 | c003        |
|    9 | 相宜本草        |   200 | c003        |
|   10 | 面霸            |     5 | c003        |
|   11 | 好想你枣        |    56 | c004        |
|   12 | 香飘飘奶茶      |     1 | c005        |
|   13 |9             |     1 | NULL        |
|   14 | 香飘飘奶茶      |  NULL | c005        |
+------+-----------------+-------+-------------+
14 rows in set (0.00 sec)

mysql> 

1.2 查询指定列

select 字段名1,字段名2... from 表名;

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
-- 需求:查询商品名和商品价格.
SELECT pname,price FROM product;

执行如下:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
mysql> select pname,price from product;
+-----------------+-------+
| pname           | price |
+-----------------+-------+
| 联想            |  5000 |
| 海尔            |  3000 |
| 雷神            |  5000 |
| JACK JONES      |   800 |
| 真维斯          |   200 |
| 花花公子        |   440 |
| 劲霸            |  2000 |
| 香奈儿          |   800 |
| 相宜本草        |   200 |
| 面霸            |     5 |
| 好想你枣        |    56 |
| 香飘飘奶茶      |     1 |
|9             |     1 |
| 香飘飘奶茶      |  NULL |
+-----------------+-------+
14 rows in set (0.00 sec)

mysql> 

1.3 别名查询

select 字段名1 as 别名,字段名2 别名 from 表名 as 表别名;

as关键字可以省去不写

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
-- 需求3.别名查询.使用的关键字是asas可以省略的). 
--   3.1表别名:查询商品名称和价格
SELECT pro.pname,pro.price FROM product AS pro;

--   3.2列别名:查询商品名称和价格
SELECT pname AS "商品名称",price "商品价格" FROM product;

执行如下:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
--   3.1表别名:查询商品名称和价格
mysql> SELECT pro.pname,pro.price FROM product AS pro;
+-----------------+-------+
| pname           | price |
+-----------------+-------+
| 联想            |  5000 |
| 海尔            |  3000 |
| 雷神            |  5000 |
| JACK JONES      |   800 |
| 真维斯          |   200 |
| 花花公子        |   440 |
| 劲霸            |  2000 |
| 香奈儿          |   800 |
| 相宜本草        |   200 |
| 面霸            |     5 |
| 好想你枣        |    56 |
| 香飘飘奶茶      |     1 |
|9             |     1 |
| 香飘飘奶茶      |  NULL |
+-----------------+-------+
14 rows in set (0.00 sec)

--   3.2列别名:查询商品名称和价格
mysql> SELECT pname AS "商品名称",price "商品价格" FROM product;
+-----------------+--------------+
| 商品名称        | 商品价格     |
+-----------------+--------------+
| 联想            |         5000 |
| 海尔            |         3000 |
| 雷神            |         5000 |
| JACK JONES      |          800 |
| 真维斯          |          200 |
| 花花公子        |          440 |
| 劲霸            |         2000 |
| 香奈儿          |          800 |
| 相宜本草        |          200 |
| 面霸            |            5 |
| 好想你枣        |           56 |
| 香飘飘奶茶      |            1 |
|9             |            1 |
| 香飘飘奶茶      |         NULL |
+-----------------+--------------+
14 rows in set (0.00 sec)

mysql> 

1.4 去重复查询

select distinct 字段名 from 表名;

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
-- 需求:查看商品表中有那些价格.
SELECT DISTINCT price FROM product; 

执行如下:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
mysql> SELECT pname AS "商品名称",price "商品价格" FROM product;
+-----------------+--------------+
| 商品名称        | 商品价格     |
+-----------------+--------------+
| 联想            |         5000 | -- 可以看到有两个5000的重复商品价格
| 海尔            |         3000 |
| 雷神            |         5000 | -- 可以看到有两个5000的重复商品价格
| JACK JONES      |          800 |
| 真维斯          |          200 |
| 花花公子        |          440 |
| 劲霸            |         2000 |
| 香奈儿          |          800 |
| 相宜本草        |          200 |
| 面霸            |            5 |
| 好想你枣        |           56 |
| 香飘飘奶茶      |            1 |
|9             |            1 |
| 香飘飘奶茶      |         NULL |
+-----------------+--------------+
14 rows in set (0.00 sec)

-- 查询价格去重
mysql> SELECT DISTINCT price FROM product;
+-------+
| price |
+-------+
|  5000 | 
|  3000 |
|   800 |
|   200 |
|   440 |
|  2000 |
|     5 |
|    56 |
|     1 |
|  NULL |
+-------+
10 rows in set (0.00 sec)

mysql> 

1.5 查询结果参与运算(IFNULL 函数)

在上面查询 price 价格的时候,存在 NULL 的值,而 NULL 在 mysql 是不算为值的。如果想要计算,此时就需要使用 IFNULL 函数,判断当查询的值为 NULL,可以设置为 0 ,操作如下:

select 列名1 + 固定值 from 表名;

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
-- 需求:将所有商品的价格+10元进行显示. (查询结果可参与运算)
SELECT *,IFNULL(price,0)+10 FROM product;

执行如下:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
-- 将所有商品的价格+10元进行显示. (查询结果可参与运算)
mysql> SELECT *,IFNULL(price,0)+10 FROM product;
+------+-----------------+-------+-------------+--------------------+
| pid  | pname           | price | category_id | IFNULL(price,0)+10 |
+------+-----------------+-------+-------------+--------------------+
|    1 | 联想            |  5000 | c001        |               5010 |
|    2 | 海尔            |  3000 | c001        |               3010 |
|    3 | 雷神            |  5000 | c001        |               5010 |
|    4 | JACK JONES      |   800 | c002        |                810 |
|    5 | 真维斯          |   200 | c002        |                210 |
|    6 | 花花公子        |   440 | c002        |                450 |
|    7 | 劲霸            |  2000 | c002        |               2010 |
|    8 | 香奈儿          |   800 | c003        |                810 |
|    9 | 相宜本草        |   200 | c003        |                210 |
|   10 | 面霸            |     5 | c003        |                 15 |
|   11 | 好想你枣        |    56 | c004        |                 66 |
|   12 | 香飘飘奶茶      |     1 | c005        |                 11 |
|   13 |9             |     1 | NULL        |                 11 |
|   14 | 香飘飘奶茶      |  NULL | c005        |                 10 |
+------+-----------------+-------+-------------+--------------------+
14 rows in set (0.00 sec)

mysql>
本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2021-02-18,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 海洋的渔夫 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
MySQL数据库基础(十):DQL数据查询语言
之前我们做的查询都是横向查询,它们都是根据条件一行一行的进行判断,而使用聚合函数查询是纵向查询,它是对一列的值进行计算,然后返回一个单一的值;另外聚合函数会忽略空值。
Lansonli
2024/03/19
1410
MySQL数据库基础(十):DQL数据查询语言
MySQL数据库安装使用
Key-Value结构存储: Key-value数据库是一种以键值对存储数据的一种数据库,类似Java中的map。可以将整个数据库理解为一个大的map,每个键都会对应一个唯一的值。
@小森
2024/07/25
810
MySQL数据库安装使用
【MySQL】SQL语句之DDL、DML、DQL
数据库是不认识JAVA语言的,但是我们同样要与数据库交互,这时需要使用到数据库认识的语言SQL语句,它是数据库的代码。
陶然同学
2023/02/24
9100
【MySQL】SQL语句之DDL、DML、DQL
数据库介绍以及使用
第1章 数据库介绍 1.1 数据库概述 l 什么是数据库 数据库就是存储数据的仓库,其本质是一个文件系统,数据按照特定的格式将数据存储起来,用户可以对数据库中的数据进行增加,修改,删除及查询操作。 l 什么是数据库管理系统 数据库管理系统(DataBase Management System,DBMS):指一种操作和管理数据库的大型软件,用于建立、使用和维护数据库,对数据库进行统一管理和控制,以保证数据库的安全性和完整性。用户通过数据库管理系统访问数据库中表内的数据。 l 数据库与数据库管理系统
Java学习
2018/04/17
1.2K0
数据库介绍以及使用
数据库语法之DQL-数据库查询,基本查询和条件语句
# 1.查询所有的商品. select * from product; # 2.查询商品名和商品价格. select pname,price from product; # 3.去掉重复值. select distinct price from product; # 4.查询结果是表达式(运算查询):将所有商品的价格+10元进行显示. select pname,price+10 from product; # 5.别名查询.使用的关键字是as(as可以省略
名字是乱打的
2022/05/13
6560
Web-第六天 MySQL回顾学习
数据库就是存储数据的仓库,其本质是一个文件系统,数据按照特定的格式将数据存储起来,用户可以通过sql语句对数据库中的数据进行增加,修改,删除及查询操作
Java帮帮
2018/07/27
8300
Web-第六天 MySQL回顾学习
第三十天-加强2-多表查询&JDBC&连接池&DBUtils&综合案例【悟空教程】
第三十天-加强2-多表查询&JDBC&连接池&DBUtils&综合案例【悟空教程】
Java帮帮
2018/07/27
8080
第三十天-加强2-多表查询&JDBC&连接池&DBUtils&综合案例【悟空教程】
2024Mysql And Redis基础与进阶操作系列(5)作者——LJS[含MySQL DQL基本查询:select;简单、排序、分组、聚合、分组、分页等详解步骤及常见报错问题所对应的解决方法]
学生表中存在一个birth字段,这个字段表示学生的出生年份。而运用MySQL的算术运算符用当前的年份减学生出生的年份,那么得到的就是这个学生的实际年龄数据。
盛透侧视攻城狮
2024/10/22
2660
2024Mysql And Redis基础与进阶操作系列(5)作者——LJS[含MySQL DQL基本查询:select;简单、排序、分组、聚合、分组、分页等详解步骤及常见报错问题所对应的解决方法]
【MySQL】多表练习、查询以及多表的关系
实际开发中,一个项目通常需要很多张表才能完成。例如:一个商城项目就需要分类表(category)、商品表(product)、订单表(orders)等多张表。且这些表的数据之间存在一定的关系,接下来我们将在单表的基础上,一起学习多表方面的知识。
陶然同学
2023/02/24
2.6K0
【MySQL】多表练习、查询以及多表的关系
MySQL 练习题和答案,以及运行结果截图
一共四道大题,运行结果截图在最后面。 SQL 题目一 数据准备 # 创建数据库 renda01 CREATE DATABASE renda01 CHARACTER SET utf8; # 使用数据库 USE renda01; # 创建商品表: CREATE TABLE product( pid INT, # 主键 ID pname VARCHAR(20), # 商品名称 price DOUBLE, # 商品价格 category_name VARCHAR(32) #
RendaZhang
2020/09/08
1.5K0
MySQL 练习题和答案,以及运行结果截图
第二十九天-加强1-Junit&类加载&反射&Properties&BeanUtils&xml&动态代理&数据库【悟空教程】
第二十九天-加强1-Junit&类加载&反射&Properties&BeanUtils&xml&动态代理&数据库【悟空教程】
Java帮帮
2018/07/27
1.1K0
第二十九天-加强1-Junit&类加载&反射&Properties&BeanUtils&xml&动态代理&数据库【悟空教程】
【MySQL】多对多练习案例
ALTER TABLE orderitem ADD CONSTRAINT orderitem_order_fk FOREIGN KEY (oid) REFERENCES `order`(oid)
陶然同学
2023/02/24
1.5K0
【MySQL】多对多练习案例
【MySQL数据库】 数据库的基本查询 DQL
根据定义,聚合函数对一组值执行计算并返回单个值。. MySQL提供了许多聚合函数,包括 AVG , COUNT , SUM , MIN , MAX 等。. 除 COUNT 函数外,其它聚合函数在执行计算时会忽略 NULL 值。
小小程序员
2022/12/01
6.2K1
【数据库】常用数据库简介
sql 结构化查询语言(Structured Query Language)简称SQL
小言从不摸鱼
2024/09/24
1370
【数据库】常用数据库简介
MySQL操作之数据查询语言:(DQL)(四-1)(单表操作)
ha_lydms
2023/08/09
2050
MySQL操作之数据查询语言:(DQL)(四-1)(单表操作)
数据库技术:MySQL 多表,外键约束,数据库设计,索引,视图,存储过程触发器,数据控制,数据备份与恢复
MySQL: Multi-Table, Foreign Key and Database Design
RendaZhang
2020/09/08
2.4K0
单表查询练习
# ORDER BY price DESC 排序查询, DESC是降序 ASC是升序 默认 ASC -- 通过order by语句,可以将查询出的结果进行排序。放置在select语句的最后。 -- 格式: -- SELECT * FROM 表名 ORDER BY 排序字段ASC|DESC; -- ASC 升序 (默认) -- DESC 降序 SELECT pname,price FROM product ORDER BY price DESC; SELECT pid,pname,price
名字是乱打的
2022/05/13
9750
java核心技术第二篇之数据库SQL语法
#查询products表记录 SELECT * FROM products WHERE price > 2000; – 单行注释 /* 多行注释 */ #创建数据库 CREATE DATABASE hei66_day19_db;hei66_day19_db #查看数据库 SHOW DATABASES; #查看某个数据库的定义信息 SHOW CREATE DATABASE hei66_day19_db; #删除数据库 DROP DATABASE hei66_day19_db;
海仔
2019/08/05
1.1K0
数据库_mysql多表操作
多表操作 实际开发中,一个项目通常需要很多张表才能完成。例如:一个商城项目就需要分类表(category)、商品表(products)、订单表(orders)等多张表。且这些表的数据之间存在一定的关系
Java学习
2018/04/13
2.2K0
数据库_mysql多表操作
Web-第十四天 基础加强-JDBC案例【悟空教程】
`pname` varchar(50) DEFAULT NULL, #商品名称
Java帮帮
2018/07/27
7700
Web-第十四天 基础加强-JDBC案例【悟空教程】
推荐阅读
相关推荐
MySQL数据库基础(十):DQL数据查询语言
更多 >
领券
社区富文本编辑器全新改版!诚邀体验~
全新交互,全新视觉,新增快捷键、悬浮工具栏、高亮块等功能并同时优化现有功能,全面提升创作效率和体验
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文