【MySQL 09】よく使う関数
1. 数学関数
ABS(x)はxの絶対値を返します
BIN(x)はxの2進数を返します(OCTは8進数を返し、HEXは16進数を返します)
CEILING(x) x
EXP(x) より大きい最小の整数値 e (自然対数の底) の x 乗を返します
-
FLOOR(x) x
より小さい最大の整数値を返します GREATEST( x1,x2,…,xn) セット内の最大値を返します
LEAST(x1,x2,…,xn) セット内の最小値を返します
LN(x) x の自然対数 LOG( x,y) は x の y の底の対数を返します
-
MOD(x,y) は x/y の法 (剰余) を返します PI() は pi (pi) の値を返します
RAND() 0 から 1 までのランダムな値を返します。パラメーター (シード) を指定することで、RAND() 乱数ジェネレーターに指定された値を生成させることができます。
ROUND(x,y)は、小数点以下y桁のパラメータxの四捨五入した値を返します
SIGN(x)は、数値を表す符号の値を返します 平方根
TRUNCATE(x,y)数値 x を小数点以下 y 桁に切り捨てた結果を返します
2. 集計関数
AVG(col) は指定された列の平均を返します
MIN(col) 指定された列の最小値を返します
MAX(col) 指定した列の最大値を返す
SUM(col) 指定した列のすべての値の合計を返す
GROUP_CONCAT(col) どれか一つに属する値を返すグループのカラム値を連結した結果
3.文字列関数
ASCII(char)は文字のASCIIコード値を返しますBIT_LENGTH(str)は文字列のビット長を返します
-
CONCAT(s1 ,s2…,sn) s1,s2…,sn を文字列に連結します
CONCAT_WS(sep,s1,s2…,sn) s1,s2…,sn を文字列に連結し、sep で区切ります文字
INSERT(str,x,y,instr) は、x 番目の位置から始まる y 文字の長さの文字列 str の部分文字列を文字列 instr に置き換え、結果を返します
FIND_IN_SET(str, list) カンマ区切りを分析します リストのリスト、str が見つかった場合は、リスト内の str の位置を返します
LCASE(str) または LOWER(str) 文字列 str 内のすべての文字を小文字に変更した結果を返します
LEFT(str, x) 文字列の左端の x 文字を返します str
LENGTH(s) 文字列の文字数を返します str
LTRIM(str) 文字列 str
- から先頭のスペースを切り取ります
POSITION(substr,str) 文字列 str
QUOTE(str) 内で最初に出現する部分文字列 substr の位置を返します。 str
REPEAT(str,srchstr , rplcstr) 内の単一引用符をエスケープするにはバックスラッシュを使用します。文字列 str を繰り返した結果を返します
RTRIM(str) は文字列 str の末尾のスペースを返します - STRCMP(s1,s2) は文字列 s1 と s2 を比較します
- TRIM(str) はすべてのスペースを削除します文字列
- の先頭と末尾で UCASE(str) または UPPER(str) は、文字列 str 内のすべての文字を大文字に変換した結果を返します
- 4. 日付と時刻の関数
- CURDATE( ) または CURRENT_DATE() は現在の日付を返します
- DATE_ADD(date,INTERVAL int キーワード) は日付と間隔時間の結果を返します int (int はフォーマットする必要があります)キーワードに従って)、例: SELECTDATE_ADD( CURRENT_DATE,INTERVAL 6 MONTH);
- DATE_FORMAT(date,fmt) は、指定された fmt 形式に従って日付値をフォーマットします
- DATE_SUB(date,INTERVAL int キーワード)日付と間隔時間の結果を int で返します (int はキーワードに従ってフォーマットする必要があります)。例: SELECTDATE_SUB(CURRENT_DATE,INTERVAL 6 MONTH);
- DAYOFWEEK(date) は曜日 (1 ~ 7) を返します。 date
- で表されます。 DAYOFMONTH(date) は、date に対して月の日 (1 ~ 31) を返します。 DAYOFYEAR(date) は、date に対して年間の日 (1 ~ 366) を返します。週の名前 (例: SELECT DAYNAME(CURRENT_DATE);
- FROM_UNIXTIME(ts,fmt) 指定された fmt 形式に従って、UNIX タイムスタンプ ts
- HOUR(time) をフォーマットし、時の値を返します時間の値(0~23)を返します
- MINUTE(time)は時間の分の値を返します(0~59)
- MONTH(date)は日付の月の値を返します(1~12)
- MONTHNAME (date) は、次のような日付名の月を返します。 SELECT
- MONTHNAME(CURRENT_DATE);
- NOW() は、現在の日付と時刻を返します
- QUARTER(date) は、四半期 (1~) を返します4) SELECT QUARTER(CURRENT_DATE);
- WEEK(date) など、年の日付の日付をその年の週 (0~53) として返します
YEAR(date) date の年を返します (1000~9999) いくつかの例: 現在のシステム時刻を取得します:
SELECT FROM_UNIXTIME(UNIX_TIMESTAMP());
SELEC TEXTRACT(YEAR_MONTH FROM CURR) ENT_DATE) ;
SELECT EXTRACT(DAY_SECOND FROM CURRENT_DATE);
SELECT EXTRACT(HOUR_MINUTE FROM CURRENT_DATE);
2 つの日付値の差 (月数) を返します:
PERIOD_DIFF を選択(200302,199802)
Mysql で年齢を計算します:
SELECT DATE_FORMAT(FROM_DAYS(TO_DAYS(NOW())-TO_DAYS(誕生日)),'%Y')+0 AS 年齢FROM社員;
このように、Brithdayを未来の年月日とすると、計算結果は0になります。
次の SQL ステートメントは、従業員の絶対年齢を計算します。つまり、誕生日が将来の日付である場合、負の値が取得されます。
SELECT DATE_FORMAT(NOW(), '%Y') - DATE_FORMAT(誕生日, '%Y') -(DATE_FORMAT(NOW(), '00-%m-%d')
5、暗号化関数
AES_ENCRYPT(str,key): キー key を使用して Advanced Encryption Standard アルゴリズムを使用して文字列 str を暗号化した結果を返します。AES_ENCRYPT を呼び出した結果は、BLOB 型
- に格納されたバイナリ文字列です。
AES_DECRYPT(str,key) は、キー key を使用して Advanced Encryption Standard アルゴリズムを使用して文字列 str を復号化した結果を返します
DECODE(str,key): 暗号化された文字列 str を復号化するためのキーとして key を使用します
-
ENCRYPT (str, Salt): UNIXcrypt() 関数を使用し、キーワード Salt (キーと同様にパスワードを一意に決定できる文字列) を使用して文字列 str
ENCODE (str, key) を暗号化します。キーをパスワードとして使用します。キーは文字列 str を暗号化します。ENCODE() を呼び出した結果はバイナリ文字列であり、
MD5() は文字列 str の MD5 チェックサムを計算します。
PASSWORD(str) は、str の暗号化されたバージョンの文字列を返します。この暗号化プロセスは元に戻すことができず、UNIX パスワード暗号化プロセスとは異なるアルゴリズムを使用します。- SHA() は、パスワードのセキュア ハッシュ アルゴリズム (SHA) チェックサムを計算します。文字列 str
- 例:
- SELECT ENCRYPT('root','key');
SELECT DECODE('xufeng','key'); 'key');
#復号化をまとめます
SELECT AES_ENCRYPT('root','key');
SELECT MD5('123456) ');
SELECT SHA( '123456');
6. 制御フロー関数 MySQL には、条件付き演算のための 4 つの関数があり、開発者は一部のアプリケーション ビジネス ロジックをデータベースに変換できます。バックステージ。
MySQL 制御フロー関数:
-
CASE WHEN[test1] THEN [result1]…ELSE [デフォルト] END
testN が true の場合は resultN を返し、それ以外の場合はデフォルトを返します
CASE [test ] WHEN[val1] THEN [result]…ELSE [default]ENDtestとvalNが等しい場合はresultNを返し、それ以外の場合はdefaultを返す
IF(test,t,f) testがtrueの場合はreturn t; それ以外の場合は f
- IFNULL(arg1,arg2) を返します arg1 が空でない場合は arg1 を返し、それ以外の場合は arg2 を返します
- NULLIF(arg1,arg2) arg1=arg2 の場合は NULL を返し、それ以外の場合は arg1 を返します
- これらの関数の最初の関数は IFNULL() で、2 つのパラメーターを受け取り、最初のパラメーターを評価します。最初のパラメータが NULL でない場合、関数は最初のパラメータを呼び出し元に返します。NULL の場合は 2 番目のパラメータが返されます。
- 例: SELECT IFNULL(1,2), IFNULL(NULL,10),IFNULL(4*NULL,'false'); NULLIF() 関数は、指定された 2 つのパラメーターが等しいかどうかを確認します。等しい場合は NULL が返され、等しくない場合は最初のパラメータが返されます。
- 例: SELECT NULLIF(1,1),NULLIF('A','B'),NULLIF(2+3,4+1);
- および多くのによって提供されるIF()関数スクリプト言語 同様に、MySQL の IF() 関数にも単純な条件テストを作成できます。この関数には 3 つのパラメータがあり、式が true の場合は IF() が 2 番目のパラメータを返します。 , IF() は 3 番目のパラメータを返します。
- 例: SELECTIF(1100,'true','false');
- IF() 関数は、考えられる結果は 2 つあります。ただし、現実の世界では、条件付きテストで複数の分岐が必要になる場合があります。この場合、MySQL は CASE 関数を提供します。これは、PHP および Perl 言語の switch-case 条件付きルーチンと同じです。
CASE 関数の形式はやや複雑で、通常は次のようになります: CASE [評価される式] WHEN [val 1] THEN [結果 1] WHEN [val 2] THEN [結果 2] WHEN [val 3] THEN [result 3] ... WHEN [val n] THEN [result n] ELSE [default result] END
ここで、最初のパラメータは判定対象の値または式であり、次のパラメータは一連の WHEN- THEN ブロック。各ブロックの最初のパラメーターは比較する値を指定し、true の場合は結果が返されます。すべての WHEN-THEN ブロックは ELSE ブロックで終了し、END がすべての外側の CASE ブロックを終了する場合、先行する各ブロックが一致しない場合は、ELSE ブロックで指定されたデフォルトの結果が返されます。 ELSE ブロックが指定されておらず、すべての WHEN-THEN 比較が false の場合、MySQL は NULL を返します。
CASE 関数には、次のような別の構文があり、非常に便利に使用できることがあります: CASE WHEN [条件テスト 1] THEN [結果 1] WHEN [条件テスト 2] THEN [結果 2] ELSE [デフォルトの結果] END この場合、返される結果は、対応する条件テストが true かどうかによって異なります。
例:
mysql>SELECT CASE 'green' WHEN 'red' THEN 'stop' WHEN 'green' THEN 'go' END;
SELECT CASE 9 WHEN 1 THEN 'a' WHEN 2 THEN 'b' ELSE 'N/A' END; SELECT CASE WHEN (2+2)=4 THEN 'OK' WHEN(2+2)<>4 THEN 'not OK' END ASSTATUS;
-
SELECT Name,IF((IsActive = 1),'Activated','Inactive') AS RESULT FROMUserLoginInfo; SELECT fname,lname,(math+sci+lit) AS total, CASE WHEN (math+sci+lit) < 50 THEN 'D' WHEN (math+sci+lit) BETWEEN 50 AND 150 THEN 'C' WHEN (math+sci+lit) BETWEEN 151 AND 250 THEN 'B' ELSE 'A' END AS Grade FROM マーク; ENCRYPT('sue','ts')=upass,'allow','deny') AS LoginResultFROM users WHERE uname = 'sue';#ログイン検証
7、書式設定関数
DATE_FORMAT(date ,fmt) 文字列 fmt に従って日付値をフォーマットします
FORMAT(x,y) x をカンマで区切られた一連の数値にフォーマットします。y は結果の小数点以下の桁数です
INET_ATON (ip ) IP アドレスの数値表現を返します
INET_NTOA(num) 数値で表される IP アドレスを返します
TIME_FORMAT(time,fmt) 文字列 fmt に従って時間値をフォーマットします
最も単純なものは FORMAT です() 関数。大きな数値をカンマ区切りの人間が判読できるシーケンスにフォーマットできます。例:
SELECT FORMAT(34234.34323432,3);
-
SELECT DATE_FORMAT(NOW(),'%W,%D %M %Y %r');
SELECT DATE_FORMAT(NOW(),'%Y-%m-%d');
SELECT DATE_FORMAT(19990330,'%Y-%m-%d');
SELECT DATE_FORMAT(NOW() ,'%h:%i %p');
SELECT INET_ATON('10.122.89.47');
SELECT INET_NTOA(175790383);
8. 型変換関数
-
のためにデータ型変換のために、MySQL は値を指定されたデータ型に変換できる CAST() 関数を提供します。
タイプには、BINARY、CHAR、DATE、TIME、DATETIME、SIGNED、UNSIGNEDが含まれます
例:
SELECT CAST(NOW() AS SIGNED INTEGER),CURDATE()+0; SELECT ‘f’=BINARY ‘F’,’f’=CAST(‘F’ AS BINARY);
9. システム情報関数
-
DATABASE()は現在のデータベース名を返します
-
BENCHMARK(count,expr) 式 expr count 回繰り返します
CONNECTION_ID() 現在の顧客の接続 ID を返します
FOUND_ROWS() 最後の SELECT クエリによって取得された行の合計数を返します
USER () または SYSTEM_USER() は現在のログイン ユーザー名を返します
VERSION() は MySQL サーバーのバージョンを返します
例:
SELECT DATABASE(),VERSION(),USER(); SELECT BENCHMARK(9999999,LOG (RAND()*PI()));
#この例では、MySQL は LOG(RAND()*PI()) 式を 9999999 回計算します。

ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

Video Face Swap
完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

SublimeText3 中国語版
中国語版、とても使いやすい

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

ホットトピック











次の手順でphpmyadminを開くことができます。1。ウェブサイトコントロールパネルにログインします。 2。phpmyadminアイコンを見つけてクリックします。 3。MySQL資格情報を入力します。 4.「ログイン」をクリックします。

MySQLはオープンソースのリレーショナルデータベース管理システムであり、主にデータを迅速かつ確実に保存および取得するために使用されます。その実用的な原則には、クライアントリクエスト、クエリ解像度、クエリの実行、返品結果が含まれます。使用法の例には、テーブルの作成、データの挿入とクエリ、および参加操作などの高度な機能が含まれます。一般的なエラーには、SQL構文、データ型、およびアクセス許可、および最適化の提案には、インデックスの使用、最適化されたクエリ、およびテーブルの分割が含まれます。

データベースとプログラミングにおけるMySQLの位置は非常に重要です。これは、さまざまなアプリケーションシナリオで広く使用されているオープンソースのリレーショナルデータベース管理システムです。 1)MySQLは、効率的なデータストレージ、組織、および検索機能を提供し、Web、モバイル、およびエンタープライズレベルのシステムをサポートします。 2)クライアントサーバーアーキテクチャを使用し、複数のストレージエンジンとインデックスの最適化をサポートします。 3)基本的な使用には、テーブルの作成とデータの挿入が含まれ、高度な使用法にはマルチテーブル結合と複雑なクエリが含まれます。 4)SQL構文エラーやパフォーマンスの問題などのよくある質問は、説明コマンドとスロークエリログを介してデバッグできます。 5)パフォーマンス最適化方法には、インデックスの合理的な使用、最適化されたクエリ、およびキャッシュの使用が含まれます。ベストプラクティスには、トランザクションと準備された星の使用が含まれます

MySQLは、そのパフォーマンス、信頼性、使いやすさ、コミュニティサポートに選択されています。 1.MYSQLは、複数のデータ型と高度なクエリ操作をサポートし、効率的なデータストレージおよび検索機能を提供します。 2.クライアントサーバーアーキテクチャと複数のストレージエンジンを採用して、トランザクションとクエリの最適化をサポートします。 3.使いやすく、さまざまなオペレーティングシステムとプログラミング言語をサポートしています。 4.強力なコミュニティサポートを提供し、豊富なリソースとソリューションを提供します。

Apacheはデータベースに接続するには、次の手順が必要です。データベースドライバーをインストールします。 web.xmlファイルを構成して、接続プールを作成します。 JDBCデータソースを作成し、接続設定を指定します。 JDBC APIを使用して、接続の取得、ステートメントの作成、バインディングパラメーター、クエリまたは更新の実行、結果の処理など、Javaコードのデータベースにアクセスします。

DockerでMySQLを起動するプロセスは、次の手順で構成されています。MySQLイメージをプルしてコンテナを作成および起動し、ルートユーザーパスワードを設定し、ポート検証接続をマップしてデータベースを作成し、ユーザーはすべての権限をデータベースに付与します。

CentOSにMySQLをインストールするには、次の手順が含まれます。適切なMySQL Yumソースの追加。 yumを実行して、mysql-serverコマンドをインストールして、mysqlサーバーをインストールします。ルートユーザーパスワードの設定など、MySQL_SECURE_INSTALLATIONコマンドを使用して、セキュリティ設定を作成します。必要に応じてMySQL構成ファイルをカスタマイズします。 MySQLパラメーターを調整し、パフォーマンスのためにデータベースを最適化します。

WebアプリケーションにおけるMySQLの主な役割は、データを保存および管理することです。 1.MYSQLは、ユーザー情報、製品カタログ、トランザクションレコード、その他のデータを効率的に処理します。 2。SQLクエリを介して、開発者はデータベースから情報を抽出して動的なコンテンツを生成できます。 3.MYSQLは、クライアントサーバーモデルに基づいて機能し、許容可能なクエリ速度を確保します。
