序文: MySQL データベースは、よく使用される集計関数、日付および文字列処理関数など、幅広い関数を提供します。これらの関数は、SELECT ステートメントとその条件式の両方で使用できます。関数を使用すると、ユーザーはテーブル内のデータをより便利に処理できるため、MySQL データベースがより強力になります。この記事では主に、いくつかの一般的な機能の使い方を紹介します。 1. 集計関数 集計関数は、よく使用される関数の一種です。以下に一覧を示します。
2. 数値関数 数値関数は主に、数値データを処理して目的の結果を得るために使用されます。よく使用される関数をいくつか以下に示します。具体的な使用方法を試すことができます。
例: # ABS() 関数は絶対値を計算しますmysql> SELECT ABS(5),ABS(-2.4),ABS(-24),ABS(0); +--------+-----------+----------+---------+ | ABS(5) | ABS(-2.4) | ABS(-24) | ABS(0) | +--------+-----------+----------+---------+ | 5 | 2.4 | 24 | 0 | +--------+-----------+----------+---------+ # 丸め関数 CEIL(x) と CEILING(x) は同じ意味を持ち、x 以上の最小の整数値を返します。mysql> SELECT CEIL(-2.5),CEILING(2.5); +------------+--------------+ | 天井(-2.5) | 天井(2.5) | +------------+--------------+ | -2 | 3 | +------------+--------------+ # 剰余関数 MOD(x,y) は、x を y で割った余りを返します。mysql> SELECT MOD(63,8),MOD(120,10),MOD(15.5,3); +-----------+-------------+--------------+ | MOD(63,8) | MOD(120,10) | MOD(15.5,3) | +-----------+-------------+--------------+ | 7 | 0 | 0.5 | +-----------+-------------+--------------+ # RAND() 関数が呼び出されると、0 から 1 の間の乱数を生成できます。mysql> SELECT RAND(), RAND(), RAND(); +---------------------+--------------------+----------------------+ | RAND() | RAND() | RAND() | +---------------------+--------------------+----------------------+ | 0.24996517063115273 | 0.9559759106077029 | 0.029984071878701515 | +---------------------+--------------------+----------------------+ 3. 文字列関数 文字列関数は文字列型のデータを処理でき、プログラム アプリケーションで非常に便利です。よく使用される関数をいくつか示します。
例: # LENGTH(str) 関数の戻り値は文字列のバイト長です。mysql> SELECT LENGTH('name'), LENGTH('database'); +----------------+---------------------+ | 長さ('名前') | 長さ('データベース') | +----------------+---------------------+ | 4 | 9 | +----------------+---------------------+ # CONCAT(sl, s2, ...) 関数は、パラメータを連結して生成された文字列を返します。いずれかのパラメータが NULL の場合、戻り値は NULL になります。 mysql> SELECT CONCAT('MySQL','5.7'),CONCAT('MySQL',NULL); +----------------------+----------------------+ | CONCAT('MySQL','5.7') | CONCAT('MySQL',NULL) | +----------------------+----------------------+ | MySQL5.7 | NULL | +----------------------+----------------------+ # INSERT(s1, x, len, s2)は、位置xから始まる部分文字列を含む文字列s1を返し、s2をlen文字の長さの文字列に置き換えます。 mysql> SELECT INSERT('フットボール',2,4,'プレイ') AS col1, -> INSERT('フットボール',-1,4,'プレイ') AS col2, -> INSERT('フットボール',3,20,'プレイ') AS col3; +----------+----------+---------+ | 列1 | 列2 | 列3 | +----------+----------+---------+ | FPlayall | フットボール | FoPlay | +----------+----------+---------+ # UPPER、LOWER は大文字と小文字を変換する関数です。mysql> SELECT LOWER('BLUE'), LOWER('Blue'), UPPER('green'), UPPER('Green'); +---------------+---------------+----------------+----------------+ | LOWER('BLUE') | LOWER('Blue') | UPPER('green') | UPPER('Green') | +---------------+---------------+----------------+----------------+ | 青 | 青 | 緑 | 緑 | +---------------+---------------+----------------+----------------+ # LEFT、RIGHT は左または右の文字列をインターセプトする関数です。mysql> SELECT LEFT('MySQL',2), RIGHT('MySQL',3); +-+----------------------------------+ | 左('MySQL',2) | 右('MySQL',3) | +-+----------------------------------+ | マイ | SQL | +-+----------------------------------+ # REPLACE(s, s1, s2) は文字列 s 内の文字列 s1 のすべての出現を文字列 s2 に置き換えます。 mysql> SELECT REPLACE('aaa.mysql.com','a','w'); +----------------------------------+ | REPLACE('aaa.mysql.com','a','w') | +----------------------------------+ | 日本語 +----------------------------------+ # 関数SUBSTRING(s, n, len)はlenパラメータの形式を受け取り、位置nから始まる長さlen文字の部分文字列を文字列sから返します。 mysql> SELECT SUBSTRING('computer',3) AS col1, -> SUBSTRING('コンピュータ',3,4) AS col2, -> SUBSTRING('コンピュータ',-3) AS col3, -> SUBSTRING('コンピュータ',-5,3) AS col4; +--------+------+------+------+ | 列1 | 列2 | 列3 | 列4 | +--------+------+------+------+ | mputer | mput | ter | put | +--------+------+------+------+ 4. 日付と時刻の機能
例: # CURDATE() 関数と CURRENT_DATE() 関数は同じ機能を持ち、現在の日付を "YYYY-MM-DD" または "YYYYMMDD" 形式で返します。mysql> SELECT CURDATE(),CURRENT_DATE(),CURRENT_DATE()+0; +------------+----------------+------------------+ | CURDATE() | CURRENT_DATE() | CURRENT_DATE()+0 | +------------+----------------+------------------+ | 2019-10-22 | 2019-10-22 | 20191022 | +------------+----------------+------------------+ # MONTH(date) 関数は、指定された日付に対応する月を返します。mysql> SELECT MONTH('2017-12-15'); +---------------------+ | 月('2017-12-15') | +---------------------+ | 12 | +---------------------+ # DATE_ADD(date,INTERVAL expr type) と ADDDATE(date,INTERVAL expr type) は同じ関数を持ち、どちらも日付加算演算を実行するために使用されます。 mysql> DATE_ADD('2018-10-31 23:59:59',INTERVAL 1 SECOND) を C1 として選択します。 -> DATE_ADD('2018-10-31 23:59:59',INTERVAL '1:1' MINUTE_SECOND) AS C2, -> ADDDATE('2018-10-31 23:59:59',間隔1秒) AS C3; +---------------------+---------------------+---------------------+ | C1 | C2 | C3 | +---------------------+---------------------+---------------------+ | 2018-11-01 00:00:00 | 2018-11-01 00:01:00 | 2018-11-01 00:00:00 | +---------------------+---------------------+---------------------+ # DATEDIFF(date1, date2)は開始時刻date1と終了時刻date2の間の日数を返しますmysql> SELECT DATEDIFF('2017-11-30','2017-11-29') AS COL1, -> DATEDIFF('2017-11-30','2017-12-15') を col2 として計算します。 +------+------+ | 列1 | 列2 | +------+------+ | 1 | -15 | +------+------+ # DATE_FORMAT(date, format)関数は、formatで指定された形式に従って日付値を表示します。mysql> SELECT DATE_FORMAT('2017-11-15 21:45:00','%W %M %D %Y') AS col1, -> DATE_FORMAT('2017-11-15 21:45:00','%h:i% %p %M %D %Y') AS col2; +------------------------------+----------------------------+ | 列1 | 列2 | +------------------------------+----------------------------+ | 2017 年 11 月 15 日水曜日 | 2017 年 11 月 15 日午後 9:1 | +------------------------------+----------------------------+ 5. プロセス制御機能 プロセス制御関数は条件付き操作を実行して SQL 条件付きロジックを実装できるため、開発者は以下に示すように、一部のアプリケーション ビジネス ロジックをデータベース バックエンドに変換できます。
例: # IF ステートメントを使用すると、条件または式の値に基づいて SQL ステートメントのグループを実行できます。mysql> SELECT IF(1<2,1,0) c1,IF(1>5,'√','×') c2,IF(STRCMP('abc','ab'),'yes','no') c3; +----+----+-----+ | c1 | c2 | c3 | +----+----+-----+ | 1 | × | はい | +----+----+-----+ # IFNULL は 2 つの引数を受け入れ、最初の引数が NULL でない場合は最初の引数を返します。それ以外の場合、IFNULL 関数は 2 番目の引数を返します。mysql> SELECT IFNULL(5,8),IFNULL(NULL,'OK'); +-------------+-------------------+ | IFNULL(5,8) | IFNULL(NULL,'OK') | +-------------+-------------------+ | 5 | わかりました | +-------------+-------------------+ # NULLIF 関数mysql> SELECT NULLIF(5,8),NULLIF(8,8); +-------------+--------------+ | NULLIF(5,8) | NULLIF(8,8) | +-------------+--------------+ | 5 | NULL | +-------------+--------------+ # CASE WHEN functionmysql> SELECT CASE WHEN 1>0 THEN 'true' ELSE 'false' END; +--------------------------------------------+ | CASE WHEN 1>0 THEN 'true' ELSE 'false' END | +--------------------------------------------+ | 本当です | +--------------------------------------------+ mysql> SELECT CASE 11 WHEN 1 THEN 'one' -> WHEN 2 THEN 'two' ELSE 'more' END; +-------------------------------------------------------------+ | ケース 11 1 の場合、「1」 2 の場合、「2」、それ以外の場合、「さらに」で終了 | +-------------------------------------------------------------+ | 詳細 | +-------------------------------------------------------------+ 6. 暗号化機能 暗号化関数は主に文字列を暗号化するために使用されます。よく使用される関数をいくつか以下に示します。
例: # ENCRYPT 関数mysql> SELECT ENCRYPT('root','salt'); +------------------------+ | ENCRYPT('ルート','ソルト') | +------------------------+ |saFKJij3eLACw | +------------------------+ # MD5() 関数mysql> SELECT MD5('123456'); +----------------------------------+ | MD5('123456') | +----------------------------------+ |e10adc3949ba59abbe56e057f20f883e | +----------------------------------+ # パスワード関数mysql> select PASSWORD('abcd'); +------------------------------------------+ | パスワード('abcd') | +------------------------------------------+ | *A154C52565E9E7F94BFC08A1FE702624ED8EFFDA | +------------------------------------------+ 要約: この記事では、主によく使用される MySQL 関数の機能を紹介し、いくつかの関数の使用方法を簡単に説明します。実際の環境では、これらの関数はネストされて、より複雑な方法で使用される場合があります。使用時には、各パラメータの役割にさらに注意を払っていただければ幸いです。 これで、よく使われるMySQL関数のまとめの記事は終了です。より関連性の高いMySQLのよく使われる関数については、123WORDPRESS.COMの過去の記事を検索するか、以下の関連記事を引き続き閲覧してください。今後とも123WORDPRESS.COMをよろしくお願いいたします。 以下もご興味があるかもしれません:
|
<<: ZabbixはSNMPに基づいてLinuxホストを監視します
>>: 初心者でもjsのtypeofとinstanceofの違いを理解できます
1. mycatとはエンタープライズアプリケーション開発のための完全にオープンソースの大規模データベ...
まずMySQLソースをクエリするdocker 検索 mysql公式ウェブサイトにアクセスしてイメージ...
Vueバスの簡単な使い方シナリオの説明:コンポーネント A にはコンポーネント B と C が含まれ...
SQLはテーブル内の重複レコードをすべて見つけます1. テーブルには id と name の 2 つ...
MySQL における Regexp の一般的な使用法特定の文字列を含むあいまい一致# コンテンツフィ...
1. 場所の正規表現例を見てみましょう: 場所 = / { # 完全一致 / 、ホスト名の後に文字列...
カウントダウン効果を実現するにはJavascriptを使用します。参考までに、具体的な内容は次のとお...
1. MySQLをインストールするこの記事はAPT経由でインストールされており、インストールされてい...
前回の投稿では、Web ページの作成方法について説明しました。Web サイトは多くの Web ページ...
1: <a> タグを使用してページにリンクする場合、target 属性の役割は誰もが知っ...
以下は、純粋な CSS で記述された画像マウスホバーズーム効果です。実際、基本原理は非常に単純です。...
アーティストになるつもりがない場合は、開発者として HTML を読んで、必要に応じて簡単な変更を加え...
目次序文非同期イテレータとは何ですか?非同期イテレータストリームとしてページング機能を備えたAPIの...
ウェブ全体を検索して、さまざまな落とし穴を見つけましたが、問題は解決しませんでした。ついに自分でも分...
著者: Guan Changlong は、Aikesheng の配送サービス部門の DBA です。主...