mysql-5 數據檢索(3)

来源:http://www.cnblogs.com/kafeikele/archive/2016/11/23/6095913.html
-Advertisement-
Play Games

計算欄位 如果想在一個欄位中既顯示公司的名稱,又顯示公司的地址,但是這兩個信息一般包含在不同的表列中 城市、州和郵政編碼存儲在不同的列中,但是郵件標簽列印程式卻需要把它們作為一個恰當格式的欄位檢索出來 物品訂單表存儲物品的價格和數量,但不需要存儲每個物品的總價格,為了列印發票,需要物品的總價 需要根 ...


計算欄位

  • 如果想在一個欄位中既顯示公司的名稱,又顯示公司的地址,但是這兩個信息一般包含在不同的表列中
  • 城市、州和郵政編碼存儲在不同的列中,但是郵件標簽列印程式卻需要把它們作為一個恰當格式的欄位檢索出來
  • 物品訂單表存儲物品的價格和數量,但不需要存儲每個物品的總價格,為了列印發票,需要物品的總價
  • 需要根據表數據進行總數、平均數計算或者其它計算

拼接欄位

例子:vendors表包含供應商名和位置信息。假如要生成一個供應商報表,需要在供應商的名字中按照name(location)這樣的格式列出供應商信息。此報表需要單個值,而表中數據存儲在兩個列vend_name和vend_country中,此外,需要用括弧將vend_country括起來,這些東西都沒有明確存儲在數據表中,我們來看看怎麼樣編寫返回供應商名和位置的select語句

SELECT CONCAT(vend_name, ' (',vend_country,')') FROM vendors ORDER BY vend_name;

這裡用到了concat函數,拼接串,即把多個串連接起來形成一個較長的串,concat需要一個或者多個指定的串,各個串之間用逗號分隔

SELECT CONCAT(RTRIM(vend_name),' (',RTRIM(vend_country),')') FROM vendors ORDER BY vend_name;

rtrim函數去掉值右邊的所有空格,通過使用rtrim(),各個列都進行了整理

使用別名

SELECT CONCAT(RTRIM(vend_id),' (',RTRIM(vend_country),')') AS vend_title FROM vendors ORDER BY vend_name;

執行算數計算

SELECT prod_id ,quantity ,item_price FROM orderitems WHERE order_num = 20005;

SELECT prod_id ,quantity ,item_price, quantity*item_price AS expanded_price  FROM orderitems WHERE order_num = 20005;

使用數據處理函數

upper()函數

SELECT vend_name ,UPPER(vend_name) AS vend_name_upcase FROM vendors ORDER BY vend_name;

     函數                                     說明

   Left()                        返回串左邊的字元

   Length()                   返回串的長度

   Locate()                   找出串的一個子串

   Lower()                    將串轉換為小寫

   LTrim()                     去掉串左邊的空格

   Right()                     返回串右邊的字元

   RTrim()                    去掉串右邊的空格

   Soundex()               返回串的soundex值

   SubString()             返回子串的字元

   upper()                    將串轉為大寫

 

SELECT cust_name , cust_contact FROM customers WHERE SOUNDEX(cust_contact)=SOUNDEX('Y lie');

查找與lie發音相似的cust_contact的列

 日期和時間處理函數

 

SELECT cust_id , order_num FROM orders WHERE order_date = '2005-09-01';
SELECT cust_id , order_num FROM orders WHERE DATE(order_date) = '2005-09-01';

SELECT cust_id , order_num ,order_date FROM orders WHERE DATE(order_date) BETWEEN '2005-09-01' AND '2005-09-30';
SELECT cust_id ,order_num,order_date FROM orders WHERE YEAR(order_date)= 2005 AND MONTH(order_date)= 9;

9月份的所有訂單

SELECT CONCAT(vend_name, ' (',vend_country,')') FROM vendors ORDER BY vend_name;
SELECT CONCAT(RTRIM(vend_name),' (',RTRIM(vend_country),')') FROM vendors ORDER BY vend_name;
SELECT CONCAT(RTRIM(vend_id),' (',RTRIM(vend_country),')') AS vend_title FROM vendors ORDER BY vend_name;
SELECT prod_id ,quantity ,item_price FROM orderitems WHERE order_num = 20005;
SELECT prod_id ,quantity ,item_price, quantity*item_price AS expanded_price FROM orderitems WHERE order_num = 20005;
SELECT vend_name ,UPPER(vend_name) AS vend_name_upcase FROM vendors ORDER BY vend_name;
SELECT cust_name , cust_contact FROM customers WHERE SOUNDEX(cust_contact)=SOUNDEX('Y lie');
SELECT cust_name , cust_contact FROM customers;
SELECT cust_id , order_num FROM orders WHERE order_date = '2005-09-01';
SELECT cust_id , order_num FROM orders WHERE DATE(order_date) = '2005-09-01';
SELECT cust_id , order_num ,order_date FROM orders WHERE DATE(order_date) BETWEEN '2005-09-01' AND '2005-09-30';
SELECT cust_id ,order_num,order_date FROM orders WHERE YEAR(order_date)= 2005 AND MONTH(order_date)= 9;

 


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

-Advertisement-
Play Games
更多相關文章
  • 1、導入資料庫 在命令行下輸入: 說明: username 是資料庫用戶名, test 為目標資料庫, /home/data/test.sql 是你要備份的路徑和名稱 回車,輸入資料庫密碼,就進行導入操作了! 2、導出資料庫 2.1、導出整個資料庫: 說明:username是資料庫用戶名,test源 ...
  • PageSize = 30 PageNumber = 201 方法一:(最常用的分頁代碼, top / not in) 備註: 註意前後的order by 一致 方法二:(not exists, not in 的另一種寫法而已) 備註:EXISTS用於檢查子查詢是否至少會返回一行數據,該子查詢實際上 ...
  • 版權聲明:本文發佈於http://www.cnblogs.com/yumiko/,版權由Yumiko_sunny所有,歡迎轉載。轉載時,請在文章明顯位置註明原文鏈接。若在未經作者同意的情況下,將本文內容用於商業用途,將保留追究其法律責任的權利。如果有問題,請以郵箱方式聯繫作者(793113046@q ...
  • 昨天遇到一個案例,YourSQLDba做事務日誌備份時失敗,檢查YourSQLDba輸出的錯誤信息如下: yMaint.backups backup log [gewem] to disk = 'M:\DB_BACKUP\LOG_BACKUP\xxxx_[2016-11-22_01h11m05_Tu... ...
  • 副本集 可以將MongoDB中的副本集看作一組伺服器集群由一個主節點和多個副本節點等組成,相對於之前講到的主從複製提供了故障自動轉移的功能 副本集實現數據同步的方式依賴於local資料庫中的oplog數據 oplog是存在與主節點或副本節點上的local資料庫中的一個固定集合,記錄了每一次主節點的寫... ...
  • 正文 該項目從2011年10月開始開發,知道現在已經有整整5年了。MongoDB也從一開始的大紅大紫到現在趨於平淡。 MongoCola這個工具在一開始定位的時候只是一個Windows版本的工具,期間也想改為WebPage版本,但是只是開了一個頭,也沒有繼續下去。 現在想想,可能這個決定是正確的,W ...
  • mysql簡介 1、什麼是資料庫 ? 資料庫(Database)是按照數據結構來組織、存儲和管理數據的倉庫,它產生於距今六十多年前,隨著信息技術和市場的發展,特別是二十世紀九十年代以後,數據管理不再僅僅是存儲和管理數據,而轉變成用戶所需要的各種數據管理的方式。資料庫有很多種類型,從最簡單的存儲有各種 ...
  • 本篇學習筆記的主要內容: 介紹MySQL支持的各種數據類型(常用),並講解其主要特點。 MySQL支持多種數據類型,主要包括數值類型、日期和時間類型、字元串類型。 數值類型 MySQL的數值類型包括整數類型、浮點數類型、定點數類型、位類型。 整數類型 MySQL支持的整數類型有tinyint、sma ...
一周排行
    -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.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...