DML
DMLはデータベース管理言語、データベース管理言語の略です。次のものがあります。
挿入、削除、更新、最適化します。
Benpianは、一つ一つを紹介しました
INSERTの
データベーステーブルの挿入データによって:
1、全体のフィールド名を書き込む処理でプロジェクトを行う:(完全な構文を挿入し、)理解することは簡単です
単一レコード挿入構文:TABLE_NAME(column_name1、......)の値(column_value1、......)に挿入します。
構文を挿入する複数のレコード:(column_name1、......)の値(column_value1、......)、(column_value1、......)、(column_value1は、table_nameに挿入..... 。);
コードをコピーして
表STU作成します(
ID int型主キーAUTO_INCREMENT、
符号なしの年齢はint、
名前VARCHAR(20)、
「。1 'ジェンダーのenum( '0'、)、デフォルトを'0'
);
INSERT INTO STU(名前、年齢)の値(' LS '17);
INSERT INTO STU(ID、年齢、名前、性別)の値(1,18、' ZS」、 '1 ');
INSERT INTO STU(年齢、性別、名前)の値(15、' 1' 'WW')、(17 、 '0'、 'ZL')、(20、 '0'、 'TQ');
コードをコピー
テーブルに結果セットを挿入する:フィールド名と新しい挿入処理結果セットフォームフィールド名が完全に一致する必要があります。
図1に示すように、単に二つの異なる方法が、新しいテーブルにテーブル構造のデータを挿入します。
表の作成new_table_name AS(* table_nameの中から選択);
2を、フォームの複製は、2つの手順が必要です。①新しいテーブルへの最初のコピーテーブル構造データ②
コードをコピー
コピーテーブルの構造
TABLE_NAMEのようなテーブルnew_table_nameを作成します。
フィールド名が一貫する必要が前と後、声明で新しいテーブルを挿入し、結果セットに記載されています
new_table_name(column_name1、column_name2、...)に挿入
を選択しcolumn_name1、column_name2、... table_nameのから、
复制代码
2、窓に、cmd輸入ターミナルコマンド:
SQLフォルダのディレクトリへの第一のスイッチ:ソースxxxx.sql
3、エクスポート・データベース、Windowsターミナルコマンドラインコマンドラインモードでのデータベーステーブル
すべてのデータベーステーブルをエクスポートします。mysqldumpを-h localhostの-uルート-p [-d]データベース名> database_name.sql
[-D]エクスポートデータであれば、何の意味、書き込みをしないことをお勧めされていない、彼らはデータをエクスポートしていないと述べました
mysqldumpを-h localhostの-uルート-p [-d] [--skip・ロック・テーブル]データベース名テーブル名> table_name.sql:エクスポートデータベーステーブルに触れます
[--skip・ロック・テーブル]エクスポートテーブルと他のテーブルが関連している場合は、このオプションの使用は、この懸念を解消するだろうと述べました
DELETE
、TRUNCATEの違いをドロップし、3を削除します。
ビューをインデックス付けしているが削除され、テーブル、即時放出ディスク空間のデータの構造は、テーブルを削除することができるが、外部キーテーブルを削除することはできません。一般的にテーブルtable_nameドロップされる使用をドロップ
一般的な使用法を切り捨てるテーブルtable_nameを切り捨てであり、テーブルインデックス付きビューに参加するために使用することはできません彼は、テーブル内のすべてのデータがクリアされ、すぐにディスク領域を解放されて、外部キー制約テーブルがあります
一般的な使用方法は、どこ条件TABLE_NAMEから削除され、削除、それは後の状況に応じて削除され、ディスク領域を解放しません。条件がない場合、それは、テーブル内のデータは明らかです。
データに関して:最初の2、提出された場合、再び見られるのと同じであるあなたは、トランザクションデータをロールバックによって削除回復することができ、削除、削除して何のトランザクションがコミットされていない場合、削除後に戻されることになります
三者的执行速度:drop>truncate>delete
完全な構文を削除します。
削除[LOW_PRIORITY]テーブル名から[ここで、条件] [リミットN]
[LOW_PRIORITY]顧客は、現在のテーブルのみdelete文を読んでいない場合と言いました
[リミットN]は削除されたレコードの数を表します。
[条件]は声明を選択することができない、select文は、両方の結果セットを返すことはできません。
コードのコピー
注意を第1のデータを削除する前に行わ選択:
。ID> 7及び性別= '0' STU SELECT * FROM
> WHERE ID STUから削除7及び性別= '0';。
* STUのseelctからWHERE名はNULLです。
STUからWHERE名を削除すると、nullリミット2であり、
コードのコピー
UPDATE
削除の完全な構文を:
更新【LOW_PRIORITY] TABLE_NAMEセットCOLUMN_NAME = COLUMN_VALUE、... [条件] [リミットN]
[LOW_PRIORITY]顧客は、現在のテーブルのみdelete文を読んでいない場合と言いました
[リミットN]は削除されたレコードの数を表します。
[条件]は声明を選択することができない、select文は、両方の結果セットを返すことはできません。
注意:最初のデータを変更する前に選択:
IDを= 12 STUであるWHERE SELECT *;
更新STUセット名= 'ZS'、性別= IDが= 12 WHEREである」1'
最適化
構文:OPTIMIZEのテーブルtbl_name
あなたは未使用領域を解放OPTIMIZE TABLEを使用することができます。
元のテーブルの一時コピーが動作することによって、TABLEを最適化します。古いテーブルを新しいテーブル(ないアイドルライン)にコピーされ、その後、元のテーブルが削除され、新しい名前が変更されます。すべての更新が自動的に失敗した更新をせずに新しいテーブルに移動するように行われます。OPTIMIZE TABLEが実行された時点で、元のテーブルは他のクライアントによって読み取り可能です。新しいテーブルは、これまでに準備ができるまで更新とテーブルへの書き込みが停滞しています。