【Mysql学習ノート】DDL、DML、DCLの違い


DDL(Data Definition Language)データ定義言語は、主にテーブルの構造、データ型、テーブル間のリンクや制約などの初期化作業に用いられ、テーブルを構築する際に用いられることが多い.主なコマンドはCREATE,ALTER,DROP
DML(Data Manipulation Language)データ操作言語は、主にテーブルの操作、クエリーの更新などに用いられ、よく使われるコマンドはSELECT、UPDATE、INSERT、DELETEである.
DCL(Data Control Language)データ制御言語は、主にデータベースのユーザー定義またはロールを設定または理髪するために使用され、権限を定義する文であり、一般的なコマンドはGRANT、REVOKEである.
データベースの作成
Mysql[mysql]>CREATE DATABASE TEST;
MySQL [mysql]> SHOW DATABASES;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| TEST               |
| mysql              |
| performance_schema |
+--------------------+
4 rows in set (0.00 sec)
MySQL [mysql]> USE TEST;
Database changed
MySQL [TEST]> CREATE TABLE STUDENTS(NAME CHAR(20) NOT NULL,AGE TINYINT,COURSE CHAR(100));
Query OK, 0 rows affected (0.01 sec)
MySQL [TEST]> DESC STUDENTS;
+--------+------------+------+-----+---------+-------+
| Field  | Type       | Null | Key | Default | Extra |
+--------+------------+------+-----+---------+-------+
| NAME   | char(20)   | NO   |     | NULL    |       |
| AGE    | tinyint(4) | YES  |     | NULL    |       |
| COURSE | char(100)  | YES  |     | NULL    |       |
+--------+------------+------+-----+---------+-------+
3 rows in set (0.00 sec)

新しいテーブルにデータを挿入します.INSERT INTO tb_形式です.name (col1,col2,...) VALUES (value1,value2...);一度に1つのフィールドを挿入することができ、すべてのフィールドを挿入すると、(NAME)は省略できます.
MySQL [TEST]> INSERT INTO STUDENTS (NAME) VALUES ('ZHANGSAN');
Query OK, 1 row affected (0.00 sec)

MySQL [TEST]> SELECT * FROM STUDENTS;
+----------+------+--------+
| NAME     | AGE  | COURSE |
+----------+------+--------+
| ZHANGSAN | NULL | NULL   |
+----------+------+--------+
1 row in set (0.00 sec)
INSERT INTO STUDENTS VALUES ('WANGWU',33,'YUWEN'),('LISI',45,'SHUXUE'),('LIMING',32,'ENGLISH');
Query OK, 3 rows affected (0.01 sec)
Records: 3  Duplicates: 0  Warnings: 0

MySQL [TEST]> SELECT * FROM STUDENTS;
+----------+------+---------+
| NAME     | AGE  | COURSE  |
+----------+------+---------+
| ZHANGSAN | NULL | NULL    |
| WANGWU   |   33 | YUWEN   |
| LISI     |   45 | SHUXUE  |
| LIMING   |   32 | ENGLISH |
+----------+------+---------+
4 rows in set (0.00 sec)

張三の年齢を100に変更
UPDATE STUDENTS SET AGE=100 WHERE NAME='ZHANGSAN';

修正TABLE STUDENT新規フィールドADDRESS
UPDATE TABLE STUDENT ADD ADDRESS CHAR(100);

アドレスフィールドの削除
UPDATE TABLE STUDENT DROP ADDRESS;

LISIという名前の行を削除
DELETE FROM STUDENTS WHERE NAME='LISI';