【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である.
データベースの作成
新しいテーブルにデータを挿入します.INSERT INTO tb_形式です.name (col1,col2,...) VALUES (value1,value2...);一度に1つのフィールドを挿入することができ、すべてのフィールドを挿入すると、(NAME)は省略できます.
張三の年齢を100に変更
修正TABLE STUDENT新規フィールドADDRESS
アドレスフィールドの削除
LISIという名前の行を削除
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';