他のコンピューター言語と同様に、SQLもデータの処理に関数の使用をサポートしていますが、関数はSQLほど移植性が高くありません。各DBMSの関数は異なる場合があります。関数を使用するときはコメントを書くことをお勧めします
まず、テキスト処理機能
よく使われるテキスト処理関数を見てみましょう
機能 | 解説 |
左() | 文字列の左側の文字を返します |
lenght() | 文字列の長さを返します |
Locate() | 文字列を検索する |
低い() | 文字列を小文字に変換する |
LTRIM() | 文字列の左側のスペースを削除します |
RTrim() | 文字列の右側のスペースを削除します |
正しい() | 文字列の右側の文字を返します |
Soundex() | 文字列のSoundex値を返します |
SubString() | 部分文字列の文字を返します |
アッパー() | 文字列を大文字に変換する |
CONCAT() | スプライシング機能 |
トリム() | すべてのスペースを削除 |
1.スプライスフィールド機能
次のようなフォーマットされたデータを取得する必要があります:洗濯機(300)、ステッチ機能CONCATを使用する必要があります
SELECT CONCAT(name,'(',price,')') FROM product
次に、キーワードASを使用してエイリアスを使用する必要があります
SELECT CONCAT(name,'(',price,')') AS title FROM product
2.大文字の関数を変換する
SELECT UPPER(name) AS name FROM user
第二に、日付処理関数
機能 | 解説 |
AddDate() | 日付(日、週など)を追加します |
AddTime() | 時間を追加(時間、分) |
CurDate() | 現在の日付を返します |
CurTime() | 現在時刻を返します |
日付() | 日付と時刻の日付部分を返します |
DateDiff() | 2つの日付の差を計算する |
Date_Format() | フォーマットされた日付または時刻の文字列を返します |
日() | 日付の日の部分を返します |
DayOfWeek() | 日付の場合、対応する曜日を返します |
時間() | 日付の時間部分を返します |
分() | 日付の分の部分を返します |
口() | 日付の月の部分を返します |
今() | 現在の日付と時刻を返します |
秒() | 時間の秒部分を返します |
時間() | 日付と時刻の時間部分を返します |
年() | 日付の年の部分を返します |
日付クエリを使用する場合、日付形式はyyyy-mm-ddである必要があるため、2005年9月1日のクエリ形式は2005-9-1である必要があります。
次の日付クエリを使用してみましょう
1. 2020年4月13日に製品をクエリする場合、ストレージ形式にはすべて時間値があるため、WHERE last_time = '2020-4-13'を使用できません。
解决的办法是使用Date()函数,提取列的日期部分
SELECT * FROM product WHERE DATE(last_time) ='2020-04-13'
2、当我们要查询一个月的数据则可以使用BETWEEN AND
现在查询4月份的数据
SELECT * FROM product WHERE DATE(last_time) BETWEEN '2020-4-1' AND '2020-4-30'
3、如果我们记不住每个月有多少天,则可以用下面的SQL语句
SELECT * FROM product WHERE YEAR(last_time) = 2020 AND MONTH(last_time) = 4
三、数值处理函数
数值函数仅仅处理数值数据,这些函数一般用于代数、三角或几何运算
函数 | 说明 |
Abs() | 返回一个数的绝对值 |
Cos() | 返回一个角度的余弦 |
Exp() | 返回一个数的指数值 |
Mod() | 返回除操作的余数 |
Pi() | 返回圆周率 |
Rand() | 返回一个随机数 |
Sin() | 返回一个角度的正弦 |
Sqrt() | 返回一个数的平方根 |
Tan() | 返回一个角度的正切 |
总结:本章只是初步介绍了MYSQL函数的应用,具体函数的应用和变化,必须根据MySQL具体版本查阅文档