mysql簡介
MySQL是一種開放原始碼的關係型資料庫管理系統(RDBMS),MySQL資料庫系統使用最常用的資料庫管理語言--結構化查詢語言 (SQL)(SQL)進行資料庫管理。
拼接欄位
儲存在資料庫表中的資料一般不是應用程式所需要的格式。我們需要直接從資料庫中檢索出轉換、計算或格式化過的資料;而不是檢索出資料,然後再在客戶機應用程式或報告程式中重新格式化。
計算欄位(欄位 = 列,不過資料庫列一般稱為列,而欄位通常用於計算欄位中)並不實際存在於資料庫表中,計算欄位是運行時在select語句內建立的。
拼接 concatenate 將值連接到一起構成單個值
在MySQL的select語句中,可使用Concat()函數來拼接兩個列。
如建立由兩列組成的標題:產生一個供應商報表,需要在供應商的名字中按照name(location)這樣的格式列出供應商的位置。此報表需要單個值,而表中資料存放區的兩個列vend_name和vend_country中。還需要用括弧將vend_country括起來。
新建立的列用AS賦一個別名
去除空白
Ltrim() RTrim() Trim()
執行算術計算
比如物品單單表格儲存體物品的價格和數量,但是不需要儲存每個物品的總價格(用價格乘以數量即可)。 為列印發票,需要物品的總價格。即需要增加一列,根據已有的列計算出來。
文本函數
left() 串左邊字元
length() 串長度
locate() 找出串的一個子串
lower() 轉為小寫
ltrim() 去掉左邊空格
right() 返回串右邊字元
rtrim() 去掉串右邊空格
soundex() 返回字串soundex值
upper() 大寫
將選擇的文本轉換成大寫
select Upper(vend_name)from vendors;
Soundex()函數:將任何文本傳轉換為描述其語音表示的字元模式的演算法。(語音匹配?對發音比較而不是對字幕比較)
日期函數
日期和時間函數
adddate() 增加一個日期-天或周
addtime() 增加一個時間
curdate() 返回當前日期
curtime() 返回目前時間
date() 返回日期時間的日期部分
datediff() 計算兩個日期差
date_add() 高度靈活的日期運算函數
date_format() 返回一個格式化的日期或時間串
day() 返回一個日期的天數部分
dayofweek() 對於一個日期,返回對應的星期幾
hour()
minute()
month()
now() 當前日期和時間
second()
time() 當前日期時間的時間部分
year()
一般,應用程式不使用用來儲存日期和時間的格式,因此日期和時間函數總是被用來讀取,統計和處理這些值。
MySQL的日期格式:yyyy-mm-dd。 比如 2005-09-01
但是這樣的where order_date = '2005-09-01'不可靠。因為order_date儲存的資料類型是datatime. 這種類型儲存日期及時間值。比如儲存的order_date值為2005-09-01 11:30:05,則where order_date = '2005-09-01'就會匹配失敗。
所以最安全的方法是Date()函數,Date(order_date)指示MySQL提取列的日期部分。
select cust_id, order_numfrom orderswhere Date(order_date) = '2005-09-01';
再比如想要檢索出2005年9月下的所有訂單。
select cust_id, order_numfrom orderswhere Year(order_date) = 2005 and Month(order_date) = 9;
聚集合函式
我們經常需要彙總函數,而不是把它們實際檢索出來。
這種類型的檢索例子:
1. 確定表中行數
2. 獲得表中行組的和
3. 找出表列(or 所有行某些特定的行)的最大值,最小值和平均值
聚集合函式(aggregate function) 運行在行組上,計算和返回單個值的函數。
AVG() 返回某列的平均值
COUNT() 返回某列的行數
MAX() 返回某列的最大值
MIN() 返回某列的最小值
SUM() 返回某列值的和
求某一列的平均值
複製代碼 代碼如下:
select avg(prod_price) as avg_pricefrom products;
- 計數
使用count(*)對錶中行的數目進行計數(whether null or not)
使用count(column)對特定列具有值的行進行計數,忽略null
求和
使用sum()返回指定列值的和
以上所述是小編給大家介紹的MYSQL必知必會讀書筆記第十和十一章之使用函數處理資料的相關知識,希望對大家有所協助!