MySQLの構文、特殊記号、正規表現の詳細な説明

MySQLの構文、特殊記号、正規表現の詳細な説明

Mysql でよく使用される表示コマンド

1. 現在のデータベース サーバー内のデータベースの一覧を表示します。

mysql> SHOW DATABASES;

注: mysql データベースには MYSQL システム情報が含まれています。パスワードを変更したり、新しいユーザーを追加したりする場合、実際にはこのデータベースを使用して操作を実行します。

2. データベースを入力します。

mysql> USE 庫名;

2. データベース内のデータ テーブルを表示します。

mysql> SHOW TABLES;

3. データ テーブルの構造を表示します。

mysql> DESCRIBE 表名;

4. データベースを確立する:

mysql> CREATE DATABASE 庫名;

5. データ テーブルを作成します。

mysql> USE ライブラリ名;
mysql> CREATE TABLE テーブル名 (フィールド名 VARCHAR (20), フィールド名 CHAR (1));

6. データベースを削除します。

mysql> DROP DATABASE 庫名;

7. 複数のデータ テーブルを削除します。

mysql> DROP TABLE 表名,表名;

8. テーブル内のレコードをクリアします。

mysql> DELETE FROM 表名;

9. テーブル内のレコードを表示します。

mysql> SELECT * FROM 表名;

10. テーブルに新しいフィールドを挿入します。

mysql> alter tabel 表名add column 字段名varchar(10);

10. テーブルにレコードを挿入します。

mysql> INSERT INTO 表名VALUES (”hyq”,”M”);

文法:

INSERT [INTO] tbl_name [(col_name,...)] VALUES (PRession,...),…
INSERT [INTO] tbl_name SET col_name=式、...

注: Django に挿入する場合は、追加の id フィールドを追加する必要があります: INSERT INTO table name VALUES (1, 'aaa', 'bbb');

11. フィールドタイプを変更します。

mysql> テーブルを変更し、テーブル名を変更し、列フィールド名 varchar(12);

11. 表のデータを更新します。

mysql-> UPDATE テーブル名 SET フィールド名 1 = 'a'、フィールド名 2 = 'b' WHERE フィールド名 3 = 'c';

12. テキストを使用してデータ テーブルにデータをロードします。

mysql> LOAD DATA LOCAL INFILE "D:/mysql.txt" INTO TABLE テーブル名;

13. .sql ファイルのインポート コマンド:

mysql> USE データベース名;
mysql> SOURCE d:/mysql.sql;

14. コマンドラインからルートパスワードを変更します。

mysql> UPDATE mysql.user SET password=PASSWORD('新しいパスワード') WHERE User='root';
mysql> 権限をフラッシュします。

15. 使用するデータベース名を表示します。

mysql> データベースを選択します();

16. 現在のユーザーを表示します。

mysql> ユーザーを選択します();

注記:

1. すべての操作は MySQL プロンプトで実行され、各コマンドはセミコロンで終わります。

2. SQL文は大文字と小文字を区別しません

MySQL インデックスの使用ルール

インデックス作成に最適なのは、WHERE 句、結合句、ORDER BY 句、または GROUP BY 句に出現する列です。

どのような状況ではインデックスを作成しない、またはインデックスの数を減らすべきでしょうか?

a. テーブル内のレコード数が少なすぎる

b. 頻繁に挿入、削除、変更されるテーブル

c. メインフィールドと一緒にクエリされることが多いが、メインフィールドのインデックス値がより多くあるテーブルフィールド

複合インデックスの作成:

例えば、次のような文があります。

エリアが「北京」かつ年齢が22のユーザーから*を選択します。

MySQL クエリは一度に 1 つのインデックスしか使用できないため、それぞれ area と age に単一のインデックスを作成すると、インデックスなしの完全なテーブル スキャンに比べて効率が大幅に向上しますが、area 列と age 列に複合インデックスを作成すると、さらに効率が向上します。

(area, age, salary) の複合インデックスを作成すると、(area, age, salary)、(area, age)、(area) の 3 つのインデックスを作成することと同じになり、これを最良左プレフィックスと呼びます。

複合インデックスと最左接頭辞原則の確立:

文字列データの列にインデックスを付ける必要がある場合は、適切な場合は常にプレフィックスの長さを指定するのが最適です。 CHAR、VARCHAR、BINARY、VARBINARY、BLOB、および TEXT 列のプレフィックスにインデックスを付けることができます。

テーブルの州、市、郵便番号の列に複合インデックスを作成するとします。インデックス内の行は州/市/郵便番号の順になっているため、自動的に州/市/郵便番号の順に並べ替えられます。つまり、クエリで州の値のみ、または州と都市の両方の値を指定した場合でも、MySQL はこのインデックスを使用できます。したがって、このインデックスは、次の列の組み合わせを検索するために使用できます: (state、city、zip)(state、city)(state)

インデックスには NULL 値を持つ列は含まれません。

列に NULL 値が含まれている限り、その列はインデックスに含まれません。複合インデックス内の 1 つの列に NULL 値が含まれている限り、その列はこの複合インデックスに対して無効になります。したがって、データベースを設計するときに、フィールドのデフォルト値を NULL に設定しないでください。

mysql クエリは 1 つのインデックスのみを使用します。

したがって、インデックスが where 句ですでに使用されている場合、order by 内の列ではインデックスは使用されません。したがって、データベースのデフォルトのソートで要件を満たすことができる場合は、ソート操作を使用しないでください。複数の列のソートを含めないようにしてください。必要な場合は、これらの列に複合インデックスを作成するのが最適です。

一般に、類似操作の使用は推奨されません。

どうしても使わなければならない場合は、どのように使うのかも問題です。 「%a%」のようにはインデックスを使用しませんが、「aaa%」のようにはインデックスを使用できます。

列に対して操作を実行しないでください。YEAR select * from users where YEAR(adddate)

NOT IN 演算を使用しない場合:

NOT IN 操作ではインデックスは使用されず、完全なテーブルスキャンが実行されます。 NOT IN は NOT EXISTS に置き換えることができます。

mysql 特殊記号

% (パーセント記号):

任意の長さの文字列を表します (長さは 0 にすることもできます)。たとえば、a%b は、a で始まり b で終わる任意の長さの文字列を表します。たとえば、acb、addgb、ab などはすべて、一致する文字列 _ (下線) を満たします。
任意の 1 文字を表します。たとえば、a_b は、a で始まり b で終わる長さ 3 の任意の文字列を表します。たとえば、acb、afbなどはすべて一致する文字列に一致します。

文字列引用符:

SQL では、文字列の引用符には一重引用符 (') を使用することを強くお勧めします。 MySQL (PHP との組み合わせに最適) でも二重引用符 (") を使用できますが、SQL Server (WINDOWS プラットフォーム上の強力なデータベース プラットフォーム) や Oracle (大規模な Web サイト データベース プラットフォーム) との一貫性を保つために、一重引用符を使用することをお勧めします。文字列内に一重引用符も出現する場合は、SQL で 2 つの一重引用符 ('') に置き換える必要があり、DBMS はそれを一重引用符として解釈します。

SQL の改行と文字列連結文字:

MySQL (PHP との最適な組み合わせ)、SQL Server (WINDOWS プラットフォーム上の強力なデータベース プラットフォーム)、Oracle (大規模な Web サイト データベース プラットフォーム) には、次の表に示すように違いがあります。 MySQL (PHP との最適な組み合わせ) SQL Server (WINDOWS 上の強力なデータベース プラットフォーム) Oracle (大規模な Web サイト データベース プラットフォーム) 改行 \n または \r\n または CHAR (10) CHAR (13) CHR (10) 文字列連結 CONCAT () + || または CONCAT ()

マクロ変数識別子 (&):

これは、Oracle(大規模なウェブサイトデータベースプラットフォーム)では特別な意味を持ちます。マクロ変数識別子です。SQLPLUSでSELECT 'AAA BBB' AS STR FROM DUALを実行すると、マクロ変数値の入力を求められます。したがって、SQLに(&)がある場合は、SELECT 'AAA'||'&'||'BBB' AS STR FROM DUALのように一重引用符で囲むことをお勧めします。そうすると、プロンプトは表示されません。

MySQL 正規表現

置換と正規表現の使用

コメント 0 件 | このエントリは 2010 年 4 月 8 日に投稿されました

mysql 置換の使用法

1. を置き換える

テーブル (id,name) の値を ('1′,'aa'),('2′,'bb') に置き換えます

このステートメントの目的は、テーブルに 2 つのレコードを挿入することです。主キーIDが1または2の場合、存在しない

は以下と同等である

テーブル (id,name) に値 ('1′,'aa'),('2′,'bb') を挿入します

同じ値が存在する場合、データは挿入されません。

2.replace(オブジェクト、検索、置換)

オブジェクト内の検索のすべての出現を置換で置き換えます

replace('www.163.com','w','Ww') を選択—>WwWwWw.163.com

例: テーブルの名前フィールドのaaをbbに置き換えます

テーブルを更新します。set name=replace(name,'aa','bb')

——————————————————————————————–

拡張正規表現

MySQL が提供するもう 1 つのタイプのパターン マッチングは、拡張正規表現を使用することです。このようなパターンの一致をテストする場合は、REGEXP 演算子と NOT REGEXP 演算子 (または同義語の RLIKE と NOT RLIKE) を使用します。

拡張正規表現の文字には次のようなものがあります。

· '.' は任意の 1 文字に一致します。

· 文字クラス "[...]" は、角括弧内の任意の文字に一致します。たとえば、「[abc]」は「a」、「b」、または「c」に一致します。文字の範囲に名前を付けるには、「-」を使用します。 "[az]" は任意の文字に一致し、"[0-9]" は任意の数字に一致します。

· 「 * 」は、その前に続く文字の 0 個以上と一致します。たとえば、「x*」は任意の数の「x」文字に一致し、「[0-9]*」は任意の数の数字に一致し、「.*」は任意の数の任意の文字に一致します。

REGEXP パターンがテスト対象の値のどこかに一致する場合、パターンは一致します (これは、値全体が一致する場合にのみ一致する LIKE パターン マッチングとは異なります)。

テストする値の先頭または末尾に一致するようにパターンを配置するには、パターンの先頭に「^」を使用するか、パターンの末尾に「$」を使用します。

拡張正規表現がどのように機能するかを説明するために、上記の LIKE クエリを REGEXP を使用して書き直したものを次に示します。

「b」で始まる名前を検索するには、「^」を使用して名前の先頭を一致させます。

mysql> SELECT * FROM pet WHERE name REGEXP '^b';

[mysql 正規表現]

[mysqlデータベース内のJPで始まらないテーブルをすべて削除]

要約する

以上が、MySQL の構文、特殊記号、正規表現の使用についてご紹介した内容です。お役に立てれば幸いです。ご質問がございましたら、メッセージを残していただければ、すぐに返信いたします。また、123WORDPRESS.COM ウェブサイトをサポートしてくださっている皆様にも感謝申し上げます。

以下もご興味があるかもしれません:
  • Mysql データベース ストアド プロシージャの基本構文の説明
  • 複数のフィールドを変更するためのMysql更新の構文の詳細な分析
  • MySQL alter ignore構文の詳細な説明
  • MySQL 5.7 に組み込まれているストレス テストの mysqlslap コマンドと構文の詳細な説明
  • MySQL 5.7.9 シャットダウン構文例の詳細な説明
  • MySQLデータベースの基本構文と操作

<<:  Node.js http モジュールの使用

>>:  Nginx アップロードファイルのサイズを変更する簡単な方法

推薦する

CSS3 の transition、transform、translate の違いと機能の簡単な分析

変換して翻訳するTransform は、変換と変形を意味します。他の幅属性や高さ属性と同様に、CSS...

JavaScript プロトタイプとプロトタイプチェーンの深い理解

目次1. プロトタイプとは何ですか? 2. プロトタイプ__プロト__ 4. コンストラクター5. ...

Vue3 での Teleport の使用に関する詳細な説明

目次テレポートの目的テレポートの仕組みこの記事では、以下の内容を取り上げます。テレポートの目的テレポ...

Linux での Docker と portainer の設定方法

1.Docer CEをインストールして使用するこの記事では、CentOS 7 を例に Docker ...

JSでES6クラスの使い方をすぐにマスター

1. どのように構築しますか? es5 でクラスを構築する一般的な方法を確認しましょう。まず、es5...

VMware 仮想マシンに固定 IP アドレスを設定する方法 (グラフィック チュートリアル)

1. メニューバーで「編集」→「仮想ネットワーク エディター」を選択して仮想ネットワーク エディタ...

XHTML 入門チュートリアル: リストタグの使用

リストは、類似または関連する一連の項目をリストするために使用されます。順序なしリスト(箇条書きリスト...

MySQL ストアド プロシージャの使用例の分析

この記事では、MySQL ストアド プロシージャの使用方法について説明します。ご参考までに、詳細は以...

Vue/React シングルページ アプリケーションをリフレッシュなしで復元するソリューション

目次導入なぜわざわざ?落とし穴のあるコミュニティソリューション(Vue を例に挙げる)現時点では良い...

MySql 組み込み関数の自習知識ポイントまとめ

文字列関数文字ascii(str)のASCIIコード値をチェックし、strが空の文字列の場合は0を返...

HTML ページの先頭に戻るいくつかの実装の概要

最近、ウェブサイトを開発する際にトップに戻るボタンを作成する必要がありますが、私は主にバックエンドの...

div 内の img と span の垂直方向の中央揃えの問題について

以下のように表示されます。 XML/HTML コードコンテンツをクリップボードにコピー<htm...

ろうそくを溶かす(水滴)サンプルコードを実現する純粋な CSS

成果を達成する実装のアイデアフィルターのコントラストとぼかしを利用して溶ける効果を実現します。親要素...

CSS でフローティングにより親要素の高さが崩れる問題を解決するいくつかの方法

以前は、フロートはレイアウトによく使用されていましたが、フローティングレイアウトを使用すると親要素の...