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

SQL(基础)

DDL: 数据定义语言 Definition,用来定义数据库对象(数据库、表、字段)CREATE、DROP、ALTER

DML: 数据操作语言 Manipulation,用来对数据库表中的数据进行增删改 INSERT、UPDATE、DELETE

注意:
DDL是改变表的结构
DML是改变表的数据

DQL: 数据查询语言 Query,用来查询数据库中表的记录 SELECT、FROM、WHERE

DCL: 数据控制语言 Control,用来创建数据库用户、控制数据库的控制权限 GRANT、REVOKE

注意:
DQL就是查询数据
DCL改变用户权限


数据库基本操作

1、查询所有数据库
show databases;

2、查询当前数据库
select database();

3、使用数据库
use 数据库名;

4、查询当前数据库所有表
show tables;

5、查询表的结构
desc 表名;

UTF8字符集长度为3字节,有些符号占4字节,所以推荐用utf8mb4字符集


DDL

1、创建数据库
create database 数据库名;
2、删除数据库
drop database 数据库名;

3、创建表(最后一个字段后面没有逗号)
create table 表名(
字段1 字段1类型,
字段2 字段2类型,
字段3 字段3类型,

字段n 字段n类型
);

4、查询指定表的建表语句
show create table 表名;

5、alter的使用:

添加字段:alter table 表名 add 字段名 类型;

修改数据类型:alter table 表名 modify 字段名 新的数据类型;

修改字段名和字段类型
alter table 表名 change 原来字段名字 新的字段名字 字段类型;

删除字段:alter table 表名 drop 字段名;

修改表名:alter table 表名 rename to 新的表名;

6、删除操作

删除表:drop table 表名;
删除表并且重新创建该表:truncate table 表名;

请添加图片描述


数据类型

1、数值类型

有符号(signed)
无符号(unsigned)

区别: 是否允许出现负数

2、字符串类型

3、日期时间类型


DML

添加数据:insert
修改数据:update
删除数据:delete

添加数据
1、指定的字段
insert into 表名 (字段名1,字段名2,…) values(值1,值2,…);

2、全部的字段
insert into 表名 values(值1,值2,…);

批量的添加数据
insert into 表名 (字段名1,字段名2,…) values(值1,值2,…),(值1,值2,…),(值1,值2,…);
或者
insert into 表名 values(值1,值2,…),(值1,值2,…),(值1,值2,…);

注意
1、字符串和日期类型的数据应该包含在引号里面
2、插入的数据大小应该在字段的规定范围内

更新操作

修改数据

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

注意:
修改语句的条件如果没有那么就会去修改整张表的所有数据 update

删除操作

删除数据
delete from 表名 [where 条件];

注意
删除语句的条件如果没有那么就会去删除整张表的所有数据 delete

delete语句是不可以去删除某一个字段的值的
可以使用update将其设置为null
请添加图片描述


DQL

模板:

SELECT字段列表
FROM表名字段
WHERE条件列表
GROUP BY分组字段列表
HAVING分组后的条件列表
ORDER BY排序字段列表
LIMIT分页参数

1基础查询
1、查询多个字段

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

2、设置别名
select 字段 as 别名 from 表名;
或者
select 字段 别名 from 表名;

3、去除重复记录
select distinct 字段 from 表名;

2条件查询

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

请添加图片描述

3聚合函数

将一数据作为一个整体来进行纵向的计算

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

请添加图片描述
注意:
null值是不参与聚合函数的运算的

4分组查询

注意
where和having的区别:
1、where是分组之前进行过滤,不满足where条件不参与分组,having是分组后对结果进行过滤。
2、where不能对聚合函数进行判断,而having可以。

执行顺序
where > 聚合函数 > having

分组之后,查询的字段一般为聚合函数和分组字段,查询其他字段无任何意义

5排序查询

asc 是 升序排序
desc 是 降序排序

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

6分页查询

limit 起始索引,查询记录数;

注意

1、起始索引从0开始,起始索引 = (查询页码 - 1) * 每页显示记录数

2、如果查询的是第一页数据,起始索引可以省略

DQL语句的执行顺序

执行顺序:from、where、group by、having、select、order by、limit

请添加图片描述

注意

根据sql的执行顺序可知:group by 和 having 是在select的前面的,那么select 里面起的别名怎么还可以在having里面使用呢?

--年龄小于45,并根据工作地址分组,获取员工数量大于等于3的工作地址select workaddress, count(*) address_count from employee where age < 45 group by workaddress having address_count >= 3;

DCL

用来 管理数据库用户 以及 控制数据库的访问权限

管理用户

1、查询用户

user mysql;
select * from user;

2、创建用户

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

3、修改用户密码

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

4、删除用户

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

注意

创建用户test,能在任意主机访问

create user ‘test’@‘%’ identified by ‘123456’;

也就是说:主机名可以使用 % 通配

权限控制
1、查询权限

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

2、授予权限

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

3、撤销权限
revoke 权限列表(all) on 数据库名.表名 from ‘用户名’@‘主机名’;

注意
1、多个权限用逗号分隔
2、授权时,数据库名和表名可以用 * 进行通配,代表所有
请添加图片描述
请添加图片描述

相关文章:

SQL(基础)

DDL: 数据定义语言 Definition&#xff0c;用来定义数据库对象&#xff08;数据库、表、字段&#xff09;CREATE、DROP、ALTER DML: 数据操作语言 Manipulation&#xff0c;用来对数据库表中的数据进行增删改 INSERT、UPDATE、DELETE 注意&#xff1a; DDL是改变表的结构 DML…...

「OceanBase 4.1 体验」OceanBase 4.1社区版的部署及使用体验

「OceanBase 4.1 体验」OceanBase 4.1社区版的部署及使用体验 一、前言1.1 本次实践介绍1.2 本次实践目的 二、准备环境资源2.1 部署前需准备工作2.2 本地环境规划 三、部署Docker环境3.1 安装Docker3.2 配置Docker镜像加速3.3 开启路由转发3.4 重启Docker服务 四、检查本地Doc…...

计算机操作系统实验:银行家算法模拟

目录 前言实验目的实验内容实验原理实验过程代码如下代码详解算法过程运行结果 总结 前言 本文是计算机操作系统实验的一部分&#xff0c;主要介绍了银行家算法的原理和实现。银行家算法是一种用于解决多个进程对多种资源的竞争和分配的算法&#xff0c;它可以避免死锁和资源浪…...

机器学习:多项式拟合分析中国温度变化与温室气体排放量的时序数据

文章目录 1、前言2、定义及公式3、案例代码1、数据解析2、绘制散点图3、多项式回归、拟合4、注意事项 1、前言 ​ 当分析数据时&#xff0c;如果我们找的不是直线或者超平面&#xff0c;而是一条曲线&#xff0c;那么就可以用多项式回归来分析和预测。 2、定义及公式 ​ 多项…...

一个 24 通道 100Msps 逻辑分析仪

这是一个创建非常便宜的逻辑分析仪的项目&#xff0c;但其功能可与昂贵的商业分析仪相媲美。该分析仪可以以每秒 1 亿个样本的最高速度对多达 24 个通道进行采样&#xff0c;并且可以通过单个通道中的极性变化或多达 16 个通道形成的模式来触发。 该项目不仅包含硬件&#xff0…...

使用Process Explorer和Dependency Walker排查C++程序中dll库动态加载失败问题

目录 1、exe主程序启动时的库加载流程说明 2、加载dll库两种方式 2.1、dll库的隐式引用...

网工Python:如何使用Netmiko的SCP函数进行文件传输?

在网络设备管理中&#xff0c;传输配置文件、镜像文件等是经常需要进行的操作。Netmiko是一个Python库&#xff0c;可用于与各种网络设备进行交互&#xff0c;提供了一些用于传输文件的函数&#xff0c;其中包括SCP&#xff08;Secure Copy Protocol&#xff09;函数。本文将介…...

题目 3166: 蓝桥杯2023年第十四届省赛真题-阶乘的和--不能完全通过,最好情况通过67.

原题链接&#xff1a; 题目 3166: 蓝桥杯2023年第十四届省赛真题-阶乘的和 https://www.dotcpp.com/oj/problem3166.html 致歉 害&#xff0c;首先深感抱歉&#xff0c;这道题还是没有找到很好的解决办法。目前最好情况就是67分。 这道题先这样跳过吧&#xff0c;当然以后还…...

ChatGPT- OpenAI 的 模型(Model) 介绍

ChatGPT的火爆程度大家都知道了&#xff0c;该章节我们来了解一下 ChatGPT 一个关键概念 - 模型(Model)。主要是为大家介绍一下在 OpenAI 中&#xff0c;究竟有哪些模型可以使用。 在后续的章节&#xff0c;我们会分单独的小章节逐一的为大家介绍各个不同模型的调用以及接口参…...

X 态及基于 VCS 的 X-Propagation 检测

&#x1f525;点击查看精选 IC 技能树系列文章&#x1f525; &#x1f525;点击进入【芯片设计验证】社区&#xff0c;查看更多精彩内容&#x1f525; &#x1f4e2; 声明&#xff1a; &#x1f96d; 作者主页&#xff1a;【MangoPapa的CSDN主页】。⚠️ 本文首发于CSDN&#…...

数据库之事务隔离级别详解

事务隔离级别详解 一、事务的四大特性&#xff08;ACID&#xff09;1. 原子性(atomicity)&#xff1a;2. 一致性(consistency)&#xff1a;3. 隔离性(isolation)&#xff1a;4. 持久性(durability)&#xff1a; 二、事务的四种隔离级别1. 读未提交(Read uncommitted)&#xff1…...

守护进程、僵尸进程、孤儿进程

守护进程、僵尸进程、孤儿进程 守护进程&#xff08;Daemon Process&#xff09; 定义 守护进程又称Daemon进程&#xff08;精灵进程&#xff09;&#xff0c;是Linux中的后台服务进程。 它的生命周期较长&#xff0c;通常独立于控制终端并且周期性地执行某种任务或者等待处…...

软件设计师笔记

软件设计师笔记 计算机组成与体系结构 数据的表示、计算机结构、Flynn分类法、CISC与RISC、流水线技术、存储系统、总线系统、可靠性、校验码 1. 数据的表示 &#xff08;一&#xff09;进制转换 R进制转十进制使用按权展开法&#xff1a; 十进制转R进制使用短除法 二进制…...

4_用dockerfile制作镜像

Docker 镜像原理 思考&#xff1a; Docker 镜像本质是什么&#xff1f; Docker 中一个centos镜像为什么只有200MB&#xff0c;而一个centos操作系统的iso文件要几个个G&#xff1f; Docker 中一个tomcat镜像为什么有500MB&#xff0c;而一个tomcat安装包只有70多MB&#xff…...

肝一肝设计模式【四】-- 建造者模式

系列文章目录 肝一肝设计模式【一】-- 单例模式 传送门 肝一肝设计模式【二】-- 工厂模式 传送门 肝一肝设计模式【三】-- 原型模式 传送门 肝一肝设计模式【四】-- 建造者模式 传送门 文章目录 系列文章目录前言一、什么是建造者模式二、举个栗子三、静态内部类写法四、开源框…...

从设计到产品

从设计到产品 最近上的一些课的笔记&#xff0c;从 0 开始设计项目的角度去看产品。 设计系统 设计系统(design system) 不是 系统设计(system design)&#xff0c;前者更偏向于 UI/UX 设计部分&#xff0c;后者更偏向于实现部分。 个人觉得&#xff0c;前端开发与 UI/UX 设…...

《疯狂Python讲义》值传递的细节

函数的参数包含着整个程序的规范性&#xff0c;之前还是没有那么去注意重要的细节&#xff0c;读完书中函数值传递篇章&#xff0c;还是有所收获的。 参数有两种形式&#xff0c;一种是形参一种是实参&#xff0c;形参可以理解为实参的载体&#xff0c;函数当中的关键词也是描…...

【7. ROS 中的 IMU 惯性测量单元消息包】

欢迎大家阅读2345VOR的博客【6. 激光雷达接入ROS】&#x1f973;&#x1f973;&#x1f973; 2345VOR鹏鹏主页&#xff1a; 已获得CSDN《嵌入式领域优质创作者》称号&#x1f47b;&#x1f47b;&#x1f47b;&#xff0c;座右铭&#xff1a;脚踏实地&#xff0c;仰望星空&#…...

pcie m.2固态硬盘装机后无法识别到启动盘

1、第一种情况《系统版本过低》 原因&#xff1a; 使用m.2固态硬盘的电脑&#xff0c;最好安装iwn8.1以上的系统&#xff0c;因为win7系统及其win xp系统 没有自带NVME驱动。 搞定办法&#xff1a; 比较简单的方式就是直接开运行快启动u盘启动盘制作工具将系统升级到win10系…...

Java Web应用开发 ——第四章:JavaBean技术测验

一.单项选择题&#xff08;共13题,55.9分&#xff09; 1 在 JSP 中调用 JavaBean 时不会用到的标记是&#xff1a;&#xff08; &#xff09; A、 < jsp:javabean> B、 < jsp:useBean> C、 < jsp:setProperty> D、 < jsp:getProperty> 正确答案&a…...

浅谈 React Hooks

React Hooks 是 React 16.8 引入的一组 API&#xff0c;用于在函数组件中使用 state 和其他 React 特性&#xff08;例如生命周期方法、context 等&#xff09;。Hooks 通过简洁的函数接口&#xff0c;解决了状态与 UI 的高度解耦&#xff0c;通过函数式编程范式实现更灵活 Rea…...

Chapter03-Authentication vulnerabilities

文章目录 1. 身份验证简介1.1 What is authentication1.2 difference between authentication and authorization1.3 身份验证机制失效的原因1.4 身份验证机制失效的影响 2. 基于登录功能的漏洞2.1 密码爆破2.2 用户名枚举2.3 有缺陷的暴力破解防护2.3.1 如果用户登录尝试失败次…...

java_网络服务相关_gateway_nacos_feign区别联系

1. spring-cloud-starter-gateway 作用&#xff1a;作为微服务架构的网关&#xff0c;统一入口&#xff0c;处理所有外部请求。 核心能力&#xff1a; 路由转发&#xff08;基于路径、服务名等&#xff09;过滤器&#xff08;鉴权、限流、日志、Header 处理&#xff09;支持负…...

【解密LSTM、GRU如何解决传统RNN梯度消失问题】

解密LSTM与GRU&#xff1a;如何让RNN变得更聪明&#xff1f; 在深度学习的世界里&#xff0c;循环神经网络&#xff08;RNN&#xff09;以其卓越的序列数据处理能力广泛应用于自然语言处理、时间序列预测等领域。然而&#xff0c;传统RNN存在的一个严重问题——梯度消失&#…...

Java多线程实现之Callable接口深度解析

Java多线程实现之Callable接口深度解析 一、Callable接口概述1.1 接口定义1.2 与Runnable接口的对比1.3 Future接口与FutureTask类 二、Callable接口的基本使用方法2.1 传统方式实现Callable接口2.2 使用Lambda表达式简化Callable实现2.3 使用FutureTask类执行Callable任务 三、…...

【HTML-16】深入理解HTML中的块元素与行内元素

HTML元素根据其显示特性可以分为两大类&#xff1a;块元素(Block-level Elements)和行内元素(Inline Elements)。理解这两者的区别对于构建良好的网页布局至关重要。本文将全面解析这两种元素的特性、区别以及实际应用场景。 1. 块元素(Block-level Elements) 1.1 基本特性 …...

什么?连接服务器也能可视化显示界面?:基于X11 Forwarding + CentOS + MobaXterm实战指南

文章目录 什么是X11?环境准备实战步骤1️⃣ 服务器端配置(CentOS)2️⃣ 客户端配置(MobaXterm)3️⃣ 验证X11 Forwarding4️⃣ 运行自定义GUI程序(Python示例)5️⃣ 成功效果![在这里插入图片描述](https://i-blog.csdnimg.cn/direct/55aefaea8a9f477e86d065227851fe3d.pn…...

ios苹果系统,js 滑动屏幕、锚定无效

现象&#xff1a;window.addEventListener监听touch无效&#xff0c;划不动屏幕&#xff0c;但是代码逻辑都有执行到。 scrollIntoView也无效。 原因&#xff1a;这是因为 iOS 的触摸事件处理机制和 touch-action: none 的设置有关。ios有太多得交互动作&#xff0c;从而会影响…...

【分享】推荐一些办公小工具

1、PDF 在线转换 https://smallpdf.com/cn/pdf-tools 推荐理由&#xff1a;大部分的转换软件需要收费&#xff0c;要么功能不齐全&#xff0c;而开会员又用不了几次浪费钱&#xff0c;借用别人的又不安全。 这个网站它不需要登录或下载安装。而且提供的免费功能就能满足日常…...

【笔记】WSL 中 Rust 安装与测试完整记录

#工作记录 WSL 中 Rust 安装与测试完整记录 1. 运行环境 系统&#xff1a;Ubuntu 24.04 LTS (WSL2)架构&#xff1a;x86_64 (GNU/Linux)Rust 版本&#xff1a;rustc 1.87.0 (2025-05-09)Cargo 版本&#xff1a;cargo 1.87.0 (2025-05-06) 2. 安装 Rust 2.1 使用 Rust 官方安…...