程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> MYSQL數據庫 >> MySQL綜合教程 >> mysql-5 數據檢索(3),mysql-5數據檢索

mysql-5 數據檢索(3),mysql-5數據檢索

編輯:MySQL綜合教程

mysql-5 數據檢索(3),mysql-5數據檢索


計算字段

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

拼接字段

例子: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;

 

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved