MySQL 数据库操作详解:DDL、DML、DQL 和 DCL
在 MySQL 数据库中,数据定义语言(DDL)、数据操作语言(DML)、数据查询语言(DQL)和数据控制语言(DCL)是四种基本的数据库操作语言。本文将详细介绍这些语言的定义、常用命令以及如何使用它们来管理和操作数据库。
1. 数据定义语言(DDL)
定义:DDL(Data Definition Language)用于定义数据库对象,如数据库、表、列等。
常用命令:
创建数据库:
CREATE DATABASE db_demo;
创建数据库(判断,如果不存在则创建):
CREATE DATABASE IF NOT EXISTS db_demo;
删除数据库:
DROP DATABASE db_demo;
删除数据库(判断,如果存在则删除):
DROP DATABASE IF EXISTS db_demo;
查询当前使用的数据库:
SELECT DATABASE();
使用/切换数据库:
USE db_demo;
查询当前数据库下所有表名称:
SHOW TABLES;
查询表结构:
DESC tb_demo;
创建表:
CREATE TABLE tb_demo (
id INT,
`name` VARCHAR(10),
gender CHAR(1),
birthday DATE,
score DOUBLE(5,2),
email VARCHAR(64),
tel VARCHAR(16),
`status` TINYINT
);
删除表:
DROP TABLE tb_demo;
删除表(判断,如果存在则删除):
DROP TABLE IF EXISTS tb_demo;
修改表:
修改表名:
ALTER TABLE tb_demo RENAME TO tb_new_demo;
添加一列:
ALTER TABLE tb_demo ADD id INT;
修改数据类型:
ALTER TABLE tb_demo MODIFY id VARCHAR(8);
修改列名和数据类型:
ALTER TABLE tb_demo CHANGE id new_id INT;
删除列:
ALTER TABLE tb_demo DROP id;
2. 数据操作语言(DML)
定义:DML(Data Manipulation Language)用于对数据库中表的数据进行增删改。
常用命令:
添加数据:
给指定列添加数据:
INSERT INTO tb_demo (id) VALUES (1001);
给全部列添加数据:
INSERT INTO tb_demo VALUES (1001);
批量添加数据:
INSERT INTO tb_demo VALUES (1001), (1002), (1003);
修改数据:
不带条件修改数据:
UPDATE tb_demo SET field_name = new_value;
带条件修改数据:
UPDATE tb_demo SET field_name = new_value WHERE condition;
删除数据:
带条件删除数据:
DELETE FROM tb_demo WHERE id = 3;
不带条件删除数据:
DELETE FROM tb_demo;
清空表数据(DDL):
TRUNCATE TABLE tb_demo;
3. 数据查询语言(DQL)
定义:DQL(Data Query Language)用于查询数据库中表的记录(数据)。
常用命令:
基本查询语法:
SELECT ... FROM tb_demo WHERE ... GROUP BY ... HAVING ... ORDER BY ... LIMIT ...;
查询所有数据:
SELECT * FROM tb_demo;
查询指定列数据:
SELECT id, name FROM tb_demo;
条件查询:
SELECT * FROM tb_demo WHERE id = 1001;
排序查询:
SELECT * FROM tb_demo ORDER BY score DESC;
分组查询:
SELECT gender, AVG(score) FROM tb_demo GROUP BY gender;
分页查询:
SELECT * FROM tb_demo LIMIT 10 OFFSET 20;
4. 数据控制语言(DCL)
定义:DCL(Data Control Language)用于定义数据库的访问权限和安全级别,及创建用户。
常用命令:
创建用户:
CREATE USER 'username'@'host' IDENTIFIED BY 'password';
授权用户:
GRANT ALL PRIVILEGES ON db_demo.* TO 'username'@'host';
撤销权限:
REVOKE ALL PRIVILEGES ON db_demo.* FROM 'username'@'host';
删除用户:
DROP USER 'username'@'host';
总结
通过合理使用 DDL、DML、DQL 和 DCL,你可以有效地管理和操作 MySQL 数据库。以下是每种语言的简要总结:
DDL(数据定义语言):用于定义数据库对象,如数据库、表、列等。
常用命令:CREATE DATABASE、DROP DATABASE、CREATE TABLE、ALTER TABLE、DROP TABLE。
DML(数据操作语言):用于对数据库中表的数据进行增删改。
常用命令:INSERT INTO、UPDATE、DELETE。
DQL(数据查询语言):用于查询数据库中表的记录(数据)。
常用命令:SELECT、WHERE、GROUP BY、ORDER BY、LIMIT。
DCL(数据控制语言):用于定义数据库的访问权限和安全级别,及创建用户。
常用命令:CREATE USER、GRANT、REVOKE、DROP USER。
通过熟练掌握这些语言和命令,你可以在 MySQL 数据库中进行高效的数据管理和操作。