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から図2に示す要件が揃いました。 どうやってやるんですか?次の...
前回の記事「Docker コンテナの UID と GID を理解する」では、Docker コンテナ内...
目次双方向バインディングの原理ngモデルレンダリングカスタム双方向バインディングプロパティコンポーネ...
目次1. プロセス制御2. シーケンシャルプロセス制御3. 分岐フロー制御if文1. 支店構造2. ...
目次1. データベースとは何ですか? 2. データベースの分類は? 3. データベースとデータ構造の...
序文ほとんどの人は、システム ディスク ストレージが少ないときにこの操作を実行するか、Linux シ...
Linuxシステムバージョン: CentOS7.4 MySQL バージョン: 5.7.28 Linu...
CSS3 を学ぶということは、新しい機能と基本的な理論に慣れることを意味します。この記事では、ケー...
app.js: スタートアップファイル、またはエントリファイルpackage.json: プロジェク...
MySQL 組み込みの日付関数 TIMESTAMPDIFF は、2 つの日付間の秒数、分数、時間数、...
ウェブサイトのフロントエンド開発で発生するセキュリティ問題は、クライアントブラウザで実行されるコード...
RabbitMQをインストールする前にSocatをインストールする必要があります。そうしないと、Ra...
Linuxインスタンスでシステムディスクを初期化した後、データディスクを再マウントするLinux イ...
目次序文: 1. ユーザー権利の概要2. 実際の権限管理序文:データベースのユーザー権限管理について...
目次遷移フック関数カスタム遷移クラス名遷移グループの使用まとめまずは例を見てみましょうコードは次のと...