基础SQL-DQL语句-SELECT查询的简单使用以及IFNULL函数
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函数相关推荐
- SQL学习笔记——Select查询语句
使用数据库和表的主要目的是存储数据以便在需要时进行检索.统计或组织输出. SELECT 语句,它是 T-SQL 的核心.从数据库中检索行,并允许从一个或多个表中选择一个 或多个行或列. 虽然 SELE ...
- SQL操作语句之查询及删除重复记录的方法
delete from 表 where id not in(select min(id) from 表 group by name ) //删除重复名字的记录 删除之前请用语句 select * fr ...
- MySQL中SQL命令语句条件查询
一.聚合函数 聚合函数:又叫组函数,用来对表中的数据进行统计和计算,结合group by分组使用,用于统计和计算分组数据 常用聚合函数 count(col):求指定列的总行数 max(col):求指定 ...
- sql server 2005 (select查询语句用法)
select * from userInfo where age like '2[25]' 功能:查询userInfo表中age字段,所有以2开头,且第二位是2或5的记录. select * from ...
- JPA系列:使用原生SQL、使用JPQL查询方法简单例子
目录 使用原生SQL 使用JPQL(默认) 使用原生SQL nativeQuery = true,设置表示使用最原生的SQL语句 package com.pjb.jpauserdemo.dao;imp ...
- 基础SQL语法语句大全(一篇学会所有SQL语句)
如:select distinct name from student; 如:select name,salary from employee where deptno = 3; 如:select * ...
- oracle子查询 select语句,select查询之三:子查询
Select语句的总结构: Select [字段] [限制条件] from [数据表] /子查询[嵌套查询] where [筛选条件] /子查询[嵌套查询] group by[分组字段] /子查 ...
- 15个初学者必看的基础SQL查询语句
1.创建表和数据插入SQL 我们在开始创建数据表和向表中插入演示数据之前,我想给大家解释一下实时数据表的设计理念,这样也许能帮助大家能更好的理解SQL查询. 在数据库设计中,有一条非常重要的规则就是要 ...
- sql之dql语句,语法和思路
这些都是我自学时手打到文本文档,在复制粘贴到博客的,有一些命令格式不对,但全部百分百原创,如果有疑问或者不对的地方,欢迎评论区指正,也可以加q群592383030来探讨(我就是自学的普通人,不卖课,不 ...
最新文章
- tp5.0 queue 队列操作
- Software Engineering | Factory method pattern
- C++多个文本读取问题
- python基础入门(5)之运算符
- 【IDEA工具】java通过IDEA打包项目
- 【英语学习】【English L06】U01 Breakfast L3 I'm full from my brunch
- node.js入门 - 7.异常处理与多进程开发
- dnf修改服务器时间限制,DNF历史性革新,团本刷新时间改为周六,为黑鸦让路
- excel如何从字符串中截取指定字符(LEFT、RIGHR、MID三大函数)
- 读 John Tosh 之《史学导论:现代历史学的目标、方法和新方向》
- 知识付费产品复购率低成难题
- 如何在微信中(微信公众号页面)给Vue单页应用设置标题
- 一个字符等于多少个字节?
- Linux内核入门-- likely和unlikely
- 同时删除多个 Txt 文本文档的前几行
- 后台系统设计——角色权限
- 中国软件外包IT公司最新排名
- Linux下使用GPIO模拟I2C IIC驱动(PCF8563)
- ORMLite的集成和使用
- python 爬虫思想,抓取网站上尽可能多的英文内容文章,去除停用词后,统计频次出现排名前 300~600 的高频词