当前位置: 代码网 > it编程>数据库>Mysql > MySQL数据库基础入门指南之DDL、DML、DCL三大命令详解

MySQL数据库基础入门指南之DDL、DML、DCL三大命令详解

2026年08月26日 Mysql 我要评论
大家好,数据库是后端开发的核心组件,几乎所有的应用都需要与数据库打交道。今天我们将系统性地学习 mysql 的基础操作,涵盖数据库与表的创建、数据的增删改查、用户管理以及权限控制,同时理解ddl、dm

大家好,数据库是后端开发的核心组件,几乎所有的应用都需要与数据库打交道。今天我们将系统性地学习 mysql 的基础操作,涵盖数据库与表的创建数据的增删改查用户管理以及权限控制,同时理解 ddl、dml、dcl 三大类 sql 命令的区别与应用。

一、sql 语言分类

sql(structured query language)按功能分为三大类:

分类全称说明常用命令
ddldata definition language数据定义语言,定义数据库结构createalterdroptruncate
dmldata manipulation language数据操作语言,操作数据内容insertupdatedeleteselect
dcldata control language数据控制语言,管理权限grantrevoke

二、ddl:数据定义语言

ddl 用于定义数据库的结构,包括数据库、表、索引等对象的创建、修改和删除。

2.1 数据库操作

-- 查看所有数据库
show databases;
-- 创建数据库
create database mydb;
create database if not exists mydb;
create database mydb character set utf8mb4 collate utf8mb4_general_ci;
-- 选择数据库
use mydb;
-- 查看当前使用的数据库
select database();
-- 删除数据库
drop database mydb;
drop database if exists mydb;

2.2 数据类型

创建表之前,需要了解常用的数据类型:

分类数据类型说明
数值int整数
bigint大整数
decimal(m,d)精确小数
float / double浮点数
字符串varchar(n)可变长度字符串(最长 65535 字符)
char(n)固定长度字符串
text长文本
日期date日期(yyyy-mm-dd)
datetime日期时间(yyyy-mm-dd hh:mm:ss)
timestamp时间戳
布尔boolean / tinyint(1)布尔值

2.3 创建表

-- 基本建表语法
create table 表名 (
    列名 数据类型 [约束],
    列名 数据类型 [约束],
    ...
);

-- 示例:创建用户表
create table users (
    id int primary key auto_increment,
    username varchar(50) not null unique,
    email varchar(100) not null unique,
    password varchar(255) not null,
    age int default 0,
    created_at datetime default current_timestamp,
    updated_at datetime default current_timestamp on update current_timestamp
);

-- 查看表结构
desc users;
-- 或
show columns from users;

-- 查看建表语句
show create table users;

-- 查看所有表
show tables;

2.4 约束(constraints)

约束说明
primary key主键,唯一标识一行
foreign key外键,关联其他表
not null不能为空
unique唯一,不能重复
default默认值
auto_increment自动递增(用于整数主键)

2.5 修改表结构

-- 添加列
alter table users add column phone varchar(20);

-- 修改列类型
alter table users modify column phone varchar(15);

-- 修改列名和类型
alter table users change column phone mobile varchar(20);

-- 删除列
alter table users drop column mobile;

-- 重命名表
alter table users rename to user_accounts;

2.6 删除表

-- 删除表
drop table users;

-- 删除表(如果存在)
drop table if exists users;

三、dml:数据操作语言

dml 用于对表中的数据进行增、删、改、查操作。

3.1 插入数据:insert

-- 插入单行(指定列)
insert into users (username, email, password, age) 
values ('张三', 'zhangsan@example.com', '123456', 25);

-- 插入单行(所有列)
insert into users values (null, '李四', 'lisi@example.com', '654321', 30, now(), now());

-- 插入多行
insert into users (username, email, password, age) values 
('王五', 'wangwu@example.com', '111111', 28),
('赵六', 'zhaoliu@example.com', '222222', 22),
('孙七', 'sunqi@example.com', '333333', 35);

-- 插入查询结果
insert into users_backup (username, email, age)
select username, email, age from users where age > 25;

3.2 查询数据:select

-- 查询所有列
select * from users;

-- 查询指定列
select id, username, email from users;

-- 条件查询(where)
select * from users where age > 25;
select * from users where username = '张三';
select * from users where age between 20 and 30;
select * from users where email like '%@example.com';

3.3 更新数据:update

-- 更新单行
update users set age = 26 where username = '张三';

-- 更新多列
update users set age = 30, email = 'new@example.com' where id = 1;

-- 条件更新
update users set age = age + 1 where age < 30;

-- 更新所有行(谨慎使用)
update users set updated_at = now();

3.4 删除数据:delete

-- 删除指定行
delete from users where id = 1;

-- 删除满足条件的行
delete from users where age > 60;

-- 删除所有行(谨慎使用)
delete from users;

四、dcl:数据控制语言

dcl 用于管理数据库用户的权限。

4.1 用户管理

-- 查看所有用户
select user, host from mysql.user;

-- 创建用户
create user 'username'@'localhost' identified by 'password';
create user 'username'@'%' identified by 'password';  -- 允许任何主机连接

-- 修改密码
alter user 'username'@'localhost' identified by 'new_password';
set password for 'username'@'localhost' = password('new_password');

-- 删除用户
drop user 'username'@'localhost';

4.2 权限管理

-- 授予权限
-- 语法:grant 权限 on 数据库.表 to '用户'@'主机'
grant all privileges on mydb.* to 'username'@'localhost';
grant select, insert, update on mydb.users to 'username'@'localhost';
grant select on *.* to 'readonly'@'%';  -- 全局只读

-- 授予所有权限
grant all privileges on *.* to 'admin'@'localhost' with grant option;

-- 查看用户权限
show grants for 'username'@'localhost';

-- 撤销权限
revoke insert, update on mydb.users from 'username'@'localhost';
revoke all privileges on mydb.* from 'username'@'localhost';

-- 刷新权限(使修改生效)
flush privileges;

4.3 权限级别

权限级别说明示例
全局所有数据库*.*
数据库指定数据库mydb.*
指定表mydb.users
指定列mydb.users.username

4.4 常用权限列表

权限说明
all privileges所有权限
select查询数据
insert插入数据
update更新数据
delete删除数据
create创建数据库/表
drop删除数据库/表
alter修改表结构
index创建/删除索引

五、常用命令速查表

分类命令说明
数据库show databases查看所有数据库
create database db创建数据库
use db选择数据库
drop database db删除数据库
表操作show tables查看所有表
create table t (...)创建表
desc t查看表结构
alter table t add/ modify修改表结构
drop table t删除表
数据操作insert into t values(...)插入数据
select * from t查询数据
update t set ... where ...更新数据
delete from t where ...删除数据
用户权限create user 'u'@'h' identified by 'p'创建用户
grant ... on db.* to 'u'@'h'授予权限
revoke ... on db.* from 'u'@'h'撤销权限
show grants for 'u'@'h'查看权限
drop user 'u'@'h'删除用户

六、总结

分类核心命令
ddlcreatealterdroptruncate
dmlinsertselectupdatedelete
dclcreate usergrantrevoke
表约束primary keyforeign keynot nulluniquedefault
常用查询whereorder bygroup bylimitjoinlike

数据库操作是后端开发的必备技能。ddl 负责数据库结构的设计,dml 负责数据的日常操作,dcl 负责用户权限的安全管理。掌握这三类 sql 命令,就能独立完成从数据库设计到数据维护的全流程。

以上就是mysql数据库基础入门指南之ddl、dml、dcl三大命令详解的详细内容,更多关于mysql数据库ddl、dml、dcl的资料请关注代码网其它相关文章!

(0)

相关文章:

版权声明:本文内容由互联网用户贡献,该文观点仅代表作者本人。本站仅提供信息存储服务,不拥有所有权,不承担相关法律责任。 如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 2386932994@qq.com 举报,一经查实将立刻删除。

发表评论

验证码:
Copyright © 2017-2026  代码网 保留所有权利. 粤ICP备2024248653号
站长QQ:2386932994 | 联系邮箱:2386932994@qq.com