Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >SQL中的DQL DML DDL和DCL是怎么区分和定义的

SQL中的DQL DML DDL和DCL是怎么区分和定义的

作者头像
共饮一杯无
发布于 2022-11-24 12:53:44
发布于 2022-11-24 12:53:44
1.2K00
代码可运行
举报
运行总次数:0
代码可运行

SQL(Structured Query Language)结构化查询语言是数据库的核心语言,是高级的非过程化编程语言,也是经典的声明式编程范式实现。 SQL通用语法

DDL:操作数据库、表

DDL(Data Definition Language)数据定义语言,主要是操作数据库和表,数据库相关操作有建库,删除库,表相关操作有建表、删除表、修改表字段、修改约束等操作,关键字一般有:create、drop、alter、truncate、comment,rename。

操作数据库:CRUD

C(Create):创建
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
-- 创建数据库:
create database 数据库名称;

-- 创建数据库,判断不存在,再创建:
create database if not exists 数据库名称;

-- 创建数据库,并指定字符集
create database 数据库名称 character set 字符集名;

-- 练习: 创建db4数据库,判断是否存在,并制定字符集为gbk
create database if not exists db4 character set gbk;
R(Retrieve):查询
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
-- 查询所有数据库的名称:
show databases;
-- 查询某个数据库的字符集:查询某个数据库的创建语句
show create database 数据库名称;
U(Update):修改
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
-- 修改数据库的字符集
alter database 数据库名称 character set 字符集名称;
D(Delete):删除
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
-- 删除数据库
drop database 数据库名称;

-- 判断数据库存在,存在再删除
drop database if exists 数据库名称;
使用数据库
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
-- 查询当前正在使用的数据库名称
select database();

-- 使用数据库
use 数据库名称;	

操作表

C(Create):创建

语法:

create table 表名( 列名1 数据类型1, 列名2 数据类型2, … 列名n 数据类型n ); 注意:最后一列,不需要加逗号,

数据库类型:

  1. int:整数类型 age int,
  2. double:小数类型 score double(5,2)
  3. date:日期,只包含年月日,yyyy-MM-dd
  4. datetime:日期,包含年月日时分秒 yyyy-MM-dd HH:mm:ss
  5. timestamp:时间错类型 包含年月日时分秒 yyyy-MM-dd HH:mm:ss 如果将来不给这个字段赋值,或赋值为null,则默认使用当前的系统时间,来自动赋值
  6. varchar:字符串 name varchar(20):姓名最大20个字符 zhangsan 8个字符 张三 2个字符

创建表案例: create table student( id int, name varchar(32), age int , score double(4,1), birthday date, insert_time timestamp ); 复制表:

create table 表名 like 被复制的表名;

R(Retrieve):查询

查询某个数据库中所有的表名称

show tables;

查询表结构

desc 表名;

U(Update):修改
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
-- 修改表名
alter table 表名 rename to 新的表名;

-- 修改表的字符集
alter table 表名 character set 字符集名称;

-- 添加一列
alter table 表名 add 列名 数据类型;

-- 修改列名称 类型
alter table 表名 change 列名 新列别 新数据类型;
alter table 表名 modify 列名 新数据类型;

-- 删除列
alter table 表名 drop 列名;
D(Delete):删除
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
 drop table 表名;
 drop table  if exists 表名 ; 	

DML:增删改表中数据

DML(Data Manipulation Language)数据操作语言,对数据库中的数据进行一些简单操作,关键字一般有三个:insert, delete, update。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
-- 添加数据:
-- 语法:
insert into 表名(列名1,列名2,...列名n) values(1,2,...值n);
-- 💡注意:
-- 1. 列名和值要一一对应。
-- 2. 如果表名后,不定义列名,则默认给所有列添加值
insert into 表名 values(1,2,...值n);
-- 3. 除了数字类型,其他类型需要使用引号(单双都可以)引起来

-- 删除数据:
-- 语法:
delete from 表名 [where 条件]
-- 💡注意:
-- 1. 如果不加条件,则删除表中所有记录。
-- 2. 如果要删除所有记录
delete from 表名; -- 不推荐使用。有多少条记录就会执行多少次删除操作
TRUNCATE TABLE 表名; -- 推荐使用,效率更高 先删除表,然后再创建一张一样的表。

-- 修改数据:
-- 语法:
update 表名 set 列名1 =1, 列名2 =2,... [where 条件];
-- 💡注意:
-- 1. 如果不加任何条件,则会将表中所有记录全部修改。

DQL:查询表中的记录

DQL(Data Query Language)数据查询语言,数据检索语句,用于从表中获取数据。通常最常用的为保留字select。常用的语句关键字有:SELECT, FROM, WHERE, ORDER BY, HAVING,ASC|DESC等。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
select  from 表名;

-- 语法:
select
	字段列表
from
	表名列表
where
	条件列表
group by
	分组字段
having
	分组之后的条件
order by
	排序
limit
	分页限定
	

-- 基础查询
-- 1. 多个字段的查询
select 字段名1,字段名2... from 表名;
-- 💡注意:如果查询所有字段,则可以使用来替代字段列表。
-- 2. 去除重复:
distinct
-- 3. 计算列
一般可以使用四则运算计算一些列的值。(一般只会进行数值型的计算)
ifnull(表达式1,表达式2)null参与的运算,计算结果都为null
	表达式1:哪个字段需要判断是否为null
	如果该字段为null后的替换值。
-- 4. 起别名:
asas也可以省略
	

-- 条件查询
-- 1. where子句后跟条件
-- 2. 运算符
	 ><<=>==<>
	 BETWEEN...AND  
	 IN( 集合) 
	 LIKE:模糊查询
		 占位符:
			 _:单个任意字符
			 %:多个任意字符
	 IS NULL  
	 and  或 &&
	 or  或 || 
	 not  或 !

DCL:管理用户,授权

DCL(Data Control Language)数据控制语言,如grant授权、revoke撤销权限等,主要用于控制访问权限或命令提交。

管理用户

添加用户
  • 语法:CREATE USER ‘用户名’@‘主机名’ IDENTIFIED BY ‘密码’;
删除用户
  • 语法:DROP USER ‘用户名’@‘主机名’;
修改用户密码
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
UPDATE USER SET PASSWORD = PASSWORD('新密码') WHERE USER = '用户名';
UPDATE USER SET PASSWORD = PASSWORD('abc') WHERE USER = 'lisi';
SET PASSWORD FOR '用户名'@'主机名' = PASSWORD('新密码');
SET PASSWORD FOR 'root'@'localhost' = PASSWORD('123'); 
  • mysql中忘记了root用户的密码? 1. cmd – > net stop mysql 停止mysql服务 - 需要管理员运行该cmd 2. 使用无验证方式启动mysql服务: mysqld --skip-grant-tables 2. 打开新的cmd窗口,直接输入mysql命令,敲回车。就可以登录成功 2. use mysql; 2. update user set password = password(‘你的新密码’) where user = ‘root’; 2. 关闭两个窗口 2. 打开任务管理器,手动结束mysqld.exe 的进程 2. 启动mysql服务 2. 使用新密码登录。
查询用户
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
-- 1. 切换到mysql数据库
USE mysql;
-- 2. 查询user表
SELECT * FROM USER; 
-- 通配符: % 表示可以在任意主机使用用户登录数据库

权限管理

查询权限
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
-- 查询权限
SHOW GRANTS FOR '用户名'@'主机名';
SHOW GRANTS FOR 'lisi'@'%';
授予权限
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
-- 授予权限
grant 权限列表 on 数据库名.表名 to '用户名'@'主机名';

-- 给张三用户授予所有权限,在任意数据库任意表上
GRANT ALL ON *.* TO 'zhangsan'@'localhost';
撤销权限
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
-- 撤销权限:
revoke 权限列表 on 数据库名.表名 from '用户名'@'主机名';
REVOKE UPDATE ON db3.`account` FROM 'lisi'@'%';

TCL:事务控制

TCL(Transaction Control Language)事务控制语言:如commit提交事务,rollback回滚事务set transaction修改数据库的事务隔离级别或者用来修改事务内表数据的访问模式等。

概念

如果一个包含多个步骤的业务操作,被事务管理,那么这些操作要么同时成功,要么同时失败。

操作

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
-- 开启事务: 
start transaction;
-- 回滚:
rollback;
-- 提交:
commit;

更多MySQL操作可以查看我的这篇文章:长文一次说完MySQL常用语句和命令等汇总

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2022-04-29,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
数据库开发必备:深入理解DDL、DML、DQL和DCL
DDL(Data Definition Language),数据定义语言,用来定义数据库结构,包括创建、修改和删除数据库对象,如数据库、表、索引和视图。常用的 DDL 操作包括:
平凡之路.
2025/03/24
9840
数据库开发必备:深入理解DDL、DML、DQL和DCL
SQL系列之DDL/DCL语言
前言:前面王豆豆已经写了增删改查这四种软件测试人员必须要掌握的语句,以下是链接: 增删改查的增删改 增删改查的查之简单查询 增删改查的查之高级查询 今天王豆豆主要讲一下DDL和DCL语言,这些语句只需要了解即可,当然能够记住是最好的。 SQL语言主要分为以下四类: 数据定义语言(DDL): 用于下定义和管理数据对象(库,表,索引,视图),包括数据库,数据表等,例如:CREATE DROP ALTER等语句。 数据操作语言(DML): 用于操作数据库对象中包含的数据,例如:INSERT U
王豆豆
2018/06/08
1.1K0
【MySQL】SQL语句之DDL、DML、DQL
数据库是不认识JAVA语言的,但是我们同样要与数据库交互,这时需要使用到数据库认识的语言SQL语句,它是数据库的代码。
陶然同学
2023/02/24
9670
【MySQL】SQL语句之DDL、DML、DQL
MySQL数据库学习
MySQL 数据库学习 MySQL数据库软件 安装 … 配置 MySQL服务启动 手动。 cmd–> services.msc 打开服务的窗口 使用管理员打开cmd net start mysql //启动mysql的服务 net stop mysql //关闭mysql服务 MySQL登录 mysql -uroot -p密码 mysql -hip -uroot -p连接目标的密码 mysql --host=ip --user=root --password=连接目标的密码 MySQL退出 exit qu
h-t-m
2022/11/24
4.5K0
MySQL数据库学习
SQL中有关DQL、DML、DDL、DCL的概念与区别
SQL(Structure Query Language)结构化查询语言是数据库的核心语言,是高级的非过程化编程语言。它功能强大,效率高,简单易学易维护。SQL语言基本上独立于数据库本身、使用的机器、网络、操作系统,基于SQL的DBMS产品可以运行在从个人机、工作站到基于局域网、小型机和大型机的各种计算机系统上,具有良好的可移植性。
码农架构
2020/10/29
2.3K0
SQL中有关DQL、DML、DDL、DCL的概念与区别
【MySQL】:深入理解并掌握DML和DCL
DML英文全称是Data Manipulation Language(数据操作语言),用来对数据库中表的数据记录进行增、删、改操作。
屿小夏
2024/02/09
2560
【MySQL】:深入理解并掌握DML和DCL
MySQL笔记
Spring框架对JDBC的简单封装。提供了一个JDBCTemplate对象简化JDBC的开发
菜鸟雷
2020/10/23
1.1K0
MySQL笔记
MySQL数据库DDL、DML详解
一、MySQL数据库数据类型 <1> MySQL数据库中支持多种数据类型 数值型 字符型 日期型 <2> 常用的数据类型 整型 - int:整型,存储整数 - int(M): M表示预期值,与存储大小和数值的范围无关 - id int                    1 - id int(3) zerofill 001 - zerofill 零填充 会在左侧补0 - tinyint         1        -128~127 -
ruochen
2021/02/12
2.4K0
MySQL数据库DDL、DML详解
MySQL的sql语言分类DML、DQL、DDL、DCL、
SQL语言一共分为4大类:数据定义语言DDL,数据操纵语言DML,数据查询语言DQL,数据控制语言DCL
changxin7
2019/09/10
2.2K0
Mysql使用指南
1.下载zip安装包,解压,重命名为mysql,移动到你想要的地方2.配置环境变量把bin目录加到path变量中去...
乐心湖
2021/01/18
1.1K0
MySQL基础:SQL分类DDL、DML、DQL、DCL;函数、约束、多表查询、事务、并发事务四大问题、事务隔离级别——脏写、脏读、不可重复读、幻读
mysqld负责监听客户端的连接请求,处理SQL查询,管理数据库文件,以及与数据库相关的其他任务。
寻求出路的程序媛
2024/05/16
1.7K0
MySQL基础:SQL分类DDL、DML、DQL、DCL;函数、约束、多表查询、事务、并发事务四大问题、事务隔离级别——脏写、脏读、不可重复读、幻读
MySQL基础课堂笔记「建议收藏」
​ – 查询姓名中包含德的人 SELECT * FROM student WHERE NAME LIKE ‘%德%’;
全栈程序员站长
2022/09/18
1K0
MySQL基础课堂笔记「建议收藏」
史上超强最常用SQL语句大全
关于查询语句有很多,这里基础的不再介绍。主要介绍排序查询、聚合函数、模糊查询、分组查询、分页查询、内连接、外连接、子查询
全栈程序员站长
2022/07/01
5660
【学习笔记】MySQL学习笔记-服务启动与SQL篇
alter table user_msg change user_nickname user_newname varchar(30) comment “用户昵称”;
Karos
2023/01/03
4390
【学习笔记】MySQL学习笔记-服务启动与SQL篇
mysql学习笔记(三)DDL&DML
查看所有表:show tables;或者show tables from 数据库名;
逆回十六夜
2020/02/07
3900
MySQL—SQL语言
UPDATE 表名 SET 字段名1=值1,字段名2=值2,...[WHERE 条件];
Cikian.
2022/09/22
2.3K0
MySQL—SQL语言
AI解锁MySQL学习新姿势:一文掌握MySQL基础
Hello,我是方才,近期我一直在思考:在AI时代,技术博主应如何输出才能提供价值? 毕竟现在遇到问题,直接问AI,反而是更加高效的一种学习方式。冥思苦想一周,最后我总结为以下三点:
方才编程_公众号同名
2025/01/14
3000
AI解锁MySQL学习新姿势:一文掌握MySQL基础
【MySQL】DDL和DML
上述查询到的是的这些数据库是mysql安装好自带的数据库,我们以后不要操作这些数据库。
陶然同学
2023/10/14
3300
【MySQL】DDL和DML
MySQL与JDBC精简笔记
其实就是定义了操作所有关系数据库的规则。每一种数据库操作的方式存在不一样的地方,称为“方言”。
Rochester
2020/09/01
4.3K0
MySQL与JDBC精简笔记
Mysql通用语法及分析
1.SQL语句可以单行或多行书写,以分号结尾。 2.SQL语句可以使用空格/缩进来增强语句的可读性。 3.MySQL数据库的SQL语句不区分大小写,关键字建议使用大写。 4.注释:
海盗船长
2023/10/11
4770
相关推荐
数据库开发必备:深入理解DDL、DML、DQL和DCL
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档