mysqlの一般的な機能を紹介します

mysqlビデオチュートリアルセクションでは、mysqlの一般的な機能を紹介します。

関連する無料学習の推奨事項:mysqlビデオチュートリアル

1.基本パート
1.MySQL
1.1、SELECTステートメント
1.2、ソート検索データ
1.3、フィルターデータ
1.4、データフィルター
1.5、ワイルドカードを使用したフィルター
1.6、正規表現を使用した検索
1.6.1基本文字マッチング
1.6.2実行または一致
1.6.3複数の文字の1つに
一致1.6.4一致範囲
1.6.5特殊文字に
一致1.6.6文字クラスに一致
1.6.7複数のインスタンスに一致
1.6.8ロケーター
1.7、計算フィールド
は、MySQLに
接続されたMySQLを使用して作成しますデータベースによって開かれるため、最初に行うことはデータベースを開くことです
。USEユーザー
USEの後に、開きたいデータベースが続きます。データベースの名前がわからない場合は、SHOW DATABASESを使用して表示し、SHOWを使用します。データベースを表示するためのテーブルもちろん、テーブル内の列SH​​OW user_id FROM userを表示することもできます。各フィールドの行を返します。行には、フィールド名、データタイプ、NULLを許可するかどうか、キー情報、デフォルト値が含まれます。およびその他の情報(DESCRIBEユーザーはステートメントショートカットの上にあります)

1.1。SELECTステートメント
SELECTを使用してテーブルデータを取得するには、少なくとも2つの情報(選択する情報と選択する場所)を指定する必要があります。
必要な列名はSELECTキーワードの後に​​指定され、FROMキーワードはデータの取得元のテーブルの名前を示します。
テーブルから複数の列を取得するには、同じSELECTステートメントを使用します。唯一の違いは、SELECTキーワードの後に​​複数の列名を指定する必要があり、列名はコンマで区切る必要があることです。
DISTINCTキーワードを使用して、値が異なる行のみを取得すると、重複は再度表示されません(注:DISTINCTキーワードは、その前の列だけでなく、すべての列に適用されます)
。SELECTステートメントは一致するすべての行を返します。表の各行を指定できます。最初の行または最初の数行を返すために、LIMIT句を使用できます。
LIMIT 5、5は、行5から始まる5行を返すようにMySQLに指示します。最初の数字は開始位置で、2番目の数字は取得する行の数です。

1.2。データの並べ替えと取得
SELECTステートメントによって取得されたデータを明確に並べ替えるために、ORDERBY句を使用できます。ORDER BY句は、1つ以上の列名を受け取り、それに応じて出力を並べ替えます。
複数の列で並べ替えるには、列名を指定し、列名をコンマで区切ります。
データの並べ替えは、昇順の並べ替え(AからZ)に限定されません。これは単なるデフォルトのソート順です。ORDERBY句を使用して、降順(ZからA)にソートすることもできます。降順でソートするには、DESCキーワードを指定する必要があります。(DESCキーワードは、その直前の列名にのみ適用されます)

1.3。データのフィルタリング
この章では、SELECTステートメントのWHERE句を使用して検索条件を指定する方法について説明します。SELECTステートメントでは、WHERE句で指定された検索条件に従ってデータがフィルタリングされます。WHERE句は、テーブル名の後に指定されます(FROM句)。ORDER BY句とWHERE句を同時に使用する場合は、ORDERBYをWHEREの後に配置する必要があります。WHERE句の演算子を次の図に示します。

1.4。データフィルタリング
この章では、WHERE句を組み合わせて、より強力で高度な検索条件を作成する方法について説明します。また、NOT演算子とIN演算子の使用方法についても学習します。
AND演算子の計算順序がOR演算子よりも高い

1.5。ワイルドカード
を使用したフィルタリングこの章では、ワイルドカードとは何か、ワイルドカードの使用方法、およびデータに対して複雑なフィルタリングを実行するためにLIKE演算子を使用してワイルドカード検索を実行する方法を紹介します。
検索句でワイルドカードを使用するには、LIKE演算子を使用する必要があります。LIKEは、次の検索パターンが比較のために直接等しいマッチングではなくワイルドカードマッチングを使用することをMySQLに指示します。
最も一般的に使用されるワイルドカードはパーセント記号(%)です。検索文字列で、%は、任意の文字が任意の回数出現することを意味します。(MySQLの構成方法によると、検索では大文字と小文字が区別される場合があります。大文字と小文字が区別される場合)。
もう1つの便利なワイルドカードは、アンダースコア(_)です。アンダースコアの目的は%と同じですが、アンダースコアは複数の文字ではなく1つの文字にのみ一致します。
ご覧のとおり、MySQLワイルドカードは非常に便利です。ただし、この機能にはコストがかかります。ワイルドカード検索の処理は、通常、前述の他の検索よりも時間がかかります。ワイルドカードを使用するときに覚えておくべきいくつかのヒントがあります。
1.ワイルドカードを使いすぎないでください。他の演算子が同じ目的を達成できる場合は、他の演算子を使用する必要があります。
2.本当にワイルドカードを使用する必要がある場合は、どうしても必要な場合を除いて、検索パターンの最初にワイルドカードを使用しないでください。検索パターンの先頭にワイルドカードを付けると、検索が最も遅くなります。
3.ワイルドカードの場所に注意してください。置き忘れた場合、目的のデータが返されない場合があります。

1.6。正規表現を使用した検索
1.6.1基本的な文字マッチング
非常に簡単な例から始めましょう。次の文は、列PROD_NAMEはテキスト1000年が含まれているすべての行を取得します。
SELECT PROD_NAME
製品FROM
WHERE PROD_NAMEのREGEXP「1000」
PROD_NAME BY ORDER。

これはMySQLに次のように伝えます。REGEXPに続くものは正規表現(テキスト本文の1000に一致する正規表現)として扱われます。

SELECT prod_name
FROM products
WHERE prod_name REGEXP'.000 '
ORDER BY prod_name;

。正規表現言語の特殊文字です。これは、任意の文字に一致することを意味するため、1000と2000の両方が一致して返されます。
MySQL(バージョン3.23.4以降)での正規表現の一致では、大文字と小文字は区別されません(つまり、大文字と小文字の両方が一致します)。大文字と小文字を区別するには、WHERE prod_name REGEXP BINARY'JetPack.000 'などのBINARYキーワードを使用できます。

1.6.2 ORマッチングの実行
2つの文字列(この文字列または他の文字列)のいずれかを検索するには、次のように|を使用します
。SELECTprod_nameFROM
products
WHERE prod_name REGEXP '1000 | 2000'
ORDER BY prod_name;

1.6.3複数の文字の1つ
を一致させる特定の文字のみを一致させたい場合はどうなりますか?これは、以下に示すように、[および]で囲まれた文字セットを指定することで実行できます
。SELECTprod_nameFROM
products
WHERE prod_name REGEXP '[123] Ton'
ORDER BY prod_name;
文字セットも否定できます。つまり、一致します。指定された文字以外のものを除きます。文字セットを無効にするには、セットの先頭に^を付けます。したがって、[123]は文字1、2、または3に一致しますが、[^ 123]はこれらの文字以外に一致します。

1.6.4蒸配范围
SELECTprod_nameFROM
products
WHERE prod_name REGEXP '[1-5] Ton'
ORDER BY prod_name;

1.6.5特殊文字の照合
正規表現言語は、特定の意味を持つ特殊文字で構成されています。すでに見てきました。、[]、|など、その他の文字もあります。すみません、これらの文字を一致させる必要がある場合は、どうすればよいですか?たとえば、。文字を含む値を知りたい場合、どのように検索しますか?特殊文字と一致させるには、先頭に\を使用する必要があります。\-は検索を意味します-、\。は検索を意味します。

SELECT vend_nameFROM vendorsWHERE vend_name REGEXP '\\.'ORDER BY vend_name;

正規表現で特別な意味を持つすべての文字は、この方法でエスケープする必要があります。これには、。、|、[]およびこれまでに使用されたその他の特殊文字が含まれます。

1.6.6文字クラスの一致
頻繁に使用する数字、すべてのアルファベット文字、またはすべてのアルファベット文字見つけるための一致があります。作業を簡単にするために、文字クラスと呼ばれる事前定義された文字セットを使用できます。

1.6.7複数のインスタンスの照合
これまでに使用されたすべての正規表現は、単一のオカレンスの照合を試みました。一致する場合は行が取得され、存在しない場合は行が取得されません。ただし、一致する数をより強力に制御する必要がある場合もあります。たとえば、数字の桁数に関係なく、すべての数字を検索する必要がある場合や、単語を検索して末尾のs(存在する場合)を入力できるようにする場合などです。

SELECT prod_nameFROM productsWHERE prod_name REGEXP '\([0-9] sticks?\)' ORDER BY prod_name;正規表現\([0-9] sticks?\)には説明が必要です。\((、[0-9]は任意の数(この例では1と5)に一致し、sticks?はsticksとsticksに一致します(?の後のsはsをオプションにします。なぜなら、?は0回または1回出現する前の任意の文字に一致するからです) )、\)一致)。?がないと、スティックとスティックを一致させるのは非常に困難です。

以下は別の例です。今回は、一緒に接続された4桁を一致させる予定です。

SELECT prod_nameFROM productsWHERE prod_name REGEXP '[[:digit:]]{4}'ORDER BY prod_name;

1.6.8ロケーター
これまでのすべての例は、文字列内の任意の場所のテキストと一致します。特定の場所のテキストを一致させるには、次の表にリストされているロケーターが必要です。

たとえば、数字で始まるすべての製品(小数点で始まる数字を含む)を検索する場合はどうなりますか?[0-9。](または[[:digit:]。])の単純な検索は、テキスト内のどこかに一致するものが見つかるため、機能しません。解決策は、以下に示すように、^ロケーターを使用することです。

SELECT prod_nameFROM productsWHERE prod_name REGEXP '^[0-9\\.]'ORDER BY prod_name;

1.7。計算フィールドを作成する
テーブルに格納されているデータは、アプリケーションが必要とするものではありません。変換、計算、またはフォーマットされたデータをデータベースから直接取得する必要があります。データを取得してから、クライアントアプリケーションまたはレポートプログラムで再フォーマットするのではありません。ここで、計算フィールドが役立ちます。前の章で紹介した列とは異なり、計算フィールドは実際にはデータベーステーブルに存在しません。計算フィールドは、実行時にSELECTステートメントで作成されます。
MySQL SELECTステートメントでは、Concat()関数を使用して2つの列を連結できます。

SELECT Concat(vend_name, ' (', vend_country, ')')FROM vendorsORDER BY vend_name;

データの右側にある余分なスペースを削除してデータを整理します。これは、以下に示すように、MySQLのRTrim()関数を使用して実行できます。

SELECT Concat(RTrim(vend_name), ' (', RTrim(vend_country), ')')FROM vendorsORDER BY vend_name;

エイリアスは、フィールドまたは値の代替名です。エイリアスはASキーワードで指定されます。次のSELECTステートメントについて考えてみます。

SELECT Concat(RTrim(vend_name), ' (', RTrim(vend_country), ')') ASvend_titleFROM vendorsORDER BY vend_name;

この記事はphp中国語のウェブサイトからのものです; mysqlビデオチュートリアルコラムhttps://www.php.cn/course/list/51.html

おすすめ

転載: blog.csdn.net/Anna_xuan/article/details/110442481