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

分类 描述 关键字
DQL(Data Query Language)
数据查询语言 (掌握)
DQL语言并不是属于MYSQL官方的分类,但是对数据库的操作最多就是查询,所以我们的程序员把查询语句的语句称作为DQL语言 SELECT 等

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

1. 简单查询

备用数据:

----------------运行下面的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 表名;

-- 需求:查询所有的商品.
SELECT * FROM product;

查询结果如下:

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 表名;

-- 需求:查询商品名和商品价格.
SELECT pname,price FROM product;

执行如下:

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关键字可以省去不写

-- 需求3.别名查询.使用的关键字是as(as可以省略的).
--   3.1表别名:查询商品名称和价格
SELECT pro.pname,pro.price FROM product AS pro;--   3.2列别名:查询商品名称和价格
SELECT pname AS "商品名称",price "商品价格" FROM product;

执行如下:

--   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 表名;

-- 需求:查看商品表中有那些价格.
SELECT DISTINCT price FROM product;

执行如下:

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 表名;

-- 需求:将所有商品的价格+10元进行显示. (查询结果可参与运算)
SELECT *,IFNULL(price,0)+10 FROM product;

执行如下:

-- 将所有商品的价格+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>

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

  1. SQL学习笔记——Select查询语句

    使用数据库和表的主要目的是存储数据以便在需要时进行检索.统计或组织输出. SELECT 语句,它是 T-SQL 的核心.从数据库中检索行,并允许从一个或多个表中选择一个 或多个行或列. 虽然 SELE ...

  2. SQL操作语句之查询及删除重复记录的方法

    delete from 表 where id not in(select min(id) from 表 group by name ) //删除重复名字的记录 删除之前请用语句 select * fr ...

  3. MySQL中SQL命令语句条件查询

    一.聚合函数 聚合函数:又叫组函数,用来对表中的数据进行统计和计算,结合group by分组使用,用于统计和计算分组数据 常用聚合函数 count(col):求指定列的总行数 max(col):求指定 ...

  4. sql server 2005 (select查询语句用法)

    select * from userInfo where age like '2[25]' 功能:查询userInfo表中age字段,所有以2开头,且第二位是2或5的记录. select * from ...

  5. JPA系列:使用原生SQL、使用JPQL查询方法简单例子

    目录 使用原生SQL 使用JPQL(默认) 使用原生SQL nativeQuery = true,设置表示使用最原生的SQL语句 package com.pjb.jpauserdemo.dao;imp ...

  6. 基础SQL语法语句大全(一篇学会所有SQL语句)

    如:select distinct name from student; 如:select name,salary from employee where deptno = 3; 如:select * ...

  7. oracle子查询 select语句,select查询之三:子查询

    Select语句的总结构: Select [字段] [限制条件] from [数据表]  /子查询[嵌套查询] where [筛选条件]  /子查询[嵌套查询] group by[分组字段]  /子查 ...

  8. 15个初学者必看的基础SQL查询语句

    1.创建表和数据插入SQL 我们在开始创建数据表和向表中插入演示数据之前,我想给大家解释一下实时数据表的设计理念,这样也许能帮助大家能更好的理解SQL查询. 在数据库设计中,有一条非常重要的规则就是要 ...

  9. sql之dql语句,语法和思路

    这些都是我自学时手打到文本文档,在复制粘贴到博客的,有一些命令格式不对,但全部百分百原创,如果有疑问或者不对的地方,欢迎评论区指正,也可以加q群592383030来探讨(我就是自学的普通人,不卖课,不 ...

最新文章

  1. tp5.0 queue 队列操作
  2. Software Engineering | Factory method pattern
  3. C++多个文本读取问题
  4. python基础入门(5)之运算符
  5. 【IDEA工具】java通过IDEA打包项目
  6. 【英语学习】【English L06】U01 Breakfast L3 I'm full from my brunch
  7. node.js入门 - 7.异常处理与多进程开发
  8. dnf修改服务器时间限制,DNF历史性革新,团本刷新时间改为周六,为黑鸦让路
  9. excel如何从字符串中截取指定字符(LEFT、RIGHR、MID三大函数)
  10. 读 John Tosh 之《史学导论:现代历史学的目标、方法和新方向》
  11. 知识付费产品复购率低成难题
  12. 如何在微信中(微信公众号页面)给Vue单页应用设置标题
  13. 一个字符等于多少个字节?
  14. Linux内核入门-- likely和unlikely
  15. 同时删除多个 Txt 文本文档的前几行
  16. 后台系统设计——角色权限
  17. 中国软件外包IT公司最新排名
  18. Linux下使用GPIO模拟I2C IIC驱动(PCF8563)
  19. ORMLite的集成和使用
  20. python 爬虫思想,抓取网站上尽可能多的英文内容文章,去除停用词后,统计频次出现排名前 300~600 的高频词

热门文章

  1. kafka 实践指南
  2. epsonl360打印机连接电脑_EPSONL360打印机怎么安装驱?
  3. XP下文件夹加密方法
  4. openlayers 图层刷新问题
  5. 感恩工作平台心得体会_感恩工作心得体会范文3篇
  6. linux强大的转发工具socat
  7. RISC_V_外设篇_SPI
  8. div水平居中的两种方法
  9. 引用和指针概念及区别
  10. Django计算机毕业设计Sketch2Mod网站(程序+LW)Python