SQL文字列関数:概要

公開: 2022-05-24

戻り値のデータ型に関係なく、入力として文字列値を受け入れる関数は、文字列関数と呼ばれます。 SQL Serverには、開発者が使用できるさまざまな組み込みSQL文字列関数があります。 この記事では、SQLでのプログラミングを容易にする最も一般的に使用されるSQL文字列関数のリストを示します。

目次

一般的に使用されるSQL文字列関数

ASCII

最初に確認するSQL文字列関数はASCII()です。 このスカラー関数は、指定された文字列を入力として受け入れ、その文字列の最初の文字に対応するASCIIコードを返すことによって機能します。 このSQL文字列関数を使用して、文字列の左端の文字の数値を見つけることができます。 文字列が空の場合は0を返します。文字列がnullの場合、関数は出力としてNULLを返します。

ASCII機能では、0〜255の数値を持つ文字を識別できます。

CHARLENGTH()

この関数を使用して、文字で計算される文字列の長さを見つけることができます。 マルチバイト文字は、単一文字であるかのように扱われます。 これは、関数LENGTH()が10個の2バイト文字を含む文字列の出力20として表示されるのに対し、CHAR LENGTH()は10を返すことを意味します。

CONCAT

CONCAT()は、複数の文字列を入力として受け取り、それらをすべて連結した後、単一の文字列を出力として返す別のスカラーSQL文字列関数です。

1つまたは複数の引数がある可能性があります。 この機能で許可される入力は最大254個です。 すべての入力パラメータが非バイナリ文字列である場合、CONCATSQLの結果は非バイナリ文字列になります。 ただし、パラメータのいずれかがバイナリ文字列である場合、結果はバイナリ文字列になります。 数値入力パラメータが対応するバイナリテキストを返すことを望まない場合。

CONCAT_WS()

CONCAT WS()は、Concatenate With Separator()を表すCONCATの特殊な形式です。 連結されたテキスト間に区切り文字を定義できることを除いて、CONCAT()関数と同じです。 カンマで区切られた値を作成するために使用できます。 最初の引数は、他の引数間の仕切りとして機能します。

連結する文字列の間に、区切り文字が追加されます。 残りの入力と同様に、区切り文字は文字列にすることができます。 セパレータがNULLの場合、答えはNULLです。

トリム

TRIM()関数は、文字列からすべてのプレフィックスとサフィックスを削除します。 BOTH、LEADING、またはTRAILINGのいずれの指定子も指定されていない場合、BOTHが想定されます。 特に明記されていない場合、スペースは削除されます。 TRIM関数を説明する例を次に示します。

SQL> SELECT TRIM('bar');

+ ——————————————————— +

| TRIM('犬')|

+ ——————————————————— +

| 犬|

+ ——————————————————— +

セットの1行(0.00秒)

SQL> SELECT TRIM(LEADING'r' FROM'rrrrrdogrrrrr');

+ ——————————————————— +

| TRIM(LEADING'r' FROM rrrrr'dogrrrrr')|

+ ——————————————————— +

| dogrrrrr |

+ ——————————————————— +

セットの1行(0.00秒)

SQL> SELECT TRIM(BOTH'rx' FROM'rrrrrdogrrrrr'');

+ ——————————————————— +

| TRIM(BOTH'r' FROM'rrrrrdogrrrrr')|

+ ——————————————————— +

| 犬|

+ ——————————————————— +

セットの1行(0.00秒)

SQL> SELECT TRIM(TRAILING'xyz' FROM'dogrrrrxyz');

+ ——————————————————— +

| TRIM(TRAILING'xyz' FROM'dogrrrrrrxyz')|

+ ——————————————————— +

| dogrrrrr |

+ ——————————————————— +

セットの1行(0.00秒)

SOUNDEX()

SOUNDEX()は1次元のスカラー関数です。 SOUNDEX()は主に、文字列を照合し、行をリンクするために使用されます。 Soundexストリングは、ほぼ同じように聞こえる2つのストリングに対して同一である必要があります。 入力として文字列を受け取り、その文字列の発音方法に基づいて4文字の文字列を生成します。

ただし、SOUNDEX()関数は、やや長くランダムな長さの文字列を返します。 典型的なSoundex文字列を取得するには、結果にSUBSTRING()を使用します。 コードの最初の文字は、入力文字列の最初の文字から大文字に変換されます。

コードの残りの文字は、式の文字を表す整数です。 A、O、U、E、I、Y、H、W)は、無視されない唯一の文字です(最初の文字でない限り)。 文字列の長さが4未満の場合、返される結果に追加のゼロが追加されます。AZの範囲外では、すべての国際アルファベット文字は母音と見なされます。

LOWER / UPPER

入力文字列の大文字と小文字を変更するための一般的なSQL文字列関数は、LOWER()関数とUPPER()関数です。 関数LOWER()およびUPPER()は、大文字と小文字をそれぞれ小文字と大文字に変更するために使用されます。

左右

最も頻繁に使用されるSQL文字列関数の1つは、LEFT()関数とRIGHT()関数です。 これらは、文字列の左側または右側から一定量の文字を抽出するために使用されます。

ソフトウェア開発に関連する人気の記事を読む

Javaでデータ抽象化を実装する方法は? Javaの内部クラスとは何ですか? Java識別子:定義、構文、および例
例を使用してOOPSでのカプセル化を理解する Cでのコマンドライン引数の説明 2022年のクラウドコンピューティングのトップ10の機能と特徴
Javaのポリモーフィズム:概念、タイプ、特性、例 Javaのパッケージとその使用方法 初心者向けのGitチュートリアル:最初からGitを学ぶ

SUBSTRING_INDEX()

SQLサブストリング関数は、区切り文字の出現をカウントする前に、ストリングからサブストリングを返します。 左からカウントしているときに、カウントが正の場合、最後の区切り文字の左側にあるすべてのものが返されます。 右からカウントしているときに、カウントが負の場合、最後の区切り文字の右側にあるすべてのものが返されます。 delimを検索する場合、SUBSTRING INDEX()は大文字と小文字を区別する一致を使用します。

SQL > SELECT SUBSTRING '遺伝的に'、5);

+ ——————————————————— +

| SSUBSTRING('遺伝的に'、5)|

+ ——————————————————— +

| 定期的に|

+ ——————————————————— +

セットの1行(0.00秒)

SQL> SELECT SUBSTRING('Welighed on' barbarb 4);

+ ——————————————————— +

| SUBSTRING('遺伝的に'FROM 4)|

+ ——————————————————— +

| etically |

+ ——————————————————— +

セットの1行(0.00秒)

SQL> SELECT SUBSTRING('genetically'、5,6);

+ ——————————————————— +

| SUBSTRING('遺伝的に'、5,6)|

+ ——————————————————— +

| ticall |

+ ——————————————————— +

セットの1行(0.00秒)

SUBSTRING_INDEX(str、delim、count)

delimの発生をカウントする前に、「str」から部分文字列を返します。 カウントが正の場合、最後の区切り文字の左側(左から数えて)のすべてが返されます。 カウントが負の場合、最後の区切り文字の右側(右から数えて)のすべてが返されます。 SUBSTRING_INDEX()は、delimを検索するときに、大文字と小文字を区別して一致を実行します。

SQL> SELECT SUBSTRING_INDEX('www.mysql.com'、'。'、2);

+ ——————————————————— +

| SUBSTRING_INDEX('www.mysql.com'、'。'、2)|

+ ——————————————————— +

| www.mysql |

+ ——————————————————— +

セットの1行(0.00秒)

次の表に、文字列関数の概要を示します。

Sl No. 文字列関数簡単な説明
1 ASCII() 左端の文字の数値を返します
2 BIT_LENGTH() 引数の長さが返されます(ビット単位)
3 CHAR_LENGTH() 文字列に存在する文字数を返します
4 置き場() 引数の文字列表現を返します
5 CHAR() 渡された各整数の文字を返します
7 CONCAT_WS() セパレータと連結して返します
8 CONCAT() 連結された文字列を返します
9 CONV() 異なる基数間で数値を変換します
10 ELT() インデックス番号の文字列を返します
11 EXPORT_SET() 値ビットに設定された個々のビットにはオン文字列があり、設定されていないすべてのビットにはオフ文字列があるように文字列を返します
12 分野() 後続の引数の最初の引数のインデックス(位置)を返します
13 FIND_IN_SET() 2番目の引数内の最初の引数のインデックス位置を返します
14 フォーマット() 指定された小数点以下の桁数にフォーマットされた数値を返します
15 HEX() 16進値の文字列表現を返します
16 入れる() 指定された文字数まで、指定された位置に部分文字列を挿入します
17 INSTR() 部分文字列の最初の出現のインデックスを返します
19 左() 指定された左端の文字数を返します
20 長さ() 文字列の長さをバイト単位で返します
21 LOAD_FILE() 名前付きファイルをロードします
22 LOCATE() 部分文字列の最初の出現位置を返します
23 低い() 引数を小文字で返します
24 LPAD() 指定された文字列が左に埋め込まれた文字列引数を返します
25 LTRIM() 先頭のスペースを削除します
26 MAKE_SET() 対応するビットインビットが設定されているコンマ区切りの文字列のセットを返します
27 MID() 指定された位置から始まる部分文字列を返します
28 OCT() 8進引数の文字列表現を返します
29 ORD() 引数の左端の文字がマルチバイト文字の場合、その文字のコードを返します
30 見積もり() SQLステートメントで使用するために引数をエスケープします

人気のソフトウェアエンジニアリングコースをご覧ください

SL。 いいえ ソフトウェア開発プログラム
1 LJMU&IIITBのコンピュータサイエンスの理学修士 CaltechCTMEサイバーセキュリティ証明書プログラム
2 フルスタック開発ブートキャンプ ブロックチェーンのPGプログラム
3 ソフトウェア開発のエグゼクティブ大学院プログラム-DevOpsの専門分野 すべてのソフトウェアエンジニアリングコースを表示

結論

この記事では、開発者がSQLでプログラミングするときに使用できるさまざまなSQL文字列関数に光を当てようとしました。 業界全体でデータベース管理システムの必要性が高まっていることを考えると、新進のSQL開発者がSQLを学び、この分野で儲かるキャリアを確保する絶好の機会です。

ソフトウェア開発の分野で成功する可能性を高めたい場合は、パデュー大学のフルスタック開発証明書プログラムをお勧めします。 この13か月のプログラムは、コンピュータサイエンスの基礎、ソフトウェア開発プロセス、堅牢でスケーラブルなWebサイトの構築、バックエンドAPI、リッチでインタラクティブなWebUIなどの科目を対象としています。

世界のトップ大学からオンラインでソフトウェア開発コース学びましょう。 エグゼクティブPGプログラム、高度な証明書プログラム、または修士プログラムを取得して、キャリアを迅速に追跡します。

今日あなたの席を予約するために私達に連絡してください!

TRIM関数は何をしますか?

TRIM関数は、特定の文字列に含まれる可能性のあるプレフィックスとサフィックスを削除するために使用されます。 指定子のいずれも指定されていない場合、TRIM関数ではデフォルトでBOTHが想定されます。つまり、BOTH、LEADING、またはTRAILINGが指定されていません。 スペースは、特に指定されていない場合、TRIM関数の実行時にデフォルトで削除されます。

DIFFERENCE文字列関数はどのように機能しますか?

DIFFERENCEは、別のSQL文字列関数であるSOUNDEXを使用して、指定された2つの文字列を比較するために使用されるスカラーSQL文字列関数です。 特定の入力にSOUNDEXを適用すると、出力に対して類似性チェックが実行されます。 これにより、0〜4の整数の結果が得られます。 この数が4に近づくと、入力はかなり類似したものになります。

ASCIIを説明する

ASCIIは、情報交換のためのAmericanStandardCodeの頭字語です。 プログラミング言語では、ASCIIは7ビット文字コードと呼ばれ、各文字ビットはさまざまなアプリケーションで使用できる個別の文字を示します。