前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >基础SQL-DQL语句-SELECT查询的简单使用以及IFNULL函数

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

作者头像
Devops海洋的渔夫
发布2022-01-17 14:09:22
1.4K0
发布2022-01-17 14:09:22
举报
文章被收录于专栏:Devops专栏Devops专栏

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

分类

描述

关键字

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

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

SELECT 等

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

1. 简单查询

备用数据:

代码语言:javascript
复制
----------------运行下面的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
复制
-- 需求:查询所有的商品.
SELECT * FROM product;  

查询结果如下:

代码语言:javascript
复制
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
复制
-- 需求:查询商品名和商品价格.
SELECT pname,price FROM product;

执行如下:

代码语言:javascript
复制
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
复制
-- 需求3.别名查询.使用的关键字是as(as可以省略的). 
--   3.1表别名:查询商品名称和价格
SELECT pro.pname,pro.price FROM product AS pro;

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

执行如下:

代码语言:javascript
复制
--   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
复制
-- 需求:查看商品表中有那些价格.
SELECT DISTINCT price FROM product; 

执行如下:

代码语言:javascript
复制
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
复制
-- 需求:将所有商品的价格+10元进行显示. (查询结果可参与运算)
SELECT *,IFNULL(price,0)+10 FROM product;

执行如下:

代码语言:javascript
复制
-- 将所有商品的价格+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 删除。

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

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 6. 基础SQL-DQL语句-SELECT查询的简单使用以及IFNULL函数
    • 1. 简单查询
      • 1.1 查询所有
      • 1.2 查询指定列
      • 1.3 别名查询
      • 1.4 去重复查询
      • 1.5 查询结果参与运算(IFNULL 函数)
相关产品与服务
云数据库 SQL Server
腾讯云数据库 SQL Server (TencentDB for SQL Server)是业界最常用的商用数据库之一,对基于 Windows 架构的应用程序具有完美的支持。TencentDB for SQL Server 拥有微软正版授权,可持续为用户提供最新的功能,避免未授权使用软件的风险。具有即开即用、稳定可靠、安全运行、弹性扩缩等特点。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档