DML 操作とは、データベース内のテーブル レコードに対する操作を指し、主にテーブル レコードの挿入 (insert)、更新 (update)、削除 (delete)、クエリ (select) が含まれます。これらは、開発者が日常的に最も頻繁に使用する操作です。 1. 挿入 フォーマット1。 emp(ename,hiredate,sal,deptno) に VALUES('zzx1','2000-01-01','2000',1) を挿入します。 フォーマット2。 emp VALUES('lisa','2003-02-01','3000',2) に INSERT します。 フィールド名を指定する必要はありませんが、値はテーブル フィールドに厳密に対応している必要があります。 フォーマット3。 emp(ename,sal) に VALUES('dony',1000) を挿入します。 NULL 可能フィールド、デフォルト値を持つ非 NULL フィールド、および自動増分フィールドは、INSERT 後のフィールド リストに表示する必要はありません。VALUES の後に対応するフィールド名の VALUE を記述するだけです。 フォーマット4 MySQL では、INSERT ステートメントを使用して複数のレコードを一度に挿入することもできます。 テーブル名にINSERT INTO(フィールド1、フィールド2、......フィールドn) 価値観 (レコード1_値1、レコード1_値2、......レコード1_値n)、 (レコード2_値1、レコード2_値2、......レコード2_値n)、 ...... (レコードn_値1、レコードn_値2、......レコードn_値n); 2. 更新 フォーマット 1 UPDATE emp SET sal=4000 WHERE ename='lisa'; フォーマット 2 t1、t2、...tn を更新 SET t1.フィールド1=式1, t2.フィールド2=式2, ... tn.fieldn=exprn[WHERE条件]; 複数のテーブルのデータを同時に更新する 3. 削除 フォーマット 1 DELETE FROM tablename [WHERE CONDITION]; フォーマット 2 DELETE t1,t2,...tn FROM t1,t2,...tn [WHERE CONDITION]; 注意:単一テーブル、複数テーブルに関わらず、WHERE条件を追加しないとテーブル内のすべてのレコードが削除されますので、操作には注意してください。 4. クエリ(選択) 基本的な構文: SELECT * FROM テーブル名 [WHERE 条件]; 1. 一意のレコードをクエリするには、distinct キーワードを使用します。 SELECT DISTINCT deptno FROM emp; 2. 条件付きクエリ: emp から * を選択 WHERE deptno=1; where の後の条件では、「=」に加えて、>、<、>=、<=、!= などの比較演算子も使用できます。 また、 or や and などの論理演算子を使用して、複数の条件間で複数条件の結合クエリを実行することもできます。 3. 並べ替えと制限: SELECT * FROM tablename [WHERE CONDITION] [ORDER BY field1 [DESC|ASC], field2 [DESC|ASC],...fieldn [DESC|ASC]]; このうち、DESC と ASC はソートキーワードです。 ソート フィールドの値が同じ場合、同じ値を持つフィールドは 2 番目のソート フィールドに従ってソートされ、以下同様に続きます。ソート フィールドが 1 つしかない場合、同じソート フィールドを持つレコードは順序どおりにソートされません。 SELECT ......[LIMIT offset_start,row_count]; ソートされたレコードのすべてではなく一部のみを表示する場合は、LIMIT キーワードを使用してこれを実現できます。 LIMIT は、レコードをページ内に表示するために ORDER BY と一緒に使用されることが多いです。 注意: limit は SQL92 以降に MySQL によって拡張された構文であり、他のデータベースには適用できません。 4. 集約 多くの場合、会社全体の人数や各部門の人数を数えるなど、いくつかの集計操作を実行する必要があり、そのためには SQL 集合演算を使用する必要があります。 SELECT [フィールド1,フィールド2,......フィールドn] fun_name テーブル名から [WHERE 条件] [GROUP BY フィールド1、フィールド2、......フィールドn [ロールアップ付き] [HAVING where_contition]; パラメータの説明は次のとおりです。
注: having と where の違いは、having は集計後に結果をフィルタリングするのに対し、where は集計前にレコードをフィルタリングすることです。ロジックが許す場合は、where を使用して最初にレコードをフィルタリングする必要があります。これにより、結果セットが削減されるため、集計の効率が大幅に向上します。最後に、ロジックに基づいて、再フィルタリングに having を使用するかどうかを確認できます。 5. テーブル結合 テーブル結合は、内部結合と外部結合に分けられます。それらの主な違いは次のとおりです。 外部結合は左結合と右結合に分かれており、次のように定義されます。
emp から ename、deptname を選択し、 emp.deptno=dept.deptno で dept を LEFT JOIN します。 6. サブクエリ 場合によっては、クエリを実行するときに必要な条件は別の SELECT ステートメントの結果です。この場合は、サブクエリを使用する必要があります。 SELECT * FROM emp WHERE deptno IN (SELECT deptno FROM dept); 注: サブクエリとテーブル結合間の変換は、主に次の 2 つの側面で使用されます。 MySQL バージョン 4.1 より前ではサブクエリはサポートされていません。サブクエリを実装するにはテーブル結合が必要です。多くの場合、テーブル結合はサブクエリを最適化するために使用されます。 7. レコードジョイント 特定のクエリ条件に従って 2 つのテーブルのデータをクエリした後、結果が結合されて一緒に表示されるようなアプリケーションによく遭遇します。このとき、この機能を実装するには、union および union all キーワードを使用する必要があります。具体的な構文は次のとおりです。 t1から*を選択 ユニオン|ユニオン すべて t2から*を選択 ...... ユニオン|ユニオン すべて tn から * を選択します。 UNION と UNION ALL の主な違いは、UNION ALL は結果セットを直接結合するのに対し、UNION は UNION ALL の結果に対して DISTINCT を実行して重複レコードを削除することです。 上記は、編集者が紹介したMySQL DMLステートメントの詳細な説明の要約です。皆様のお役に立てれば幸いです。ご質問がある場合は、メッセージを残してください。編集者がすぐに返信します。また、123WORDPRESS.COM ウェブサイトをサポートしてくださっている皆様にも感謝申し上げます。 以下もご興味があるかもしれません:
|
<<: CentOS7にMariaDB 10.2.4をインストールする方法の詳細な説明
>>: Swiper+echartsは複数のダッシュボードの左右スクロール効果を実現します
目次順序1. 集中ルーティング2. ファイルディレクトリ3. CompileRouterを作成する4...
次のような疑問が湧くかもしれません。MySQLをローカル (自分のコンピュータ) にインストールした...
Brotli は、Zopfli よりも 20 ~ 26% 高い圧縮率を実現できる新しいデータ形式です...
オペレーティング システム win10 MySQL は、公式 Web サイトからダウンロードした 6...
目次背景1. dns-prefetch とは何ですか? 2. dns-prefetch を設定するに...
私たちは Web 開発者として、プロの DBA ではありませんが、データベースなしではやっていけませ...
大画面のデジタル スクロール効果は、最近の作業における大画面 UI ダイアグラムから生まれました。U...
間違った mysql コマンドを入力したのでキャンセルしたいです。どうすればいいですか? ctrl ...
この記事では、ブロック崩しピンボールゲームを実装するためのJSの具体的なコードを参考までに紹介します...
目次1. 背景2. 操作手順3. Dockerをインストールする4. 主なサービス構成5. サービス...
1. 環境: MySQL-5.0.41-win32 Windows XP プロフェッショナル2. テ...
過去 15 日間のデータをバックアップするシンプルな MySQL 完全バックアップ スクリプト。バッ...
目次チュートリアルシリーズ1. ユーザー管理1. ユーザーアカウント2. アカウントの追加と削除3....
Dockerfile は、イメージをビルドするために使用されるテキスト ファイルです。テキスト コン...
1. W3C バージョンの flex 2009年版フラグ: display: box; または bo...