首頁 > 軟體

Mysql的DQL查詢操作全面分析講解

2022-12-05 14:01:23

DQL簡介

概念:DQL(data query language)資料查詢語言 select操作

排序規則:

- select 表示式1|欄位,.... - from 表名 where 條件 - group by 列名 - having 條件 - order by 列名 asc|desc - limit 位置,數量

語法結構:

    SELECT [ALL | DISTINCT] ALL表示查詢出所有的內容 DISTINCT 去重
            {* | 表名.* | 表名.欄位名[ AS 別名][,...]} 指定查詢出的欄位的
        FROM
            表名[AS 別名][,表1... AS 別名]
        [INNER | [LEFT | RIGHT] [OUTER] JOIN 另一張表名 [AS 別名] ON 關聯條件]
        [WHERE 條件]
        [GROUP BY 分組欄位[,...]] 
        [HAVING 給分組後的資料進行條件篩選]
        [ORDER BY 排序欄位[,...]]
        [LIMIT [startIndex,]pageSize]

具體操作

資料準備

create database if not exists test;
use test;
create table if not exists data(
id tinyint primary key auto_increment,
price double NOT null,
name varchar(20) not null,
type varchar(20) not null)
;
insert into data values
(null,900,'洗衣機','b'),
(null,1900,'冰箱','b'),
(null,2900,'空調','b'),
(null,3900,'電視','b'),
(null,150,'衣服','c'),
(null,180,'褲子','c'),
(null,200,'鞋子','c'),
(null,188,'洗面奶','a'),
(null,188,'洗髮水','a'),
(null,199,'洗衣液','a'),
(null,88,'沐浴露','a'),
(null,5,'泡麵','d'),
(null,15,'餅乾','d'),
(null,30,'咖啡','d');

簡單查詢

select * from data;
select name,price from data;
select * from data as d;
select * from data d;
select d.name,d.price from data d;
select  distinct price from data;
select name,price +100 newprice from data;

運運算元

算術運運算元

select name,price *1.5 newprice from data;

條件查詢

select * from data where name='洗衣機';
select * from data where  !(price>100);
select * from data where price between 200 and 1000;
select * from data where price in(188,900);
-- 等於下面兩句
select * from data where price = 188 or price =900;
select * from data where price = 188 || price =900;
select * from data where name like '%衣%';
select * from data where name like '衣%';
select * from data where name like '_衣%';
select * from data where id is null;

註釋:當有NULL作為比較大小的物件時,最大值和最小值均為null

排序查詢

select * from data order by price;
select * from data order by price desc;
select distinct price from data order by price desc;
select * from data order by price,id;

聚合查詢

select count(*) from data;
-- 不全為空的行數
select count(id) from data;
-- 通過主鍵值查詢行數
select count(*) from data where price<200;
select sum(price) from data where type='A';
select max(id) from data;
select min(price) from data;
select max(price) max_price,min(price) min_price from data;
select avg(price) from data where type='c';

null值的處理

分組查詢

select sum(price) from data group by type;
select type,count(id) from data group by type;

條件篩選

select type,count(id) count from data group by type having count=4 order by type;

分頁查詢

分頁顯示

select * from data limit 5;
-- 從第四條開始依次向後顯示五條
select * from data limit 3,5;

insert into select語句

create table data2(
name varchar(10),
price double);
insert into data2 select name,price from data;
select * from data2;
create table data3(
type varchar(10),
num int
);
insert into data3 select type,count(*) from data group by type order by count(*);
select * from data3;

總結

到此這篇關於Mysql的DQL查詢操作全面分析講解的文章就介紹到這了,更多相關Mysql DQL查詢內容請搜尋it145.com以前的文章或繼續瀏覽下面的相關文章希望大家以後多多支援it145.com!


IT145.com E-mail:sddin#qq.com