MySQL(四)字段及常用函數


一、字段

數據庫表中的每一行叫做一個“記錄”,每一個記錄包含這行中的所有信息,但記錄在數據庫中並沒有專門的記錄名,常常用它所在的行數表示這是第幾個記錄。

在數據庫中存放在表行列交叉處的數據叫做“值”,它是數據庫中最基本的存儲單元,它的位置要由這個表中的記錄和字段來定義。

1、字段(filed):與對象或類關聯的變量(大多數時候,與列的意思相同);每個字段由若干按照某種界限划分的相同數據類型的數據項組成。

但有時候,字段不是表中的列,而是在計算字段的連接上;

2、拼接(concatenate):用來拼接2個列的函數,可將值聯結到一起構成單個值

PS:多數DBMS使用+或者||實現拼接,MySQL則使用concat()函數來實現(當把SQL語句轉換為MySQL語句時,要注意這個區別)

concat()函數:拼接串,即把一個或多個串連接起來形成一個較長的串;需要一個或多個指定的串,各個串之間用逗號分隔

3、別名(alias):一個字段或值的替換名,別名用as關鍵字賦予(比如上面例子中的abc),有時也稱為導出列(derived column)

別名的作用:

①指示SQL創建一個包含指定計算的計算字段

②在實際的表列名包含不符合規定的字符(如空格)時重新命名它

③在原來的名字含混或容易誤解時擴充它

4、算數操作符:計算字段時常用的操作符

計算字段的常見用途就是對檢索出的數據進行算數計算,MySQL基本操作符如下:

其中,圓括號()可用來區分優先順序

 

二、數據處理函數

1、特點

SQL支持利用函數來處理數據,函數一般都是在數據上執行的

函數沒有SQL的可移植性強(能運行在多個系統上的代碼稱為可移植的{portable}),多數SQL是可移植的

函數可移植性不強(幾乎每種主要的DBMS的實現都支持其他實現不支持的函數,而且有時差異很大)

PS:如果使用函數,應保證做好代碼注釋,以便日后使用時可以確切知道所編寫的SQL代碼的含義

大多數SQL實現支持一下類型函數:

①用於處理文本串(刪除填充值,轉換值大小寫等)的文本處理函數

②用於在數值數據上進行算數操作(如返回絕對值,進行代數運算)的數值處理函數

③用於處理日期和時間值並從這些值中提取特定成分(如返回兩個日期之差,檢查日期有效性等)的日期和時間處理函數

④返回DBMS正在使用的特殊信息(如返回用戶登陸信息,檢查版本細節等)的系統函數

2、文本處理函數

例子:select column upper(column) as column1 from table order by column;

常見的文本處理函數表如下:

soundex是一個將任何文本串轉換為描述其語音表示的字母數字模式的算法;soundex考慮了類似的發音字符和音節,使得能對串進行發音比較而不是字母比較(多數DBMS都提供對其的支持)

3、數值處理函數

數值處理函數僅處理數值數據,這些函數一般主要用於代數、三角或幾何計算,使用頻率相對不是太高(在主要的DBMS中,數值函數是最統一最一致的函數)

常用數值處理函數表如下:

4.日期和時間處理函數

日期和時間采用相應的數據類型和特殊的格式存儲,一遍可以快速有效的排序或過濾,並且節省物理存儲空間

一般來說應用程序不適用用來存儲日期和時間的格式,因此日期和時間函數總是被用來讀取、統計和處理這些值(日期和時間函數在MySQL語言中具有重要的作用)

常用日期和時間處理函數表如下:

PS:對於日期,無論插入更新還是使用where子句進行過濾,日期格式必須為yyyy-mm--dd,而且應始終使用4位數字的年份

    如果需要的是日期值,使用date()函數是一個好習慣;如果想要時間值時,time()函數也是最好的選擇

例子:select column1, column2 from table where date(table_date) between '2013-05-20' and '2014-5-20';

其中between操作符用來把2013-05-20和2014-05-20定義為一個要匹配的日期范圍

select column1, column2 from table where year(table-date) = 2013 and month(table_date) = 5;

year()是一個日期(從日期時間)中返回年份的函數,month()從日期中返回月份;

因此,where year(table-date) = 2013 and month(table_date) = 9檢索出table_date為2013年5月的所有行!

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM