【从删库到跑路】MySQL系列——详细讲解SQL的DDL,DML,DQL,DCL语句

news2025/3/12 17:19:26

🎊专栏【MySQL】
🍔喜欢的诗句:更喜岷山千里雪 三军过后尽开颜。
🎆音乐分享【如愿】
大一同学小吉,欢迎并且感谢大家指出我的问题🥰

文章目录

  • 🍔关系型数据库
    • ⭐概念
    • ⭐特点
  • 🍔MySQL数据库的数据类型
  • 🍔SQL通用语法
  • 🍔SQL分类
    • ⭐DDL语句操作——数据库
      • 🎈查询当前数据库
      • 🎈查询所有数据库
      • 🎈创建数据库
        • 🎈创建数据库并设置字符集
      • 🎈删除数据库
      • 🎈使用数据库
    • ⭐DDL语句操作——表
      • 🎈查询当前数据库的所有表
    • ⭐创建表
      • 🎈查询表结构
      • 🎈查询指定表的建表语句
    • ⭐DDL表操作——修改表
      • 🎈修改数据类型
      • 🎈修改字段名和字段类型
      • 🎈修改表名
      • 🎈删除字段
      • 🎈删除表
      • 🎈删除表,并且自动创建该表
    • ⭐总结
    • ⭐DML语句——添加数据
      • 🎈给 指定 字段添加数据
      • 🎈给 全部 字段添加数据
      • 🎈批量添加数据
        • 🏀注意
    • ⭐DML语句——修改数据
        • 🏀注意
    • ⭐DML语句——删除数据
        • 🏀注意
    • ⭐总结
    • ⭐DQL语句——查询数据
      • 🎈基本查询
        • 🏀查询多个字段
        • 🏀设置别名
        • 🏀去除重复记录
      • 🎈条件查询
      • 🎈聚合函数
        • 🏀注意
      • 🎈分组查询
        • 🏀where和having的区别
        • 🏀注意
      • 🎈排序查询
        • 🏀注意
      • 🎈分页查询
        • 🏀注意
    • ⭐DQL语句——执行顺序
    • ⭐总结
    • ⭐DCL语句—用户管理
      • 🎈查询用户
      • 🎈创建用户
      • 🎈修改用户密码
      • 🎈删除用户
        • 🏀注意
    • ⭐DCL语句—权限控制
      • 🎈查询权限
      • 🎈授予权限
      • 🎈撤销权限
    • ⭐总结

内容有点多,建议大家先看目录。

在这里插入图片描述

🍔关系型数据库

⭐概念

建立在关系模型基础上,由多张相互连接的二维表组成的数据库

⭐特点

🏀使用表存储数据,格式统一,便于维护
🏀使用SQL语言操作,标准统一,使用方便
在这里插入图片描述

🍔MySQL数据库的数据类型

通过客户端,连接MySQL数据库管理系统(DBMS),然后通过SQL语句,通过数据库管理系统创建数据库
也可以通过SQL语句,通过数据库管理系统,在指定的数据库中创建表
在一个数据库服务器中是可以创建多个数据库的,而在一个数据库中,又可以创建多张表,在表中,我们又能存储一条一条的结构
🏀所以数据库和表就是MySQL数据库的数据类型

(https://img-blog.csdnimg.cn/ddf395047a81437d80f59b01613b4307.png)**

🍔SQL通用语法

🏀SQL语句可以单行或多行书写,并且以分号结尾
🏀SQL语句可以使用空格或缩进来增强语句的可读性
🏀MySQL数据库的SQL语句不区分大小写,关键字建议大写
🏀单行注释:–注释内容(或#注释内容)
🏀多行注释:/ * 注释内容 * /

🍔SQL分类

在这里插入图片描述

⭐DDL语句操作——数据库

🎈查询当前数据库

select database();

在这里插入图片描述

🎈查询所有数据库

show databases;

在这里插入图片描述

🎈创建数据库

create database itcast;

可以加一个判断条件,如果不存在数据库的话,就创建一个,否则不创建

create database if not exists itcast;

在这里插入图片描述

🎈创建数据库并设置字符集

create database 数据库名称 default charset 字符集;

在这里插入图片描述

🎈删除数据库

drop database 数据库名称;

可以加一个判断条件,如果存在这个数据库,就删除,否则不删除
;

drop database if exists 数据库名称

在这里插入图片描述

🎈使用数据库

例如

use itcast;

表示我要切换到itcast数据库

在这里插入图片描述

⭐DDL语句操作——表

🎈查询当前数据库的所有表

show tables;

在这里插入图片描述

⭐创建表

在这里插入图片描述

SQL写完后要加上分号,如果没有分号,那么就可以写多行

在这里插入图片描述
数据库里面的字符串类型是varchar()(()里面是字符串长度)不是string

🎈查询表结构

desc 表名;

在这里插入图片描述

🎈查询指定表的建表语句

show create table 表名;

在这里插入图片描述

⭐DDL表操作——修改表

🎈修改数据类型

alter table 表名 modify 字段名 新数据类型(长度);

🎈修改字段名和字段类型

alter table 表名 change 旧字段名 新字段名 类型(长度) [comment 注释];

在这里插入图片描述

🎈修改表名

alter table 表名 rename to 新表名;

在这里插入图片描述

🎈删除字段

alter table 表名 drop 字段名;

在这里插入图片描述

🎈删除表

drop table 表名;

可以添加一个判断条件

drop table if exists 表名;

🎈删除表,并且自动创建该表

truncate table 表名;

为什么要这样子操作
虽然会重新创建该表,但是该表的所有数据都不存在了

⭐总结

在这里插入图片描述

⭐DML语句——添加数据

🎈给 指定 字段添加数据

insert into 表名(字段名1,字段名2, ……) value(值1,值2);

🎈给 全部 字段添加数据

insert into 表名 value (值1,值2);

🎈批量添加数据

insert into 表名(字段名1,字段名2,……) value(值1,值2……)(值1,值2……)(值1,值2……);

或者

insert into 表名 value(值1,值2……)(值1,值2……)(值1,值2……);

🏀注意

在这里插入图片描述

⭐DML语句——修改数据

update 表名 set 字段名1=值1,字段名2=值2,……[where 条件];

加上where,就是修改符合条件的数据,否则修改的是所有数据
在这里插入图片描述

🏀注意

修改语句的条件(where)可以有,也可以没有,如果没有条件,那么会修改整张表的所有数据

⭐DML语句——删除数据

delete form 表名 [where 条件]

加上where,就是修改符合条件的数据,否则修改的是所有数据

在这里插入图片描述

🏀注意

修改语句的条件(where)可以有,也可以没有,如果没有条件,那么会修改整张表的所有数据
🏳️‍🌈delete语句不能删除某一个字段的值(但是可以用update删除)

⭐总结

在这里插入图片描述

⭐DQL语句——查询数据

在这里插入图片描述

🎈基本查询

🏀查询多个字段

select 字段1,字段2,字段3……form 表名;
select * from 表名;

在这里插入图片描述
在这里插入图片描述

🏀设置别名

select 字段1 [AS 别名1],[AS 别名2]……from 表名;

在这里插入图片描述

🏀去除重复记录

select distinct 字段列表 form 表名;

在这里插入图片描述

🎈条件查询

select 字段列表 from 表名 where 条件列表;

条件
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

🎈聚合函数

概念:就是将一列数据作为一个整体,进行纵向计算
在这里插入图片描述

select 聚合函数(字段列表) from 表名;

🏀注意

null是不参与所有聚合函数的计算的

在这里插入图片描述

🎈分组查询

select 字段列表 from 表名 [where 条件] group by 分组字段名 [having 分组后过滤条件];

🏀where和having的区别

执行时机不同:where是分组之前进行过滤,不满足where条件,不参与分组,而having是分组之后对结果进行过滤
判断条件不同:where不能对聚合函数进行判断,而having可以

在这里插入图片描述

🏀注意

执行顺序:where>聚合函数>having
分组之后,查询的字段一般是聚合函数和分组字段,查询其他字段没有意义

🎈排序查询

在这里插入图片描述

select 字段列表 from 表名 order by 字段1 排序方式1,字段2 排序方式2;

在这里插入图片描述

🏳️‍🌈排序方式
asc 升序(默认)
desc 降序

🏀注意

如果是多字段排序,当第一个字段值相同时,才会根据第二个字段排序

🎈分页查询

select 字段列表 from 表名 limit 起始索引,查询记录数;

在这里插入图片描述

🏀注意

在这里插入图片描述

⭐DQL语句——执行顺序

在这里插入图片描述

⭐总结

在这里插入图片描述

⭐DCL语句—用户管理

DCL可以用来管理数据库成员,控制数据库的访问权限

在这里插入图片描述

🎈查询用户

use mysql;
select * from user;

可以直接查看用户表
在这里插入图片描述

🎈创建用户

create user '用户名'@'主机名' identified by '密码';

在这里插入图片描述

🎈修改用户密码

alter user '用户名'@'主机名' identified with mysql_native_password by '新密码';

在这里插入图片描述

🎈删除用户

drop user '用户名'@'主机名';

在这里插入图片描述

🏀注意

主机名可以用%通配,使用%后,表明可以用任意主机进行访问

⭐DCL语句—权限控制

我们创建了用户后,我们会发现,用户可以登录上MySQL,但是不能访问任何的数据库,只能访问一个系统库
原因就是用户创建好了之后,并没有给用户分配权限

在这里插入图片描述

🎈查询权限

show grants for '用户名'@'主机名';

🎈授予权限

grant 权限列表 on 数据库名.表名 to '用户名'@'主机名';

🎈撤销权限

remove 权限列表 on 数据库名.表名 from '用户名'@'主机名';

⭐总结

在这里插入图片描述

🥰如果大家有不明白的地方,或者文章有问题,欢迎大家在评论区讨论,指正🥰

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/647110.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

今天面了个支付宝拿35K出来的测试,真是砂纸擦屁股,给我露了一手啊

今年的春招已经开始了,很多小伙伴收获不错,有的已经拿到了心仪的 offer。 各大论坛和社区里也看见不少小伙伴慷慨地分享了常见的面试题和八股文,为此咱这里也统一做一次大整理和大归类,这也算是划重点了。 俗话说得好&#xff0…

算法之迷宫解法

系列文章目录 文章目录 系列文章目录前言一、迷宫是什么?二、迷宫的生成迷宫的数据结构二维数组图 Prim算法生成地图什么是Prim算法?使用Prim对迷宫生成的实现 三、迷宫的解法深度优先遍历(DFS) 前言 前几天刷抖音刷到一个迷宫解…

鲸落送书第一期清华出版社系列丛书

1.《Rust项目开发实战》 《Rust项目开发实战》详细阐述了与Rust语言开发相关的基本解决方案,主要包括Rust语言简介、存储和检索数据、创建REST Web服务、创建完整的服务器端Web应用程序、利用Yew创建客户端WebAssembly应用程序、利用quicksilver创建WebAssembly游戏…

【Logback技术专题】「入门到精通系列教程」深入探索Logback日志框架的原理分析和开发实战技术指南(上篇)

深入探索Logback日志框架的原理分析和开发实战指南系列 Logback日志框架Logback基本模块logback-corelogback-classiclogback-accessLogback的核心类LoggerAppenderLayoutLayout和Appender filterlogback模块和核心所属关系 Logbackj日志级别日志输出级别日志级别介绍 Logback的…

MM32F3273G8P火龙果开发板MindSDK开发教程19 - littlefs文件系统的移植

MM32F3273G8P火龙果开发板MindSDK开发教程19 - littlefs文件系统的移植 1、littlefs简介 LittleFS 由ARM官方发布,ARM mbedOS的官方推荐文件系统,具有轻量级,掉电安全的特性。主要用在微控制器和flash上,特点如下: 掉…

java中的多线程、同步代码块、同步方法、锁

一、java中实现多线程的三种方式 (1)继承Thread类的方式进行实现; (2)实现Runnable接口的方式进行实现; (3)利用Callable接口和Future接口方式实现。 1.继承Thread类的方式进行实现 …

【性能优化】性能优化

❤️ Author: 老九 ☕️ 个人博客:老九的CSDN博客 🙏 个人名言:不可控之事 乐观面对 😍 系列专栏: 文章目录 性能优化运行效率![在这里插入图片描述](https://img-blog.csdnimg.cn/557680b0ca51484c9c2c6c2…

金升阳|三极管的开关速度如何提高?

​三极管是一种常见的电子器件,广泛应用于电路中。它的开关速度是指从关断到导通或从导通到关断的转换速度。提高三极管的开关速度可以提高电路的响应速度,从而提高系统的性能。本文将介绍一些常见的方法来提高三极管的开关速度。 一、选择合适的三极管 …

华为组播实验pim-dm

组播源配置: R1: [r1]dis current-configuration [V200R003C00] sysname r1 snmp-agent local-engineid 800007DB03000000000000 snmp-agent clock timezone China-Standard-Time minus 08:00:00 portal local-server load flash:/portalpage.zip drop illegal-mac…

2023年软件测试有前途吗?技术变革,测试人的进阶发展路线...

目录:导读 前言一、Python编程入门到精通二、接口自动化项目实战三、Web自动化项目实战四、App自动化项目实战五、一线大厂简历六、测试开发DevOps体系七、常用自动化测试工具八、JMeter性能测试九、总结(尾部小惊喜) 前言 软件测试行业是否…

瑞吉项目优化

Redis缓存菜品 动态构造key。客户端传来的分类id作为key。从redis中获取缓存的数据。根据分类Id,使用redisTemplate.opsForValue().get 方法获取缓存的数据。如果缓存数据存在,直接返回,无需访问数据库。如果不存在,需要查询数据…

Redis从入门到精通【高阶篇】之底层数据结构整数集(IntSet)详解

文章目录 0.前言1.IntSet基本详解1.1 整数集的压缩算法原理1.2 整数集编码方式选择原理1.2.1 判断逻辑1.2.2 举例说明 2. 源码解析2.1. intsetNew2.2. intsetAdd2.3. intsetRemove2.4. intsetFind2.5. intsetUpgradeAndAdd2.6 收获 3.总结4.思考题5. Redis从入门到精通系列文章…

【MySQL 数据库的命令操作】

目录 一、数据库的基本概念二、数据库的发展三、主流的数据库介绍五、关系数据库1、数据库的解释2、数据库的管理3、常用的数据类型4、常见的数据库结构5、SQL语句 四、MySQL 安装方法1、安装Mysql环境依赖包2、创建运行用户3、编译安装4.创建mysql用户5.修改mysql 配置文件6、…

手动将第三方资源加IOC容器中

说明:在SpringBoot中,我们可以通过在各层类上加注解(Mapper、Service等)声明Bean对象,在需要使用时,可直接使用AutoWirted注解自动装配。但如果是使用第三方依赖中的对象,因为源码不能修改&…

04 类图

类图 定义 类图显示了类(及其接口)、类的内部结构以及与其他类的联系,是面向对象分析和设计所得到的最重要的模型。 作用:可视化地表达系统的静态结构模型 类之间的几种关系:泛化(Generalization)、实现(…

多元回归预测 | Matlab海洋捕食者算法(MPA)优化核极限学习机回归预测,MPA-KELM回归预测,多变量输入模型

文章目录 效果一览文章概述部分源码参考资料效果一览 文章概述 多元回归预测 | Matlab海洋捕食者算法(MPA)优化核极限学习机回归预测,MPA-KELM回归预测,多变量输入模型 评价指标包括:MAE、RMSE和R2等,代码质量极高,方便学习和替换数据。要求2018版本及以上。 部分源码 %% …

Jenkins部署及使用

Jenkins 1.定义 1.Jenkins是一款开源CI/CD软件,用于自动化各种任务,包括构建、测试和部署软件 1.CI/CD 1.CI:持续集成(Continuous Integration) 1.协同开发是目前主流的开发方式,一般由多位开发人员同时处理同一个应用的不同模块…

vue07---elementui使用/

elementui使用 cnpm isntall -S element-ui2.9 <template><div><h1>按钮的使用</h1><el-button-group><el-button type"primary" icon"el-icon-edit"></el-button><el-button type"primary" icon&…

《实战AI低代码》生成式AI和低代码开发的融合对组织效率的影响

目录 1. 自动化重复任务: 2. 智能流程优化: 3. 增强公民开发者: 4. 快速原型设计和实验: 5. 智能应用程序维护和更新: 随着科技的不断发展,生成式人工智能(AI)和低代码软件的融合已经成为了一个热门话题。这两种技术的结合可以加速创新并改变组织运作的方式。在本…

性能测试-平均事务响应时间ART分析解析,要卷就卷成最强的...

目录&#xff1a;导读 前言一、Python编程入门到精通二、接口自动化项目实战三、Web自动化项目实战四、App自动化项目实战五、一线大厂简历六、测试开发DevOps体系七、常用自动化测试工具八、JMeter性能测试九、总结&#xff08;尾部小惊喜&#xff09; 前言 业务背景&#xf…