mysql常用語句練習-基於ecshop2.7.3資料庫(1)

来源:https://www.cnblogs.com/ghostwu/archive/2018/03/10/8537386.html
-Advertisement-
Play Games

SELECT * FROM ecs_goods WHERE goods_id = 1;SELECT goods_id, goods_name FROM ecs_goods WHERE goods_id = 1;SELECT goods_id,cat_id,goods_name FROM ecs_go ...


SELECT * FROM ecs_goods WHERE goods_id = 1;
SELECT goods_id, goods_name FROM ecs_goods WHERE goods_id = 1;
SELECT goods_id,cat_id,goods_name FROM ecs_goods WHERE cat_id != 3;
SELECT goods_id,cat_id,goods_name FROM ecs_goods WHERE cat_id <> 3;
SELECT goods_id,cat_id,goods_name,shop_price FROM ecs_goods WHERE shop_price > 3000;
SELECT goods_id,cat_id,goods_name,shop_price FROM ecs_goods WHERE shop_price <= 100;


SELECT goods_id,cat_id,goods_name,shop_price FROM ecs_goods WHERE cat_id = 4 OR cat_id = 3;
SELECT goods_id,cat_id,goods_name,shop_price FROM ecs_goods WHERE cat_id IN( 3, 4 );


SELECT goods_id,cat_id,goods_name,shop_price FROM ecs_goods WHERE shop_price BETWEEN 100 AND 858;


SELECT goods_id,cat_id,goods_name,shop_price FROM ecs_goods WHERE cat_id != 3 AND cat_id != 4
SELECT goods_id,cat_id,goods_name,shop_price FROM ecs_goods WHERE cat_id NOT IN( 3, 4 );
SELECT goods_id,cat_id,goods_name,shop_price FROM ecs_goods WHERE cat_id NOT BETWEEN 3 AND 4


SELECT goods_id,cat_id,goods_name,shop_price FROM ecs_goods WHERE ( shop_price > 100 AND shop_price < 300 )
OR ( shop_price > 1000 AND shop_price < 3000 );


SELECT goods_id,cat_id,goods_name,shop_price,click_count FROM ecs_goods WHERE (cat_id = 3 ) AND ( shop_price >= 1000 AND shop_price <= 3000 )
AND ( click_count > 5 )

 

SELECT * FROM ecs_goods WHERE cat_id IN ( 2, 3, 4, 5 )

SELECT goods_id,cat_id,goods_name FROM ecs_goods WHERE goods_name LIKE '諾基亞%'

 

 #把表中欄位num取值範圍為20~29之間的值變成20【註:ecshop2.7.3沒有這個ecs_mian1這個表,可以自己創建一個,他就一個欄位num, int類型,然後填充一些測試數據】

UPDATE ecs_mian1 SET num = ( FLOOR( num / 10 ) * 10 ) WHERE num >= 20 AND num <= 29

 #把表中欄位num取值範圍為30~39之間的值變成30

UPDATE ecs_mian1 SET num = ( FLOOR( num / 10 ) * 10 ) WHERE num BETWEEN 30 AND 39

 

#以”諾基亞"開頭的商品

SELECT goods_id, goods_name FROM ecs_goods WHERE goods_name LIKE '諾基亞%';

#截取"諾基亞"後面的商品名稱,並用"小米"開始 連接起來
SELECT goods_id, CONCAT( '小米', SUBSTRING( goods_name, 4 ) ) FROM ecs_goods WHERE goods_name LIKE '諾基亞%';

#截取"諾基亞"後面的商品名稱,並用"小米"開始 連接起來後更新
UPDATE ecs_goods SET goods_name = CONCAT( '小米', SUBSTRING( goods_name, 4 ) ) WHERE goods_name LIKE '諾基亞%'

#以上面的語句相反
UPDATE ecs_goods SET goods_name = CONCAT( '諾基亞', SUBSTRING( goods_name, 4 ) ) WHERE goods_name LIKE '小米%'

 

關於NULL:

SELECT NULL = NULL
SELECT NULL != NULL

#建表
CREATE TABLE ghost_user_info(
id INT( 3 ),
user_name VARCHAR( 20 )
)CHARSET utf8 ENGINE MYISAM;

#插入測試數據
INSERT INTO ghost_user_info VALUES( 1, '張三' );
INSERT INTO ghost_user_info VALUES( 2, NULL );

#user_name不等於NULL的記錄,不能這樣寫
SELECT * FROM ghost_user_info WHERE user_name != NULL

#user_name不等於NULL的記錄,應該這樣寫
SELECT * FROM ghost_user_info WHERE user_name IS NOT NULL

#同樣的,等於NULL的記錄應該是 IS NULL而不是 = NULL
SELECT * FROM ghost_user_info WHERE user_name = NULL
SELECT * FROM ghost_user_info WHERE user_name IS NULL

 #統計函數

SELECT AVG( shop_price ) FROM ecs_goods;
SELECT MAX( shop_price ) FROM ecs_goods;
SELECT MIN( shop_price ) FROM ecs_goods;
SELECT COUNT(*) FROM ecs_goods;
SELECT SUM( shop_price ) / COUNT(*) FROM ecs_goods;

#積壓貨款
SELECT SUM( shop_price * goods_number ) FROM ecs_goods;

 #統計每個分類的商品平均價格, group比較耗費資源(先按cat_id排序,再統計)

SELECT cat_id,AVG( shop_price ) FROM ecs_goods GROUP BY cat_id;

#查詢每個分類下,商品的數量
SELECT cat_id, COUNT(*) FROM ecs_goods GROUP BY cat_id;

#每個分類下最貴的產品
SELECT cat_id, MAX(shop_price) FROM ecs_goods GROUP BY cat_id;

 

#本店價格比市場價格小200以上的商品
SELECT goods_id, goods_name, market_price - shop_price FROM ecs_goods WHERE market_price - shop_price > 200

#下麵的語句,報錯(Unknown column 'discount_price' in 'where clause' ),discount_price這個別名是結果集中(存在記憶體中)的,where後面的欄位需要是磁碟表中的欄位

SELECT goods_id, goods_name, ( market_price - shop_price ) AS discount_price FROM ecs_goods WHERE discount_price > 200

#可以用having關鍵字過濾查詢出來的結果集
SELECT goods_id, goods_name, ( market_price - shop_price ) AS discount_price FROM ecs_goods WHERE 1 HAVING discount_price > 200

#多列排序

SELECT goods_id, cat_id, goods_name, shop_price FROM ecs_goods ORDER BY cat_id ASC, shop_price DESC;

 

#查詢最新的商品1
SELECT goods_id, goods_name, cat_id FROM ecs_goods ORDER BY goods_id DESC LIMIT 0,1
#下麵兩句組合,等於後面的where子查詢
SELECT goods_Id, goods_name,cat_id FROM ecs_goods WHERE goods_id = 32
SELECT MAX( goods_id ) FROM ecs_goods;
#(where子查詢)查詢最新的商品2
SELECT goods_Id, goods_name,cat_id FROM ecs_goods WHERE goods_id = ( SELECT MAX( goods_id ) FROM ecs_goods );

 

#from子查詢:每一個分類下,最大的產品id( 最新的產品 )
SELECT goods_id, goods_name, cat_id FROM ecs_goods ORDER BY cat_id ASC, goods_id DESC
#把上面的語句 當前一個臨時的表,放在from後面 組成一個from子查詢
SELECT goods_id, goods_name, cat_id FROM ( SELECT goods_id, goods_name, cat_id FROM ecs_goods ORDER BY cat_id ASC, goods_id DESC ) AS tmp GROUP BY cat_id

 


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

-Advertisement-
Play Games
更多相關文章
  • 嵌入式開發常見問題解決方法 一、問題復現 穩定復現問題才能正確的對問題進行定位、解決以及驗證。一般來說,越容易復現的問題越容易解決。 1.1 模擬復現條件 有的問題存在於特定的條件下,只需要模擬出現問題的條件即可復現。對於依賴外部輸入的條件,如果條件比較複雜難以模擬可以考慮程式里預設直接進入對應狀態 ...
  • 前言 筆者多年前便維護過ELK,但是由於站點日誌流量及伺服器數量並不是很多基本都是單機搞定。 然而光Web伺服器就400+,Nginx日誌大小每天50G+,加上其他業務系統日誌,之前單機ELK顯然不足以支撐現有的業務場景。 規劃篇 目前的業務採用阿裡雲+自建機房的模式,阿裡雲做為線上業務,自建機房做 ...
  • 一、下載與安裝Readis Github下載地址:https://github.com/MicrosoftArchive/redis/tags 下載.MSI後下一步安裝即可 二、驗證安裝 ...
  • 本文目錄:1. 配置haproxy需要考慮的事情2. 配置haproxy提供反向代理功能 haproxy是一個非常優秀的負載均衡工具,它的特性非常豐富,功能也非常非常強大,要想好好使用它,將它的功能和性能挖掘出來,多多閱讀官方手冊是必不可少的。 本文提供一個簡單的配置示例,後面將分別開文章詳細解釋它 ...
  • 一、介紹 目的:通過本文瞭解並掌握Linux系統安裝的過程 軟體環境 Linux系統:CentOS7.3 虛擬機:VM12 主機系統:Windows8.0 二、安裝虛擬機 首先,需要下載VMware Workstation軟體,下載完後進行安裝 1,雙擊VM戶,出現歡迎的界面 2,一直點下一步,設置 ...
  • 繼上一篇文章:http://www.cnblogs.com/linhaostudy/p/8515277.html 三、tinymixer調用分析:(tinymixer.log搜索節點:/dev/snd/controlCx) 還是一樣,系統調用從應用層到kernel層,都要通過VFS來到file_op ...
  • 一、數據類型 截圖來源: http://www.runoob.com/mysql/mysql-data-types.html 二、基本語句 1、創建數據表 2、刪除數據表 3、新增數據 4、刪除數據 5、更新數據 6、查詢數據 7、表欄位修改 三、其他函數 1、判斷 2、逗號拼接 3、判空 4、轉換 ...
  • 寫一條SQL語句,求出2門以及2門以上不及格的科目平均分 >要出現2門以及2門以上的學科不及格 >計算該考生所有學科的平均分,不單是,不及格的那幾門 #創建表: 思路一: 求出score < 60的科目數,然後統計平均分 這個結果是錯誤的,原因在於: " 用where過濾了score < 60的科目 ...
一周排行
    -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.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...