Mysql 的三大语言结构和数据类型 -- 示例
MySQL 的世界就像一个巨大的乐高积木,而 DDL、DML 和 DCL 就是你的三件“瑞士军刀”!
引言:数据库的三重境界
说到数据库操作,就像是在玩一个超级复杂的沙盘游戏。你需要用 SQL 语句来搭建、运营和管理这个虚拟世界。而 MySQL 的三大语言结构就像是三个不同角色,各有各的“绝活”。
问题:数据库操作的三大语言到底有什么区别?
DDL(数据定义语言)、DML(数据操作语言)、DCL(数据控制语言)。这三个像是一个“三元组”,负责数据库的建、用、管。
答案:数据操作的三层金字塔
1. DDL 是“建筑师”,负责搭建数据库的“骨骼”。就像乐高积木一样,用 CREATE、ALTER、DROP 来构建和调整数据库的结构。比如,你可以用 CREATE TABLE 建一个用户表,或者用 ALTER TABLE 给它加点“装备”。 2. DML 是“搬运工”,负责数据的增删改查。 INSERT、UPDATE、DELETE、SELECT,这四个命令就像是数据库的“手脚”,让你可以自由地和数据打交道。比如,用 INSERT 往数据库里“搬”数据,用 SELECT 把数据“搬”出来看。 3. DCL 是“保安”,负责数据的安全。GRANT、REVOKE 这些命令就像是数据库的“保镖”,确保数据只能被“允许的人”访问和操作。比如,用 GRANT 给某个用户授权,用 REVOKE 把权限“收回来”。
拓展思考:如何避免数据库操作中的一些坑?
比如:
- 滥用 GRANT 导致数据泄露。
- 在高并发场景下,乱用 ALTER TABLE 导致锁表。
- 用 DELETE 时不加 WHERE 条件,导致“一锅端”。
Mysql 的三大语言结构和数据类型 -- 示例
- 一、DDL(Data Definition Language):数据库定义语言
-
- 1、CREATE TABLE:创建数据库表
- 2、ALTER TABLE:更改表结构、添加、删除、修改列长度
- 3、DROPTABLE:删除表
- 二、DML(datamanipulationlanguage):数据库操纵语言
-
- 1、INSERT:添加数据到数据库中
- 2、UPDATE:修改数据库中的数据
- 3、DELETE:删除数据库中的数据
- 4、SELECT:选择(查询)数据
- 三、DCL:数据库控制语言
-
- 1、GRANT:授予访问权限
- 2、REVOKE:收回权限
- 3、 删除用户:drop user
- 4、COMMIT:提交事务处理
- 5、ROLLBACK:事务处理回退
一、DDL(Data Definition Language):数据库定义语言
比如创建、修改或删除数据库对象,包括如下SQL语句:created,alter,drop
1、CREATE TABLE:创建数据库表
2、ALTER TABLE:更改表结构、添加、删除、修改列长度
3、DROPTABLE:删除表
-- 创建表create table if not EXISTS tbl_aom_alarm_metadata( alarm_id varchar(64) not null primary key COMMENT "告警id", alarm_type varchar(64) COMMENT "告警类型", event_name varchar(200) not null comment "事件名称", event_type varchar(64) comment "事件类型--级别", resource_priver varchar(40) COMMENT "告警源", resource_id varchar(3000) comment "资源id")ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT = "告警详情表"
-- 为表中添加字段ALTER TABLE tbl_aom_alarm_metadata add (create_time TIMESTAMP DEFAULT CURRENT_TIMESTAMP comment "创建时间",update_time TIMESTAMP DEFAULT CURRENT_TIMESTAMP comment "修改时间");-- 为表中添加主键ALTER TABLE tbl_aom_alarm_metadata add constraint aom_alarm_id primary key(alarm_id);-- 为表中删除字段ALTER TABLE tbl_aom_alarm_metadata DROP create_time;-- 为表中删除主键ALTER TABLE tbl_aom_alarm_metadata DROP primary key;
-- 删除表drop table tbl_aom_alarm_metadata;
二、DML(datamanipulationlanguage):数据库操纵语言
1、INSERT:添加数据到数据库中
2、UPDATE:修改数据库中的数据
3、DELETE:删除数据库中的数据
4、SELECT:选择(查询)数据
-- 不用列名,需要将列中所有的列都插入值insert into tbl_aom_alarm_metadata VALUES('202202280101110005','alarm','CPU负载过高','Major','主机','CPU负载过高,spaseName=Application',CURRENT_TIME,CURRENT_TIME),('202202280101110006','alarm','内存不足','Major','主机','内存不足,spaseName=Application',CURRENT_TIME,CURRENT_TIME);-- 使用列名,需要需要插入的列插入列中insert into tbl_aom_alarm_metadata(alarm_id,alarm_type,event_name,event_type,resource_priver,resource_id) VALUES('202202280101110003','alarm','CPU负载过高','Major','主机','CPU负载过高,spaseName=Application'),('202202280101110004','alarm','内存不足','Major','主机'