基本的查詢語句

来源:http://www.cnblogs.com/caigq/archive/2017/07/01/7049194.html
-Advertisement-
Play Games

查詢的格式: select [distinct] *(所有)| 欄位名... from 表名 [where 條件過濾]查詢指定欄位信息pname priceselect pname,price from products; 查詢表中所有欄位select * from products; 去除金額重覆 ...


查詢的格式:
select [distinct] *(所有)| 欄位名... from 表名 [where 條件過濾]
查詢指定欄位信息pname price
select pname,price from products;

查詢表中所有欄位
select * from products;

去除金額重覆的記錄
select distinct price from products;

別名查詢 使用的as關鍵字 as可以省略
select pname as 名稱 ,price as 價格 from products;
select pname 名稱,price 價格 from products;

我們在sql語句中的操作中,可以直接對列進行運算
select (1+1);
select (5/2);

查詢出所有的商品價格,把價格增加20元
select pname ,price+20 from products;


條件查詢語句
格式:
select [distinct] *(所有)|欄位名,....from 表名 [where 條件過濾]
比較運算符
> < >= = <= <>(!=)
is null是否為null
邏輯運算符
與 and
或 or
非 not
模糊查詢
like
%:任意多個字元
_:單個字元
查詢商品名稱為"花花公子"的商品信息
select * from products where pname = '花花公子';
select * from products where pname in ('花花公子');

查詢價格為800的商品
select * from products where price = 800;

查詢價格不是800的所有商品
select * form products where price !=800;
select * from products where price <>800;
seelct * from products where price not in (800);
select * from products where not price in (800);

查詢商品價格大於60的所有商品信息
select * from products where price >60;

查詢商品價格在200到1000之間的所有商品
select * from products where price >=200 and <=1000;
使用between and 進行改造
小的數值必須寫在前面 可以對日期進行查詢
select * from products where price between 200 and 1000;

查詢商品價格是200或800的所有商品
SELECT * FROM products WHERE price=200 OR price=800;

使用in(多個欄位)改造
SELECT * FROM products WHERE price IN(200,800);

查詢名稱以'香'開頭的所有商品
SELECT * FROM products WHERE pname='香'; -- 沒有結果
SELECT * FROM products WHERE pname LIKE '香%'

查詢名稱以'霸'結尾的所有商品
SELECT * FROM products WHERE pname LIKE '%霸'

查詢名稱含有'霸'字的所有商品
SELECT * FROM products WHERE pname LIKE '%霸%'

查詢出名稱中是五個字的所有商品
SELECT * FROM products WHERE pname LIKE '_____';

查詢名稱第二個字為'想'的所有商品
SELECT * FROM products WHERE pname LIKE '_想%';

查詢商品名稱是null的值
SELECT * FROM products WHERE pname IS NULL;

查詢商品名稱不是null的值
SELECT * FROM products WHERE pname IS NOT NULL; -- 是不空
SELECT * FROM products WHERE NOT (pname IS NULL);

 

排序查詢
格式:
select 欄位|* from 表名 [where 條件過濾] [order by 欄位[ASC][DESC]]
升序:ASC 預設為升序
降序:DESC
註意:
排序order by 要寫在select語句末尾

1.使用價格排序(升序)
SELECT * FROM products ORDER BY price ASC;
SELECT * FROM products ORDER BY price;

2.使用價格排序(降序)
SELECT * FROM products ORDER BY price DESC;

3.顯示商品的價格(去重覆),併排序(降序)
SELECT DISTINCT price FROM products ORDER BY price DESC;

4.顯示商品的價格大於1000的商品所有信息,併排序(降序)
SELECT * FROM products WHERE price >1000 ORDER BY price DESC;

5.根據商品名稱排序 預設使用編碼表排序
SELECT * FROM products ORDER BY pname DESC;

 

聚合函數:
對列進行操作,返回的結果是一個單一的值,忽略空值
count:統計指定列不為NULL的記錄行數;
sum:計算指定列的數值和,如果指定列類型不是數值類型,那麼計算結果為0;
max:計算指定列的最大值,如果指定列是字元串類型,那麼使用字元串排序運算;
min:計算指定列的最小值,如果指定列是字元串類型,那麼使用字元串排序運算;
avg:計算指定列的平均值,如果指定列類型不是數值類型,那麼計算結果為0;
格式:
select 聚合函數(欄位) from 表名

1 查詢商品的總條數
SELECT COUNT(*) FROM products;-- 13
SELECT COUNT(pname) FROM products;-- 忽略空值 12
SELECT COUNT(price) FROM products;-- 13

2 查詢價格大於200商品的總條數
SELECT COUNT(*) FROM products WHERE price >200;

3. 對商品表查詢,對所有的金額求和計算
SELECT SUM(price) FROM products;
對非數值欄位求和結果為0
SELECT SUM(pname) FROM products;

4.對商品表查詢,對所有的金額計算平均值
SELECT AVG(price) FROM products;

5. 統計出商品表中價錢的最大與最小值
SELECT MAX(price),MIN(price) FROM products;
SELECT MAX(price)最大值,MIN(price)最小值 FROM products;

SELECT * FROM products;

 

分組查詢語句:
select 被分組的欄位 from 表名 group by 欄位 [having 欄位]
註意:
被分組的欄位,一定要寫在select後面

需求:
根據商品名稱相同,對數據進行分組,對每組數據進行求和

SELECT pname,SUM(price) FROM products GROUP BY pname;

-- 需求:對分組求和的結果進行過濾,只顯示求和結果大於1000的商品
/*
where:只能在查詢的過程中進行過濾,不能對結果過濾
having:對分組數據的查詢結果,再次進行條件過濾
*/
-- 先查詢出價格大於1000的商品,對大於1000的商品進行分組求和
SELECT pname,SUM(price) s FROM products WHERE price > 1000 GROUP BY pname;

SELECT pname,SUM(price) s FROM products GROUP BY pname
HAVING s>1000;

SELECT pname,SUM(price) s FROM products GROUP BY pname
HAVING SUM(price)>1000;


分頁查詢
可以使用關鍵字 limit m,n
m:可以變化頁碼1,2,3,4
n:固定不變的分頁數(每頁5條)
資料庫的數據是從0開始

-- 只要前5條數據
SELECT * FROM products LIMIT 5;

-- 要0開始到5結束的數據(第一頁的數據)
-- 從0開始要5個數據
SELECT * FROM products LIMIT 0,5;

-- 要6開始到10結束的數據(第一頁的數據)
-- 從6開始要5個數據
SELECT * FROM products LIMIT 5,5;

-- 要11開始到15結束的數據(第一頁的數據)
-- 從10開始要5個數據
SELECT * FROM products LIMIT 10,5;


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 一,效果圖。 二,工程圖。 三,代碼。 ViewController.h ViewController.m ...
  • 1、向數據表添加註釋及查詢表註釋 2、向表中添加列及添加相應註釋 ...
  • 而這就是我們最初設定的願景。 加速高質量的交付,提升開發者的價值。我們技術團隊所做的每一個步驟、每一個過程都是疊加的、遞增的,日拱一卒,功不唐捐。 ...
  • 絕對值函數ABS() 圓周率PI(),小數預設6位 平方根函數SQRT() 求餘函數MOD(x,y) 向上取整CEIL(x),CEILING(x) 向下取整FLOOR(x) 隨機數RAND(),RAND(x) :產生0~1之間的浮點數,有參數時,相同的參數產生的隨機數相等 四捨五入ROUND(x) ...
  • Memcached是一個自由開源的,高性能,分散式記憶體對象緩存系統。 key-value存儲方式。 Memcached只有String的存儲結構。 ...
  • 本文出處:http://www.cnblogs.com/wy123/p/7102128.html (保留出處並非什麼原創作品權利,本人拙作還遠遠達不到,僅僅是為了鏈接到原文,因為後續對可能存在的一些錯誤進行修正或補充,無他) 本文的資料庫版本是MySQL5.7.18,簡單介紹一下MySQL數據文件目 ...
  • ACID:資料庫事務正確執行所必須滿足的四個基本要素的縮寫: 原子性(atomicity,或叫不可分割性),一致性(consistency),隔離性(isolation,又稱獨立性),持久性(durability)。 四大特性 原子性:一個事務(transaction)中的所有操作,要麼全部完成,要 ...
  • 資料庫事務的隔離等級,英語叫做 Transaction Isolation Level。 最近在給客戶維護項目的時候,對一個表在兩個進程中同時做更新和查詢時碰到了死鎖(DeadLock),數據表裡有幾百萬上千萬條記錄,上面的處理當時是更新幾千條記錄, 查詢整張表。 這是前提,為了搞明白這個死鎖,大概 ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...