关于MySQL数据库的学习3

news2025/1/11 4:00:02

目录

前言:

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前端的内容,如果我的文章存在任何问题欢迎大家指正。

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

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

相关文章

C语言 02 安装

C 语言的编译器有很多&#xff0c;其中最常用的是 GCC&#xff0c;这里以安装 GCC 为例。 Windows 这里以 Windows 11 为例 官方下载地址&#xff1a;https://www.mingw-w64.org/ 选择 Downloads 选择 Windows 的 GCC 环境 MingW-W64-builds 选择 GitHub 根据操作系统位…

IP复习实验(gre)

拓扑图(r6相当于公网设备) 要求r1,r2,r3之间是hub-spoke架构 。r1,r4,r5是全连接&#xff0c;最后做OSPF跑通 第一步把所以接口配置了 第二步配置缺省0.0.0.0 0 n6.1.1.6 &#xff08;n就是具体的路由器r1 n就是1&#xff09; 测试一下先保证公网通畅 就先配置hub架构的 hu…

arp动态表缓存清除

一、arp表里清除表状态&#xff1a; 1&#xff0c;Delay&#xff1a;请求arp 2&#xff0c;Reachab&#xff1a;响应arp 3&#xff0c;Stale此状态下&#xff0c;待gc_stale_time超时后&#xff0c;准备gc_interval定期清理 二、限制条件 base_reachable_time&#xff1a;后变…

使用gitee自动备份文件

需求 舍友磁盘前两天gg了&#xff0c;里面的论文没有本地备份&#xff0c;最后费劲巴拉的在坚果云上找到了很早前的版本。我说可以上传到github&#xff0c;建一个私人仓库就行了&#xff0c;安全性应该有保证&#xff0c;毕竟不是啥学术大亨&#xff0c;不会有人偷你论文。但是…

C到C++的敲门砖-1

文章目录 关键字命名空间输入和输出缺省参数函数重载 关键字 相较于C语言32个关键字&#xff1a; autodoubleintstructbreakelselongswitchcaseenumregistertypedefcharexternreturnunionconstfloatshortunsignedcontinueforsignedvoiddefaultgotosizeofvolatiledoifwhilesta…

配置阿里云加速器

国内镜像中心常用阿里云或者网易云。在本地docker中指定要使用国内加速器的地址后&#xff0c;就可以直接从阿里云镜像中心下载镜像。 2024阿里云-上云采购季-阿里云 [rootlocalhost /]# mkdir -p /etc/docker [rootlocalhost /]# tee /etc/docker/daemon.json <<-EOF &…

ThreadLocal-阿里规范对ThreadLocal要求

package com.nanjing.gulimall.zhouyimo.test;import java.util.concurrent.ExecutorService; import java.util.concurrent.Executors;/*** @author zhou* @version 1.0* @date 2024/3/17 11:05 下午*/ class MyData{ThreadLocal<Integer> threadLocal = ThreadLocal.wi…

C语言 求方程ax^2+bx+c=0的根

一、求方程ax^2bxc0的根&#xff0c;用三个函数分别求当&#xff1a;b^2-4ac大于0&#xff0c;等于0&#xff0c;和小于0时的根并输出结果。从主函数输入a&#xff0c;b&#xff0c;c的值。 #include <stdio.h> #include<math.h> float x,x1,x2,disc; int main() …

ChatGPT编程实现简易聊天工具

ChatGPT编程实现简易聊天工具 今天借助[[小蜜蜂]][https://zglg.work]网站的ChatGPT练习socket编程&#xff0c;实现一个简易聊天工具软件。 环境&#xff1a;Pycharm 2021 系统&#xff1a;Mac OS 向ChatGPT输入如下内容&#xff1a; ChatGPT收到后&#xff0c;根据返回结…

【CSP试题回顾】201509-1-数列分段

CSP-201509-1-数列分段 解题代码 #include <iostream> #include <vector> #include <algorithm> using namespace std;int n;int main() { cin >> n;vector<int>arr(n);for(auto & it:arr) {cin >> it;}auto last unique(arr.be…

DevOps 环境预测测试中的机器学习

在当今快节奏的技术世界中&#xff0c;DevOps 已成为软件开发不可或缺的一部分。它强调协作、自动化、持续集成&#xff08;CI&#xff09;和持续交付&#xff08;CD&#xff09;&#xff0c;以提高软件部署的速度和质量。预测测试是这一领域的关键组成部分&#xff0c;其中机器…

生成式AI竞赛:开源还是闭源,谁将主宰未来?

每周跟踪AI热点新闻动向和震撼发展 想要探索生成式人工智能的前沿进展吗&#xff1f;订阅我们的简报&#xff0c;深入解析最新的技术突破、实际应用案例和未来的趋势。与全球数同行一同&#xff0c;从行业内部的深度分析和实用指南中受益。不要错过这个机会&#xff0c;成为AI领…

2024抖音矩阵云混剪系统源码 短视频矩阵营销系统

2024抖音矩阵云混剪系统源码 短视频矩阵营销系统 矩阵营销系统多平台多账号一站式管理&#xff0c;一键发布作品。智能标题&#xff0c;关键词优化&#xff0c;排名查询&#xff0c;混剪生成原创视频&#xff0c;账号分组&#xff0c;意向客户自动采集&#xff0c;智能回复&am…

Python基础(七)之数值类型集合

Python基础&#xff08;七&#xff09;之数值类型集合 1、简介 集合&#xff0c;英文set。 集合&#xff08;set&#xff09;是由一个或多个元素组成&#xff0c;是一个无序且不可重复的序列。 集合&#xff08;set&#xff09;只存储不可变的数据类型&#xff0c;如Number、…

uwsgi+nginx+django 部署学习

收集静态文件及部署配置 DEBUG False STATICFILES_DIRS [os.path.join(BASE_DIR, "static"), ] STATIC_ROOT /data/static python3 manage.py collectstatic 收集静态文件&#xff0c;成功后可在STATIC_ROOT目录查看 安装依赖 pip3 install uwsgi django项目结…

docker基础用法-2

文章目录 什么是dockerOCI&OCFOCIOCF docker架构docker镜像与镜像仓库docker对象安装及使用dockerdocker安装docker加速docker常用操作docker event state防火墙状态及规则 什么是docker docker中的容器&#xff1a; lxc --> libcontainer --> runC docker最开始是…

嵌入式学习之Linux系统编程篇笔记——系统编程初探

配套视频学习链接&#xff1a;https://www.bilibili.com/video/BV1zV411e7Cy?p2&vd_sourced488bc722b90657aaa06a1e8647eddfc 目录 Linux系统编程的基本认识 什么是Linux系统编程? 什么是系统编程 系统编程的作用 怎么学习Linux系统编程? Linux系统编程基本程序框…

数据可视化学习:Matplotlib概述

一、图表的常用设置 1.基本绘图主要函数 (1).matplotlib.pyplot.plot(x,y,format_string,**kwargs) 2.参数说明 (1).x:x轴数据 (2).y:y轴数据 (3).format_string:控制曲线格式的字符串&#xff0c;包括颜色、线条样式和标记样式 (4)**kwargs:键值参数&#xff0c;相当于…

IDEA : 已经有一个永久破解版的IDEA2019版本,现在又想安装最新版本的,俩版本共存,发现新版本打不开的解决方案

在新文件的目录下&#xff0c;注释掉一行19版本的地址 地址&#xff1a;C:\Users\23999\AppData\Roaming\JetBrains\IntelliJIdea2023.2 (不同电脑Users后边的一个地址的注释会不一样) 然后找到该目录下的indea64.exe.vmoptions 用 记事本 打开 在-javaagent 那一栏里会自动给…

如何学习一个大型分布式Java项目

前言 很多同学在没有实习经验的时候看到一个多模块分布式项目总是有一种老虎吃天的无力感&#xff0c;就像我刚毕业去到公司接触项目的时候一样&#xff0c;模块多的夸张&#xff0c;想学都不知道从哪开始学&#xff0c;那么我们拿到一份代码后如何从头开始学习一个新项目呢。…