DMLステートメントDML (データ操作言語) ステートメント: データ操作ステートメント。 目的: データベース レコードを追加、変更、削除、照会し、データの整合性をチェックするために使用されます。 一般的なキーワード: insert、update、delete、select など。 DML 操作の対象はライブラリ テーブルのデータ (レコード) です。 主に挿入、更新、削除、クエリが含まれます。 DML ステートメントは、開発者が最も頻繁に使用する操作です。 1. レコードを挿入するレコードを挿入する テーブル名 (フィールド1、フィールド2、...、フィールドn) に値 (値1、値2、...、値n) を挿入します。 一度に複数のレコードを挿入する テーブル名に挿入 (フィールド1、フィールド2、...、フィールドn) 価値観 (値1、値2、...、値n)、 (値1、値2、...、値n); 2. 記録を更新する単一テーブルデータの更新 テーブル名を更新し、フィールド1=値1、フィールド2=値2、...フィールドn=値n [条件] を設定します。 複数のテーブルのデータを同時に更新する t1、t2、...、tnを更新し、t1.field1=expr1、tn.field=exprn [where条件]を設定します。 通常、あるテーブルのフィールドに基づいて別のテーブルのフィールドを動的に更新するために使用されます。 注: 角括弧「[ ]」はオプションのパラメータ、つまり存在する場合と存在しない場合があるパラメータを表します。 3. シンプルなクエリレコードシンプルな条件付きクエリ。記号「*」はすべてのフィールドを照会することを表します。特定の列のみを表示する場合は、テーブルの列名を記述します。 select * from tablename [where condition]; テーブル名からフィールド1、フィールド2、...、フィールドnを選択します[条件]; エイリアス 列名またはテーブル名のエイリアスに使用するキーワード: AS またはキーワードなし。のように: テーブル名からフィールド1をf1、フィールド2をf2として選択します。 table1 から t1、table2 t2 として t2.field1 AS f1、t1.field2 f2 を選択します。 エイリアスが使用されていない場合、クエリ結果の列名はテーブルの元の列名になります。 エイリアスを使用すると、クエリ結果の列名はエイリアスになります。 4. レコードを削除する単一テーブルレコードを削除する テーブル名から削除 [条件]; 複数のテーブルから同時にデータを削除する t1、t2、...、tn から t1、t2、...、tn を削除します [where 条件]; 注意: where 条件が追加されていない場合は、テーブル データ全体が削除されます。 単一テーブルの「追加、変更、クエリ、削除」操作の例: 複数テーブルの「削除」操作ケース: 別の削除事例を見てみましょう 最後に、削除のケースを見てみましょう 複数テーブル削除の結論: 条件が満たされた場合は条件テーブル内の対応するデータが削除され、条件がない場合はテーブル全体が削除されます。 条件が満たされない場合は、いずれも削除されません。 質問があります: where 条件を指定せずに複数のテーブルを削除するとどうなりますか? 複数のテーブルのデータを同時に更新する操作に関しては、自分で探究することができます。結局のところ、考えながら学ぶことが最も価値があります。 5. クエリレコード(DQL文)の詳細な説明DQL (データ クエリ言語) はデータベース クエリ言語です。 データベース クエリ ステートメントは、ビルディング ブロックを 1 つずつ組み立てるようなもので、各角括弧 "[]" はビルディング ブロックを表します。 まず、クエリ構文を段階的に 1 つずつリストします。 5.1. 一意のレコードをクエリするテーブル名から別のフィールドを選択します。 distinctive キーワードは、「クエリ結果セット」から重複を削除するために使用されます。これは例でより明確になります。 5.2. 条件付きクエリ--すべての列をクエリします: select * from tablename [where condition]; --指定された列をクエリします: テーブル名から[フィールド1、フィールド2、...、フィールドn]を選択します[条件]; よく使われる条件
その他のよく使われる条件の具体的な使い方については、よく使われる条件を参照してください。 5.3. 集計クエリ--最も単純な集計クエリ: select [field1,field2,...,fieldn] fun_name from tablename group by field; --完全な構文: テーブル名から[フィールド1、フィールド2、...、フィールドn] fun_nameを選択します [条件] [field1、field2、...、fieldn でグループ化 [ロールアップあり]] [条件付き] 例:
where と having の違い:
where 条件フィルタリングを優先します。これにより、結果セットが削減され、分類集約の効率が向上します。 角括弧「[]」はオプションの意味を表します。つまり、group by の前の [where 条件] はオプションであり、その後の [with rollup] と [having 条件] もオプションです。
where と having を追加する例: 列名 avg(stu_age) は少し奇妙に見えるので、別の名前を付けると一目でわかります。 5.4. ソートクエリ--最も単純な並べ替えクエリ: select * from tablename order by field; --完全な構文: テーブル名から[フィールド1、フィールド2、...、フィールドn] fun_nameを選択します [条件] [field1、field2、...、fieldn でグループ化 [ロールアップあり]] [条件付き] [フィールド1 [desc|asc]、フィールド2 [desc|asc]、...、フィールドn [desc|asc] で並べ替え]; DESC は降順 (大きいものから小さいものへ) を表し、ASC は昇順 (小さいものから大きいものへ) を表します。asc はデフォルトの並べ替えです。つまり、desc だけを覚えておけばよいのです。 desc はクエリ テーブル設計のキーワードであり、構文は非常に単純です: desc tablename; 単一列で並べ替え: 複数列の並べ替え: 区切り記号「,」を使用します 5.5. 制限クエリ制限クエリ、範囲クエリ、ページングクエリとも呼ばれます --最も単純な制限クエリ: offset_start は配列の添え字と同じで、0 から始まります。select * from tablename limit offset_start,row_count; --完全な構文: このSQLは、単一テーブルクエリselect [field1,field2,...,fieldn] fun_name from tablenameの完全バージョンです。 [条件] [field1、field2、...、fieldn でグループ化 [ロールアップあり]] [条件付き] [フィールド1 [降順|昇順]、フィールド2 [降順|昇順]、...、フィールドn [降順|昇順] で並べ替え] [オフセット開始、行数を制限する]; 例1: 項目1から始めて、2つのデータをクエリする 例2: 項目2から始めて、2つのデータをクエリする ========================= = 上記は単一テーブルクエリの構文です= = 以下は 2 つのテーブルを結合するための構文です = ========================= 5.6. テーブル結合クエリ複数のテーブルからデータを関連付ける必要がある場合に使用します。 左結合と内部結合を学ぶだけです。 左結合: 右テーブルが一致するかどうかに関係なく、左テーブルのすべてのレコードを選択します。左テーブルがマスターであり、右テーブルの情報が関連付けられています。 t1 から * を選択し、t1.field1=t2.field2 で t2 を左結合します。 内部結合: 2 つのテーブルで一致するレコードのみを選択します。一致するレコードがない場合、結果は空になります。 t1 から * を選択し、t2 を t1.field1=t2.field2 で結合します。 t1.field1=t2.field2 の場合、t1、t2 から * を選択します。 5.7. サブクエリクエリ条件として別のクエリ結果が必要な場合に使用されます。サブクエリは「()」で囲まれます。 例: 学生「Zhang San」の成績を照会する 場合によっては、サブクエリを結合テーブルクエリに変換できます。上記の例は、結合テーブルクエリとして記述できます。 5.8. レコードの結合2 つ以上のテーブルのクエリ結果を 1 つの結果セットに結合して出力します。マージの条件は、複数のテーブルのクエリ結果フィールドの数が同じであることです。テーブルフィールドの数ではなく、クエリ結果フィールドの数であることに注意してください。 t1からf1、f2、...、fnを選択 ユニオン/ユニオンオール t2からf1、f2、...、fnを選択 ... ユニオン/ユニオンオール tn から f1、f2、...、fn を選択 クエリ結果フィールドの数が等しくない場合は、エラーが報告されます。 クエリ結果セットフィールドの固定数 5.9. SELECT文の実行順序実行順序が正しいかどうかを自分で証明することは、以前に学習した知識の定着とも言えます。
6. まとめここまでは、日常業務で最も頻繁に使用されるテーブルデータの挿入、更新、削除、クエリステートメントについて説明しました。 DML ステートメントの焦点は、DQL ステートメントとも呼ばれる最も複雑なクエリ ステートメントです。 これで、MySQL 基礎チュートリアルの DML ステートメントに関するこの記事は終了です。MySQL 基礎チュートリアルの DML ステートメントの詳細については、123WORDPRESS.COM の以前の記事を検索するか、以下の関連記事を引き続き参照してください。今後とも 123WORDPRESS.COM をよろしくお願いいたします。 以下もご興味があるかもしれません:
|
1. はじめに先ほど、ウェブページの急速な発展について紹介しました。今回は、より深い内容についてお...
nginx ログは filebeat によって収集され、logstash に渡され、logstash...
ステップ1. MySQLスロークエリを有効にする方法1: 設定ファイルを変更するWindows: W...
この記事は、参考のためにMySQL 8.0.16のインストールグラフィックチュートリアルを記録してい...
目次1. 解決策2. サーバーから返されたトークンをブラウザに保存する3. リクエストにアクセス権限...
この記事では、従業員管理登録ページを実装するためのjQueryの具体的なコードを例として紹介します。...
今日は nginx サーバーを使用するのですが、vue プロジェクトをサーバーにデプロイする必要もあ...
序文データベースの応用において、プログラマーは継続的な実践を通じて多くの経験を積んできました。これら...
目次1. イベントとは何ですか? 2. 「イベント」機能を有効にする1. 機能が有効になっているかど...
背景開発プロセス中に Docker コンテナ化をサポートするために、通常は Maven を使用してコ...
<br />関連記事: ハイパーリンクを表示して開く方法症状<br />ユー...
バックエンド プログラマーは、さまざまな場所で Linux を扱います。Linux ログの読み方がわ...
3次元縦棒グラフは、正面、右側、上部の3つの部分で構成されています。描画するときは、正面をグラフィッ...
1 Dockerサービスを開始するまず、docker サービスを開始する方法を知っておく必要がありま...
質問1:エラーを報告する書き込み方法: GRANT OPTION を使用して、'123123...