DDLとは?
Data Definition Languageは、データベース構造またはスキーマを定義するのに役立つ言語です。 DDL コマンドは、データベースの構造およびその他のデータベース オブジェクトを作成するのに役立ちます。 DDL コマンドは自動コミットされるため、変更はデータベースに永続的に保存されます。 DDL の完全な形は Data Definition Language (データ定義言語) です。
このDMLとDDLの違いに関するチュートリアルでは、以下のことを学びます。
- DDL とは何ですか。
- DML とは何ですか。
- なぜ DDL なのですか。
- なぜ DML なのですか?
- DBMSにおけるDDLとDMLの違い
- DDL用コマンド
- DML用コマンド
- DDLコマンド例
- DMLコマンド例
DMLとは
DML コマンドは自動コミットはありませんがデータベースに格納されているデータを管理できるようにするコマンドです。 さらに、それらは永続的ではありません。 したがって、操作をロールバックすることが可能です。 DMLの完全な形はData Manipulation Languageです。
以下は、DBMSにおけるDDLとDMLの主な違いです:
KEY DIFFERENCES:
- Data Definition Language (DDL) では、データベース構造またはスキーマを定義でき、Data Manipulation Language (DML コマンド) では、データベース内のデータを管理することができます。
- DDL コマンドはデータベース スキーマの作成に使用され、DML コマンドはデータベースへの入力と操作に使用されます。
- DDL と DML を比較すると、DDL 文はテーブル全体に影響するのに対し、DML コマンドは 1 行または複数行のみに影響します。
- DDL では、SQL ステートメントはロールバックできませんが、DML SQL ステートメントはロールバックできます。
- DDL は宣言的手法ですが、DML は命令的手法です。 1) CREATE, 2) ALTER, 3) DROP, 4) TRUNCATEなどであり、重要なDMLコマンドは以下の通りです。
Why DDL?
ここで、DDLメソッドを使用する理由を説明します。
- 共有データの保存が可能
- データの独立性、整合性の向上
- 複数ユーザーの使用が可能
- セキュリティの向上 効率的なデータアクセス
DMLはなぜ必要か
DMLの利点/長所を以下に挙げます。
- DML ステートメントにより、データベースに格納されているデータを変更できます。
- ユーザーは必要なデータを指定できます。
- システムとの効率的な人間同士の対話を提供します。
DBMS における DDL と DML の違い
ここで、DDL と DML コマンド間の主な相違点を説明します。
DDL | DML |
データ定義言語(DDL)は、データベース構造またはスキーマを定義するのに役立ちます。 | Data Manipulation Language (DML コマンド) は、データベースに格納されたデータを管理するのに使用します。 |
DDL コマンドは、データベース スキーマを作成するために使用されます。 | DML コマンドは、データベースの入力と操作に使用されます。 |
DDL はさらに分類されることはありません。 | DML は手続き型と非・手続き型の DML に分類されます。 |
CREATE, ALTER, DROP, TRUNCATE AND COMMENT, RENAMEなど。 | INSERT、UPDATE、DELETE、MERGE、CALLなど。 |
テーブルのカラムを定義します。 | テーブルの行を追加または更新します |
DDL 文はテーブル全体に影響を与えます。 | DML は 1 つまたは複数の行に影響します。 |
SQL ステートメントはロールバックできません | SQL ステートメントはロールバックできます |
DDL は宣言的です。 | DML は命令型です。 |
DDLのコマンド
DDLコマンドの種類は5つです。
CREATE
CREATE文は、データベース構造のスキーマを定義するために使用されます。
構文。
CREATE TABLE TABLE_NAME (COLUMN_NAME DATATYPES);
たとえば、次のようになります。
Create database university;Create table students;Create view for_students;
DROP
ドロップコマンドは、RDBMSからテーブルとデータベースを削除します。
構文。
DROP TABLE ;
たとえば、以下のようになります。
Drop object_type object_name;Drop database university;Drop table student;
ALTER
Altersコマンドは、データベースの構造を変更することができます。
構文。
テーブルに新しいカラムを追加する
ALTER TABLE table_name ADD column_name COLUMN-definition;
テーブルの既存のカラムを変更する。
ALTER TABLE MODIFY(COLUMN DEFINITION....);
たとえば、次のようになります。
Alter table guru99 add subject varchar;
TRUNCATE:
このコマンドは、テーブルからすべての行を削除して、テーブルを含む領域を解放するために使用します。
構文。
TRUNCATE TABLE table_name;
例です。
TRUNCATE table students;
DMLのコマンド
ここに重要なDMLコマンドをいくつか紹介します。
- INSERT
- UPDATE
- DELETE
INSERT:
これは SQL クエリーである文です。 このコマンドは、テーブルの行にデータを挿入するために使用されます。
構文。
INSERT INTO TABLE_NAME (col1, col2, col3,.... col N) VALUES (value1, value2, value3, .... valueN); Or INSERT INTO TABLE_NAME VALUES (value1, value2, value3, .... valueN);
たとえば、以下のようになります。
INSERT INTO students (RollNo, FIrstName, LastName) VALUES ('60', 'Tom', 'Erichsen');
UPDATE:
このコマンドは、テーブルの列の値を更新または変更するために使用されます。
構文。
UPDATE table_name SET
たとえば、以下のようになります。
UPDATE students SET FirstName = 'Jhon', LastName=' Wick' WHERE StudID = 3;
DELETE:
このコマンドは、テーブルから1つまたは複数の行を削除するために使用されます。
構文。
DELETE FROM table_name ;
たとえば、以下のようになります。
DELETE FROM students WHERE FirstName = 'Jhon';
DDLコマンド例
CREATE
構文:
CREATE TABLE tableName( column_1 datatype , column_2 datatype , ...);
ここで、
- パラメータ tableName は作成するテーブルの名前を示します。
- パラメータ column_1, column_2… はテーブルに追加する列を示します。
- 列には NULL または NOT NULL を指定しなければなりません。 指定しない場合、SQL Server は NULL をデフォルトとして扱います
例。
CREATE TABLE Students(Student_ID Int,Student_Name Varchar(10))
ALTER
構文。
Alter TABLE <Table name> ADD Column1 datatype, Column2 datatype;
例:
ALTER TABLE University.Students_Name ADD Course_Duration VARCHAR(20);
DROP
Syntax:
DROP TABLE <tableName>;
パラメータ tableName は、削除されるテーブルの名前です。
例です。
DROP TABLE COURSE_NAMES;
DMLコマンド例
INSERT
PL/SQLでは、SQLコマンドINSERT INTOを使って、任意のテーブルにデータを挿入することができます。 このコマンドは、テーブル名、テーブル列、列の値を入力とし、その値をベース・テーブルに挿入します。
INSERTコマンドは、各列の値を与えるのではなく、’SELECT’ステートメントを使用して他のテーブルから直接値を取得することもできます。 SELECT’ステートメントを通して、ベース・テーブルが含むのと同じ数の行を挿入することができます。
構文。
BEGIN INSERT INTO <table_name>(<column1 >,<column2>,...<column_n>) VALUES(<valuel><value2>,...:<value_n>);END;
上記の構文は、INSERT INTOコマンドを示しています。 テーブル名と値は必須フィールドですが、挿入ステートメントがテーブルのすべての列の値を持つ場合、列名は必須ではありません。
上記のように値が別々に与えられる場合、キーワード ‘VALUES’ は必須となります。
構文。
BEGIN INSERT INTO <table_name>(<columnl>,<column2>,...,<column_n>) SELECT <columnl>,<column2>,.. <column_n> FROM <table_name2>;END;
上記の構文は、SELECTコマンドを使用して<table_name2>から直接値を取得するINSERT INTOコマンドを示します。
この場合、値は別に与えられないので、キーワード「VALUES」は存在してはいけません。
DELETE
以下は、テーブル
を削除するシンタックスです。
DROP TABLE <TableName>;
パラメータTableNameは削除されるテーブルの名前です。
例:
DROP TABLE COURSE_NAMES;
SELECT
SQLサーバーでデータを表示するには、SELECTステートメントを使用します。
Syntax:
SELECT expressionFROM tableName;
例:
SELECT * FROM Course;