DQL基本查询操作

简介: DQL基本查询操作

DQL查询操作主要包括有:

一:简单查询:

最基本的查询操作,基础语句:

关键词:select ... from [表名];

查询操作:

-- 一:查询所有商品
-- select 后面可以跟想要显示的列的名称,
-- 也可以直接用 * 来直接显示所有的列,展现出来整个的表
select * from product
 
-- 二:查询商品名称以及商品的价格
select name,price from product;
 
-- 三:别名查找:对于表或者是某一列重新设置一个新的名称
-- 关键字是as
-- 3.1表别名:
select from product as p;
-- 3.2列别名
select price as'价格',name '商品名称' from product;
-- 设置别名是为了在比较多的表或者是一个表当中的许多列中
-- 更容易的找到所需要查询的数据
 
-- 四:去掉重复值
select DISTINCT price from product 
-- 如果只查询一列,比如说价格这一列,使用关键字distinct
-- 能够去掉所有的相同的价格,重复值
-- 但是如果对于多个列,除非是完全相同,否则是不会除去的
 
-- 五:让所有商品的价格都在原来的基础之上增加10元
select name,price+10 from product;
-- 此查询并不改变原来表格当中的商品价格


二:运算符操作

1.运算符操作'主要'包括有:算数运算符(+ , - ,* ,/ ,%)

比较运算符(> ,< ,>= ,<= ,!=)

逻辑运算符(||或者 ,&&并且)

2.查询有关操作:

-- 基本查询操作当中的运算符操作----算数运算符号
-- 主要包括的是+ - * / %
-- 操作:
select name,price+10 as new_price from product;
 
select name ,price*1.1 new_price from product;
 
-- 基本查询操作--逻辑查询操作
-- 一:查询商品名称为海尔洗衣机的商品的所有信息
select * from product where name='海尔洗衣机';
-- 二:查询价格为800的商品
select * from product where price=800;
-- 三:查新商品价格不是800的产品
select * from product where price!=800; 
-- 四:查询商品价格大于60的所有产品
select * from product WHERE price>60;
-- 五:查询商品价格在200-1000之间的产品的所有信息;
SELECT * FROM product WHERE price>=100 && price<=1000;
-- 六:查询价格是200或者是800的所有产品;
SELECT * FROM product WHERE price=200 ||price=800;
 
-- 七:查询含有'裤'字的所有产品
select * from product WHERE name like '%裤%';
-- %的作用是能够忽略前面是否含有字,或者是后面是否含有字
-- %能够匹配任何的字符
 
-- 八:查询以海字开头的所有商品
select * from product where name like '海%';
-- 九:查询第二个字是'蔻'的所有商品
SELECT * FROM product WHERE name like '_蔻'; 
-- 一个下划线能够匹配单个的字符
 
-- 九:查新kind为null的所有商品
-- 错误写法:SELECT * FROM product WHERE kind=null;
-- 因为对于null来说它跟任何的值都是不一样的都是不相等的
-- 因此并不能够用简单的逻辑运算符号来表示为null 
-- 正确写法:
SELECT * from product WHERE kind is null;
-- 十:查询kind不是null分类的所有商品
SELECT * from product where kind is not null;
 
-- 十一:求最大值:相当于使用了一个函数
select LEAST(11,13,46) as '最小值' ;
-- 同时的,如果在函数当中的值有null值
-- 十二:求最大值:也是一个函数
select GREATEST(100,null,456);
-- 如果函数当中有null那么在最大值的函数当中也是会显示出来null值的


三:排序查询

关键字:order by ... desc || asc

其中desc代表的是降序排,而asc为默认的排序,是升序排序,一般情况下后者可以直接省略,而desc不能

查询操作:

-- 选择排序方法
-- 关键字:order by
-- 操作:
select * from product order by price;
-- 在默认的情况下,如果进行排序的时候都会进行升序排序
-- 也可以加上asc表示升序排序
SELECT * FROM product ORDER BY price desc;
 
-- 排序查询:
-- 一:按照使用价格进行排序(降序)
SELECT * FROM product ORDER BY price desc;
-- 二:在价格降序排序的基础之上,以分类排序作为一个标准
-- 依然是降序的
SELECT * from product order by price desc,kind desc;
-- 如果有多重的排序标准的情况下,只有满足最左边的排序,才会继续进行右边的排序方式!
-- 三:显示商品的价格,降序,并且去掉重复值
select distinct price from product order by price desc;
 


四:聚合查询(函数)

关键字:count(), max(), sum(),min(),avg()[求平均值]

介绍:

1.之前的所有查询都是横向的查询,聚合查询可以做到行查询的操作

2.聚合查询会自动的忽略这一列当中的NULL值!不进行计算

查询操作:

-- 操作以及用法:
-- 一:求这个表格当中一共有多少行
-- keyword:count();
select count(id) from product;
 
-- 二:计算种类为c001的商品的所有的价格的和
select sum(price) as total from product where kind='c001';
-- 三:计算商品名称当中有'裤'字的所有商品的最大||最小值:
select max(price),min(price) from product where name like '%裤%';
-- 四:计算商品价格在300元以上的裤子的平均价格
select avg(price) from product where name like '%裤%' && price>300;
 
-- 聚合查询需要注意的--NULL点:
-- 对于所有的聚合函数来讲,如果要查询的某一个列当中含有
-- NULL值,那么都会视而不见,不计入计算当中的,max,min,avg,等等都不会将NULL值计入进去


五:分组查询

关键词:group by

介绍:使用分组查询的方法能够把相同的放在一起查找,分类,便于查找

基本操作:

-- DQL--基本查询--分组查询
-- 关键字:group by
update product set kind='c004' where id=18; 
-- 一:统计各个分类商品的个数
select kind,count(kind) from product group by kind;
 
-- 分组查询之后再进行相应的选择
-- 关键字:having 仅仅使用在分组之后再次的进行选择,而不是使用where
 
-- 查询各个不同类的商品当中个数大于4的产品 按照降序排序
select kind,count(kind) from product group by kind  HAVING count(kind) >4 order by count(kind) desc;
-- 由此可以看出来,执行的顺序首先是从from开始的,之后向右进行一步一步的排查,查询,在进行group by-->select -->
-- count(kind)-->having -->order by最终的结果进行排序


六:分页查询

关键词:limit

介绍:有些数据库当中的表中行数比较多,而显示屏的大小有限,所以应当采取分页进行的操作,这样就能够有效的分开显示这些数据

基本操作:

-- tips:分页查询的操作一般都是放在末端进行的
-- 关键词:LIMIT
-- 表达方式一:
select * from product limit 0;
-- 后面的数字代表从头开始,一共显示多少行
-- 表达方式二:
select * from product limit 3,4;
-- 后面两个数字,第一个代表的是从索引为多少的数开始进行查询操作,是索引数(index)
-- 后面的一个也是代表显示多少行
 
 
-- 表跟表之间的复制粘贴操作
-- 目的,将一个已经创建过有数据的表当中数据先进行
-- 查询,之后将其复制到另外一个'提前'已经创建过的表当中
-- 一:重新创建一个表,在里面填充之前的商品的种类以及数量
create table product2(
kind VARCHAR(20),
count int
);
-- 关键字:insert into 表(1,2,3,....) select ....
-- 需要注意的是,select后面的列名称,必须跟新表当中的种类相同!
 
insert into 
product2(kind,count) 
select kind,count(kind) a 
from product 
group by kind ;
 
相关文章
|
8月前
|
SQL
DQL-基础查询
DQL-基础查询
24 0
|
1月前
|
SQL 前端开发 关系型数据库
零基础学习数据库SQL语句之查询表中数据的DQL语句
零基础学习数据库SQL语句之查询表中数据的DQL语句
17 0
|
2月前
|
存储 SQL 关系型数据库
mysql查询数据库表大小怎么操作
mysql查询数据库表大小怎么操作
262 0
|
2月前
|
SQL 安全 关系型数据库
MySQL数据库——DQL操作——基本查询
MySQL数据库——DQL操作——基本查询
|
2月前
|
SQL 数据库
SQL-DQL-基础查询
SQL-DQL-基础查询
基础DQL(数据查询)——条件查询
基础DQL(数据查询)——条件查询
102 0
基础DQL(数据查询)——条件查询
基础DQL(数据查询)——基础查询
基础DQL(数据查询)——基础查询
101 0
基础DQL(数据查询)——基础查询
|
SQL 关系型数据库 MySQL
基础DQL(数据查询)——排序查询和分页查询
基础DQL(数据查询)——排序查询和分页查询
138 0
基础DQL(数据查询)——排序查询和分页查询
|
SQL 关系型数据库 MySQL
DQL(数据查询语言)之条件查询 | 学习笔记
快速学习 DQL (数据查询语言)之条件查询
122 0
DQL(数据查询语言)之条件查询 | 学习笔记
|
SQL 关系型数据库 MySQL
MySQL基础-DQL 查询语句(下)
基本语法 DQL 查询语句
254 0