経験豊富な開発者としては、DDL、DML、DCL、TCL などの略語 (名詞) に馴染みがないかもしれませんが、Yiyi プログラム開発の初心者としては、多くの混乱があるかもしれません。詳細を説明します。読者の参考になれば幸いです。
1. データ定義言語 DDL
DDL ((データ定義言語): 主なコマンドは、データ オブジェクト (データ オブジェクトなど) のデータ構造を定義/変更/削除するために使用されます。テーブル間のデータ型、リンク、制約などの初期化作業は、テーブルを作成するときに主に使用されます。つまり、DDL 言語の操作の対象となるのは、オブジェクトに含まれるデータではなく、データベース内のオブジェクトです。 DDL には次のステートメントが含まれています:
1、CREATE : 在数据库中创建新的数据对象 2、ALTER : 修改数据库中对象的数据结构 3、DROP : 删除数据库中的对象 4、DISABLE/ENABLE TRIGGER : 修改触发器的状态 5、UPDATE STATISTIC : 更新表/视图统计信息 6、TRUNCATE TABLE : 清空表中数据 7、COMMENT : 给数据对象添加注释 8、RENAME : 更改数据对象名称
注:
DDL ステートメントを実行するとき、ユーザーが insert コマンドを使用してデータベースにレコードを挿入すると、データベース (oracle/Mysql) は各ステートメントの前後に現在のトランザクションを送信します。 、DDL ステートメント (テーブルの作成など)、DDL ステートメントが実行されると、データはデータベースに送信され、DDL ステートメントはロールバックできません。言語 DML
1、INSERT :将数据插入到表或视图 2、DELETE :从表或视图删除数据 3、SELECT :从表或视图中获取数据 4、UPDATE :更新表或视图中的数据 5、MERGE : 对数据进行合并操作(插入/更新/删除)注:
DML コマンドの実行時に送信されない場合、DML コマンドの後に DDL コマンドまたは DCL コマンドが実行されない限り、他のセッションには表示されません。 、またはユーザーがセッションを終了するか、インスタンスを終了すると、システムは自動的に commit コマンドを発行して、未送信の DML コマンドを送信します
DCL (データ制御言語): 使用されるステートメントです。 (付与、拒否、取り消しなど) を含むデータベース ユーザーまたはロールの権限を設定または変更するには、
1、GRANT : 赋予用户某种控制权限 2、REVOKE :取消用户某种控制权限データ制御言語は、パスワードの作成、削除、変更、付与のみを必要とします。
4. トランザクション制御言語 (TCL): トランザクションを管理するために使用されます。
TCL には次のステートメントが含まれます。テーブル データを操作する場合は、確認が完了した後にトランザクションを追加する必要があります。処理後に COMMIT コマンドを完了する必要があります。そうしないと、変更がデータベースに書き込まれない可能性があります。これらの操作を元に戻したい場合は、ROLLBACK を使用できます。
INSERT、DELETE、UPDATE ステートメントを実行する前に、実行可能な操作のレコード範囲を見積もるのが最善です。10,000 レコードなど、より小さい範囲に制限する必要があります。そうしないと、ORACLE はこれを処理するために大きなロールバック セグメントを使用します。もの。プログラムの応答が遅くなったり、応答しなくなったりすることがあります。これらの操作が数十万件以上記録されている場合。これらの SQL ステートメントはセクションで完了できます。 COMMITを追加してトランザクション処理を確認します。
さまざまなステートメント操作のターゲットに基づいて、次の 4 つのタイプを簡単に区別できます。DDL データ オブジェクト、DCL データ、TCL トランザクション。
注意が必要な唯一の点は TRUNCATE です。機能的にはテーブル内のすべてのデータを削除するのと同等ですが、行ではなくテーブル レベルで動作します (何らかの理由でテーブル データをすぐに削除できない場合、TRUNCATE はデータをロックします)。 DELETE は行をロックしますが、テーブル全体をロックするため、DDL に含まれます。以上がDDL、DML、DCL、TCL の概念の詳細な説明の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。