当前位置: 首页 > news >正文

关于MySQL数据库的学习3

目录

前言:

1.DQL(数据查询语言):

1..1基本查询:

1.2条件查询:

1.3排序查询:

1.3.1使用ORDER BY子句对查询结果进行排序。

1.3.2可以按一个或多个列进行排序,并指定排序方向(升序ASC或降序DESC)

1.4聚合查询:

1.5分组查询:

 1.6分页查询:

1.7连接查询:

2..DML(数据操纵语言DML):

2.1 增加数据(INSERT)

2.2. 修改数据(UPDATE):

2.3. 删除数据(DELETE)

3. DCL(数据控制语言,Data Control Language):

3.1用户管理:

3.1.1查询用户:

3.1.2创建用户:

3.1.3修改用户密码:

3.1.4删除用户:

3.2权限管理:

3.2.1赋予权限:

3.2.2撤销权限:

4.sql约束

4.1NOT NULL:

4.2UNIQUE:

此约束确保某列中的每行都有唯一的值。

4.3PRIMARY KEY:

4.4FOREIGN KEY:

4.5CHECK:

4.5DEFAULT:

结语:


前言:

我们已经学习了关于MySQL数据库的的DDL,今天我们将要继续去学习关于DQL的知识点了,关于这个知识我先解释一下关于这两者的区别:DQL专注于查询和检索数据库中的数据,而DDL则负责定义和更改数据库的结构和对象。其实以上都是个人关于学习的意点个人的见解,难免会有些遗漏欢迎大家的指正也欢迎大家在评论区和谐讨论。

1.DQL(数据查询语言):

在DQL(数据查询语言)中,主要关注的是如何从数据库中检索和操作数据。DQL是SQL(结构化查询语言)的一个子集,专注于数据查询方面。

1..1基本查询

1.1.1使用SELECT语句从数据库表中检索数据。

select * from 表名;

或者查询表中部分字段数据:

1.1.2可以指定要检索的列(字段)和要从中检索数据的表。

select (选择)字段1, 字段2 from 表名;

1.1.2可以使用*通配符来选择所有列。

1.2条件查询

1.1.1使用WHERE子句来指定筛选条件,只返回满足条件的行。

1.1.2可以使用比较运算符(如=<>><>=<=)和逻辑运算符(如ANDORNOT)来构建复杂的条件。

>,<,>=,<=,=,<>,!=

大于,小于,大于等于,小于等于,不等于,不等于

between...and...

显示在某一个区间的值(头尾都包含)

in(set)

显示在集合内的值,

例如:in(10,20, 30)

like ‘字符’

%代表零个或任意多个字符

_代表一个字符

like ‘_好%’

is null/is not null

判断为空/不为空

and,or,not

逻辑运算符

1.3排序查询

1.3.1使用ORDER BY子句对查询结果进行排序。

通过order by,将查询出来的结果进行排序,放在select语句的最后

1.3.2可以按一个或多个列进行排序,并指定排序方向(升序ASC或降序DESC

select * from 表名 order by 排序字段 asc/desc

默认是升序(asc)

1.4聚合查询

1.4.1使用聚合函数(如SUM()AVG()COUNT()MAX()MIN()等)对一组值进行计算并返回单个值。

1.4.2通常与GROUP BY子句一起使用,将数据分组后进行聚合计算。

这是几个常见的聚合查询:

1.count:统计指定列不为null的记录行数,

2.sum:计算指定列的和,如果指定列的类型不是数字类型,那么结果是0

3.max:计算指定列的最大值,如果指定列是字符串类型,那么使用字符串排序运算

4.min:计算指定列的最小值,如果指定列是字符串类型,那么使用字符串排序运算

5.avg:计算指定列的平均值,如果指定列的类型不是数字类型,那么结果是0

1.5分组查询

1.5.1使用GROUP BY子句将表中的行分组,基于一个或多个列的值。

通过group by对查询的信息进行分组,分组之后(而where是在分组之前的查询信息)只能查询分组的字段和聚合查询

select 字段 from 表名 group by 分组字段 having 条件;

having和where的区别:having是在分组后对数据进行过滤,where是在分组前对数据进行过滤;

having后面可以使用聚合函数(在Python中,聚合函数是指可以对一组值执行计算,并返回单个值的函数。Python中的聚合函数主要包括sum()、max()、min()、mean()(平均值)、count()等。这些函数通常用于对数据列表、元组或集合进行操作,以获得关于这些数据的统计信息。)过滤数据,where不可以,

分组就是将一样的数据放到一样的表格里面进行查询

1.5.2分组后,可以使用聚合函数对每个组进行计算。

1.5.3可以使用HAVING子句对分组后的结果进行过滤,类似于WHERE子句但用于分组后的数据。

 1.6分页查询

1.6.1用于限制查询结果返回的行数,通常用于分页显示数据。

1.6.2不同的数据库系统有不同的分页查询语法。例如,在MySQL中使用LIMITOFFSET关键字,而在SQL Server中使用OFFSETFETCH子句。

select 字段 from 表名 limit m, n

m:表示第几条索引开始

n:表示查询多少条数据

1.7连接查询

使用JOIN语句将多个表中的数据组合在一起,基于它们之间的相关列进行匹配。

存在多种类型的连接,如内连接(INNER JOIN)、左外连接(LEFT JOIN)、右外连接(RIGHT JOIN)和全外连接(FULL JOIN)等。

1.8子查询

子查询可以在SELECTFROM, 或 WHERE子句中使用。

一个查询可以嵌套在另一个查询中,作为外部查询的条件、数据源或用于计算的值等。

1.9别名使用

使用AS关键字为列或表指定别名,使查询结果更易读或简化查询语句的编写。在某些情况下,AS关键字可以省略。

1.10去除重复数据

使用DISTINCT关键字去除查询结果中的重复行。

去掉重复的数据:distinct

2..DML(数据操纵语言DML):

DML(数据操纵语言,Data Manipulation Language)是SQL(结构化查询语言,Structured Query Language)的一个子集,主要用于对数据库中的数据进行增删改查等操作。DML的主要语句包括INSERT、UPDATE、DELETE和SELECT。不过,SELECT通常也被归类为DQL(数据查询语言,Data Query Language),因为它主要用于查询数据,而不直接修改数据。

2.1 增加数据(INSERT)

向表中所有字段插入数据:

INSERT INTO 表名 VALUES (值1, 值2, 值3, ...);

向表中指定字段插入数据:

INSERT INTO 表名 (字段1, 字段2, 字段3, ...) VALUES (值1, 值2, 值3, ...);

2.2. 修改数据(UPDATE):

更新表中的数据:

UPDATE 表名 SET 字段1 = 值1, 字段2 = 值2, ... WHERE 条件;

2.3. 删除数据(DELETE)

从表中删除数据:

DELETE FROM 表名 WHERE 条件;

3. DCL(数据控制语言,Data Control Language):

3.1用户管理

3.1.1查询用户

例如,在MySQL中,可以使用SELECT * FROM user;命令来查询所有用户信息(通常需要在mysql数据库下执行此命令)。

3.1.2创建用户

使用CREATE USER命令来创建新的数据库用户。例如,CREATE USER '用户名'@'主机名' IDENTIFIED BY '密码';可以创建一个新的用户,并指定其从哪个主机访问以及使用什么密码。

3.1.3修改用户密码

使用ALTER USER命令来修改用户的密码。例如,ALTER USER '用户名'@'主机名' IDENTIFIED WITH mysql_native_password BY '新密码';

3.1.4删除用户

使用DROP USER命令来删除一个数据库用户。例如,DROP USER '用户名'@'主机名';

3.2权限管理

3.2.1赋予权限

通过GRANT命令赋予用户特定的数据库权限。这些权限可以针对整个数据库、特定的表或特定的列,并可以包括如SELECT、INSERT、UPDATE、DELETE等操作。

3.2.2撤销权限

使用REVOKE命令来撤销之前赋予用户的数据库权限。

4.sql约束

4.1NOT NULL

此约束确保某列不能有NULL值。

4.2UNIQUE

此约束确保某列中的每行都有唯一的值。

4.3PRIMARY KEY

此约束是NOT NULL和UNIQUE的结合。它确保某列(或两个列或多个列的组合)有唯一标识,有助于更容易、更快速地找到表中的一个特定的记录。

4.4FOREIGN KEY

此约束用于保证一个表中的数据匹配另一个表中的值。这是为了保持数据的参照完整性。外键字段里的所有数据都必须是另一张表的主键字段里的值。

4.5CHECK

此约束确保列中的所有值都满足某一条件。例如,可以确保某列的值都大于0。

4.5DEFAULT

此约束为没有给列赋值的行提供默认值。

结语:

今天我们就先分享到这里了,今天已经介绍完了MySQL数据库的几个语言.关于后面我们就会分享一点关于web前端的内容,如果我的文章存在任何问题欢迎大家指正。

相关文章:

关于MySQL数据库的学习3

目录 前言: 1.DQL&#xff08;数据查询语言): 1..1基本查询&#xff1a; 1.2条件查询&#xff1a; 1.3排序查询&#xff1a; 1.3.1使用ORDER BY子句对查询结果进行排序。 1.3.2可以按一个或多个列进行排序&#xff0c;并指定排序方向&#xff08;升序ASC或降序DESC&#…...

笔试题——得物春招实习

开幕式排练 题目描述 导演在组织进行大运会开幕式的排练&#xff0c;其中一个环节是需要参演人员围成一个环形。演出人员站成了一圈&#xff0c;出于美观度的考虑&#xff0c;导演不希望某一个演员身边的其他人比他低太多或者高太多。 现在给出n个参演人员的身高&#xff0c;问…...

动手做简易版俄罗斯方块

导读&#xff1a;让我们了解如何处理形状的旋转、行的消除以及游戏结束条件等控制因素。 目录 准备工作 游戏设计概述 构建游戏窗口 游戏方块设计 游戏板面设计 游戏控制与逻辑 行消除和计分 判断游戏结束 界面美化和增强体验 看看游戏效果 准备工作 在开始编码之前…...

【极简无废话】open3d可视化torch、numpy点云

建议直接看文档&#xff0c;很多都代码老了&#xff0c;注意把代码版本调整到你使用的open3d的版本&#xff1a; https://www.open3d.org/docs/release/tutorial/visualization/visualization.html 请注意open3d应该已经不支持centos了&#xff01; 从其他格式转换成open3d…...

C语言经典算法-6

文章目录 其他经典例题跳转链接31.数字拆解32.得分排行33.选择、插入、气泡排序34.Shell 排序法 - 改良的插入排序35.Shaker 排序法 - 改良的气泡排序 其他经典例题跳转链接 C语言经典算法-1 1.汉若塔 2. 费式数列 3. 巴斯卡三角形 4. 三色棋 5. 老鼠走迷官&#xff08;一&…...

【计算机考研】杭电 vs 浙工大 怎么选?

想求稳上岸的话&#xff0c;其他几所学校也可以考虑&#xff0c;以留在本地工作的角度考虑&#xff0c;这几所学校都能满足你的需求。 如果之后想谋求一份好工作&#xff0c;肯定优先杭电是比较稳的&#xff0c;当然复习的时候也得加把劲。 这个也可以酌情考虑&#xff0c;报…...

激活函数

优秀的激活函数&#xff1a; 非线性&#xff1a;激活函数非线性时&#xff0c;多层神经网络可逼近所有函数 可微性&#xff1a;梯度下降更新参数 单调性&#xff1a;当激活函数是单调的&#xff0c;能保证单层网络的损失函数是凸函数 近似恒等性&#xff1a;当参数初始化为…...

使用Jackson进行 JSON 序列化和反序列化

在Spring应用程序中&#xff0c;您可以通过Maven添加Jackson依赖&#xff0c;并创建一个工具类来封装对象的序列化和反序列化方法。以下是详细步骤&#xff1a; 1. 引入 Jackson 依赖 如果使用 Maven&#xff0c;您可以在 pom.xml 文件中添加以下依赖&#xff1a; <depend…...

Linux/Uinx 系统编程:定时器以及时钟同步

本章讨论了定时器和定时器服务;介绍了硬件定时器的原理和基于Intel x86 的PC中的硬件定时器;讲解了CPU操作和中断处理;描述了Linux中与定时器相关的系统调用、库函数和定时器服务命令;探讨了进程间隔定时器、定时器生成的信号&#xff0c;并通过示例演示了进程间隔定时器。编程…...

(Ubuntu中调用相机花屏)Astra plus深度相机--rgb彩色图像花屏解决方法之一

在调试深度相机的过程中只能能调出深度图像和红外图像 在rviz的image的topic中选择彩色图像的话题不显示图像 1、查看相机的usb序列号 lsusb如上图所示&#xff0c;此相机的USB序列号是2bc5:050f,2bc5:060f 其中050f是显示彩色图像的 在这里可通过拔插相机来确定序列号是哪几…...

iPaaS平台能帮助企业解决什么问题?

随着数字化转型的推进&#xff0c;越来越多的企业开始关注如何提高业务效率和灵活性。iPaaS作为一种新型集成平台&#xff0c;它能够帮助企业解决许多与应用程序和数据集成相关的问题。 它能给企业解决什么问题&#xff1f; 以下是 iPaaS 平台通常能够帮助企业解决的一些问题…...

数学建模(灰色关联度 python代码 案例)

目录 介绍&#xff1a; 模板&#xff1a; 案例&#xff1a;哪些原因影响结婚率 数据标准化&#xff1a; 灰色关联度系数&#xff1a; 完整代码&#xff1a; 结果&#xff1a; 介绍&#xff1a; 灰色关联度是一种多指标综合评价方法&#xff0c;用于分析和评价不同指标之…...

【DP】第十四届蓝桥杯省赛C++ B组《接龙数列》(C++)

【题目描述】 对于一个长度为 K 的整数数列&#xff1a;A1,A2,...,AK&#xff0c;我们称之为接龙数列当且仅当 的首位数字恰好等于 的末位数字 (2≤i≤K)。 例如 12,23,35,56,61,11 是接龙数列&#xff1b;12,23,34,56 不是接龙数列&#xff0c;因为 56 的首位数字不等于 3…...

文件包含漏洞(input、filter、zip)

一、PHP://INPUT php://input可以访问请求的原始数据的只读流&#xff0c;将post请求的数据当作php代码执行。当传入的参数作为文件名打开时&#xff0c;可以将参数设为php://input,同时post想设置的文件内容&#xff0c;php执行时会将post内容当作文件内容。从而导致任意代码…...

使用iconv解决Linux/Ubuntu/Debian中gb2312中文文档乱码问题

你可以使用 iconv 命令行工具将文件中的文本从 GB2312 转换为 UTF-8。 你可以这样做&#xff1a; iconv -f GB2312 -t UTF-8 input.txt > output.txt将 input.txt 替换为以 GB2312 编码的输入文件的名称&#xff0c;将 output.txt 替换为你想要的 UTF-8 格式转换文件的名称。…...

图论中的最小生成树:Kruskal与Prim算法深入解析

&#x1f3ac;慕斯主页&#xff1a;修仙—别有洞天 ♈️今日夜电波&#xff1a;アンビバレント—Uru 0:24━━━━━━️&#x1f49f;──────── 4:02 &#x1f504; ◀️ ⏸ ▶️ ☰ …...

uniapp 之 实现商品详情的锚点跳转(类似京东商品详情-点击顶部按钮跳转的对应的页面的内容区域)

类似京东商品详情-点击顶部详情跳转到页面对应的详情区域&#xff0c;点击评价跳转到页面对应的评价区域等。 照例&#xff0c;先封装方法&#xff1a; 封装方法 util.js /*** 锚点跳转&#xff08;如&#xff1a;商品详情页面跳转&#xff09;* param {string} targetId 目…...

PPT好看配色

放几个链接&#xff01;画图时候可以参考&#xff01;转自知乎 Color Hunt ColorDrop 中国色 Flat UI Colors Coolors...

微信小程序执行环境(微信端)与浏览器环境有何不同

微信小程序执行环境与浏览器环境有很多不同之处&#xff0c;以下是一些例子&#xff1a; 全局对象&#xff1a; 浏览器环境中的 JavaScript 有一个全局对象 window&#xff0c;而微信小程序中的 JavaScript 没有 window 对象&#xff0c;取而代之的是 wx 对象&#xff0c;wx …...

Java小项目--满汉楼

Java小项目–满汉楼 项目需求 项目实现 1.实现对工具包的编写 先创建libs包完成对jar包的拷贝和添加入库 德鲁伊工具包 package com.wantian.mhl.utils;import com.alibaba.druid.pool.DruidDataSourceFactory;import javax.sql.DataSource; import java.io.FileInputStream…...

【入坑系列】TiDB 强制索引在不同库下不生效问题

文章目录 背景SQL 优化情况线上SQL运行情况分析怀疑1:执行计划绑定问题?尝试:SHOW WARNINGS 查看警告探索 TiDB 的 USE_INDEX 写法Hint 不生效问题排查解决参考背景 项目中使用 TiDB 数据库,并对 SQL 进行优化了,添加了强制索引。 UAT 环境已经生效,但 PROD 环境强制索…...

Springcloud:Eureka 高可用集群搭建实战(服务注册与发现的底层原理与避坑指南)

引言&#xff1a;为什么 Eureka 依然是存量系统的核心&#xff1f; 尽管 Nacos 等新注册中心崛起&#xff0c;但金融、电力等保守行业仍有大量系统运行在 Eureka 上。理解其高可用设计与自我保护机制&#xff0c;是保障分布式系统稳定的必修课。本文将手把手带你搭建生产级 Eur…...

C++ Visual Studio 2017厂商给的源码没有.sln文件 易兆微芯片下载工具加开机动画下载。

1.先用Visual Studio 2017打开Yichip YC31xx loader.vcxproj&#xff0c;再用Visual Studio 2022打开。再保侟就有.sln文件了。 易兆微芯片下载工具加开机动画下载 ExtraDownloadFile1Info.\logo.bin|0|0|10D2000|0 MFC应用兼容CMD 在BOOL CYichipYC31xxloaderDlg::OnIni…...

mac 安装homebrew (nvm 及git)

mac 安装nvm 及git 万恶之源 mac 安装这些东西离不开Xcode。及homebrew 一、先说安装git步骤 通用&#xff1a; 方法一&#xff1a;使用 Homebrew 安装 Git&#xff08;推荐&#xff09; 步骤如下&#xff1a;打开终端&#xff08;Terminal.app&#xff09; 1.安装 Homebrew…...

uniapp 实现腾讯云IM群文件上传下载功能

UniApp 集成腾讯云IM实现群文件上传下载功能全攻略 一、功能背景与技术选型 在团队协作场景中&#xff0c;群文件共享是核心需求之一。本文将介绍如何基于腾讯云IMCOS&#xff0c;在uniapp中实现&#xff1a; 群内文件上传/下载文件元数据管理下载进度追踪跨平台文件预览 二…...

es6+和css3新增的特性有哪些

一&#xff1a;ECMAScript 新特性&#xff08;ES6&#xff09; ES6 (2015) - 革命性更新 1&#xff0c;记住的方法&#xff0c;从一个方法里面用到了哪些技术 1&#xff0c;let /const块级作用域声明2&#xff0c;**默认参数**&#xff1a;函数参数可以设置默认值。3&#x…...

CppCon 2015 学习:Time Programming Fundamentals

Civil Time 公历时间 特点&#xff1a; 共 6 个字段&#xff1a; Year&#xff08;年&#xff09;Month&#xff08;月&#xff09;Day&#xff08;日&#xff09;Hour&#xff08;小时&#xff09;Minute&#xff08;分钟&#xff09;Second&#xff08;秒&#xff09; 表示…...

网页端 js 读取发票里的二维码信息(图片和PDF格式)

起因 为了实现在报销流程中&#xff0c;发票不能重用的限制&#xff0c;发票上传后&#xff0c;希望能读出发票号&#xff0c;并记录发票号已用&#xff0c;下次不再可用于报销。 基于上面的需求&#xff0c;研究了OCR 的方式和读PDF的方式&#xff0c;实际是可行的&#xff…...

OCC笔记:TDF_Label中有多个相同类型属性

注&#xff1a;OCCT版本&#xff1a;7.9.1 TDF_Label中有多个相同类型的属性的方案 OCAF imposes the restriction that only one attribute type may be allocated to one label. It is necessary to take into account the design of the application data tree. For exampl…...

设计模式域——软件设计模式全集

摘要 软件设计模式是软件工程领域中经过验证的、可复用的解决方案&#xff0c;旨在解决常见的软件设计问题。它们是软件开发经验的总结&#xff0c;能够帮助开发人员在设计阶段快速找到合适的解决方案&#xff0c;提高代码的可维护性、可扩展性和可复用性。设计模式主要分为三…...