MYSQL的DDL语言和单表查询
MYSQL的DDL语言和单表查询
Mysql介绍
SQL(Structured Query Language)是一种专门用于管理和操作关系型数据库的标准化语言,通过定义、查询、更新和控制数据,为应用程序提供一致且高效的持久化存储方式。它包含数据定义语言(DDL)、数据操纵语言(DML)、数据控制语言(DCL)和事务控制语言(TCL)等子集,分别负责创建与修改数据库结构、增删改查数据、实施权限管理以及保证事务一致性。作为业界广泛采用的开放标准,SQL 使开发者能够以声明式方式描述数据需求,而不必关心底层存储细节。
MySQL 是基于 SQL 标准构建的开源关系型数据库管理系统,它以轻量、性能优良和跨平台著称,广泛应用于 Web 后端、大数据处理及企业信息化等场景。MySQL 对 SQL 语法进行了兼容与扩展,提供事务支持、索引优化、视图、触发器和存储过程等功能,同时拥有主从复制、分区、集群和高可用架构,为不同规模的应用提供弹性的数据解决方案。借助严谨的 SQL 语言规范和 MySQL 丰富的实现机制,开发者能够以一致的接口完成复杂的数据模型设计与高并发读写操作,实现从原型到生产环境的顺畅迁移。
WampServer安装
安装软件
为了简化本地开发环境的搭建,推荐使用 WampServer。该集成环境在 Apache、PHP 和 MySQL 等组件的配置方面进行了优化,适合初学者和开发者快速部署使用。可通过官网下载地址获取:
🔗 http://www.wampserver.com/en/
也可以通过我的百度网盘分享来下载百度网盘分享的文件:wampserver3.1.9_x64.zip
在默认设置下,WampServer 中的 phpMyAdmin 是通过无密码方式访问 MySQL 的。若需启用密码验证机制,可按以下步骤进行配置:
-
启动 WampServer 并点击系统托盘中的图标进入 phpMyAdmin;
-
在 phpMyAdmin 页面输入账号root,不需要密码直接登录,添加新用户并为其设置密码(建议至少为
root
账户设置密码,但不推荐在日常操作中直接使用 root); -
关闭 phpMyAdmin 页面并退出 WampServer;
-
编辑配置文件
config.inc.php
(路径通常为<wamp安装目录>/apps/phpmyadmin*/config.inc.php
):-
将:
$cfg['Servers'][$i]['auth_type'] = 'config';
修改为:
$cfg['Servers'][$i]['auth_type'] = 'cookie';
-
将:
$cfg['Servers'][$i]['AllowNoPassword'] = true;
修改为:
$cfg['Servers'][$i]['AllowNoPassword'] = false;
-
在
<?php ... ?>
中添加一行:$cfg['blowfish_secret'] = 'your_custom_secret'; // 可自定义任意字符串
-
完成以上设置后,重启 WampServer,即可启用基于密码的 phpMyAdmin 登录验证。
可能遇到的问题
以下是对 WampServer 配置 phpMyAdmin 过程中常见问题的整理与优化说明:
🔧 问题一:修改配置后无法打开 phpMyAdmin 页面
原因可能是浏览器缓存或 tmp 文件干扰。可尝试以下措施:
- 清除浏览器缓存
特别是在使用 IE8 或更低版本时,浏览器缓存可能导致配置变更后页面无法正常加载。建议使用现代浏览器(如 Chrome、Firefox 或 Opera)以获得更好的兼容性和调试体验。 - 清空 WampServer 临时文件
删除<wamp安装目录>/tmp
目录下的所有文件,然后重新启动 WampServer,有助于清除被缓存的旧配置状态。
🔧 问题二:从一开始就无法访问 phpMyAdmin,提示 “Permission Denied”
此问题多见于 Windows 7 系统,原因在于 Apache 对本地访问的默认限制配置。
解决方法:
-
打开配置文件:
<wamp安装目录>/alias/phpmyadmin.conf
-
将其中的访问控制部分:
Deny from all Allow from 127.0.0.1
修改为:
Allow from all
-
保存后重启 WampServer,使配置生效。
完成上述操作后,phpMyAdmin 应该可以正常访问。如果问题仍存在,可进一步检查 Apache 的错误日志或防火墙设置。
DDL语句
DDL(Data Definition Language,数据定义语言)是 SQL 的一个子集,用于定义和管理数据库结构,例如创建、修改和删除表、索引、视图等数据库对象。
✅ 常见的 DDL 语句包括:
语句 | 功能 |
---|---|
CREATE | 创建数据库对象(如表、视图、索引等) |
ALTER | 修改已有的数据库对象结构 |
DROP | 删除数据库对象 |
TRUNCATE | 快速清空表中的所有数据(但保留结构) |
RENAME | 重命名数据库对象(某些数据库支持) |
📌 示例解释:
示例 1:创建表(CREATE TABLE
)
CREATE TABLE EMP (EMPNO INT PRIMARY KEY,ENAME VARCHAR(20),SAL DECIMAL(10,2)
);
含义:
- 创建一个名为
EMP
的表 - 包含三个字段:
EMPNO
: 整型,主键(唯一且非空)ENAME
: 字符串,长度最多 20 个字符SAL
: 带两位小数的十进制工资字段
示例 2:修改表结构(ALTER TABLE
)
ALTER TABLE EMP ADD HIREDATE DATE;
含义:
- 给
EMP
表增加一个HIREDATE
字段,类型为日期。
示例 3:删除表(DROP TABLE
)
DROP TABLE EMP;
含义:
- 删除整个
EMP
表,包括表结构和所有数据。
示例 4:清空表数据(TRUNCATE TABLE
)
TRUNCATE TABLE EMP;
含义:
- 清空
EMP
表中的所有数据,但保留表结构,适用于重置数据。
总结:
DDL 语句主要用于创建、修改和删除数据库结构本身,是数据库设计和管理的基础部分。
使用SQL DDL语句建立以下数据库模式,表一:
EMP表(员工表)
EMPNO | ENAME | JOB | MGR | HIREDATE | SAL | COMM | DEPTNO |
---|---|---|---|---|---|---|---|
7369 | SMITH | CLERK | 7902 | 17-Dec-90 | 13750 | 20 | |
7499 | ALLEN | SALESMAN | 7698 | 20-FEB-89 | 19000 | 6400 | 30 |
7521 | WARD | SALESMAN | 7698 | 22-FEB-93 | 18500 | 4250 | 30 |
7566 | JONES | MANAGER | 7839 | 02-APR-89 | 26850 | 20 | |
7654 | MARTIN | SALESMAN | 7698 | 28-SEP-97 | 15675 | 3500 | 30 |
7698 | BLAKE | MANAGER | 7839 | 01-MAY-90 | 24000 | 30 | |
7782 | CLARK | MANAGER | 7839 | 09-JUN-88 | 27500 | 10 | |
7788 | SCOTT | ANALYST | 7566 | 19-APR-87 | 19500 | 20 | |
7839 | KING | PRESIDENT | 17-NOV-83 | 82500 | 10 | ||
7844 | TURNER | SALESMAN | 7698 | 08-SEP-92 | 18500 | 6250 | 30 |
7876 | ADAMS | CLERK | 7788 | 23-MAY-96 | 11900 | 20 | |
7900 | JAMES | CLERK | 7698 | 03-DEC-95 | 12500 | 30 | |
7902 | FORD | ANALYST | 7566 | 03-DEC-91 | 21500 | 20 | |
7934 | MILLER | CLERK | 7782 | 23-JAN-95 | 13250 | 10 | |
3258 | GREEN | SALESMAN | 4422 | 24-Jul-95 | 18500 | 2750 | 50 |
4422 | STEVENS | MANAGER | 7839 | 14-Jan-94 | 24750 | 50 | |
6548 | BARNES | CLERK | 4422 | 16-Jan-95 | 11950 | 50 |
表二:
DEPT表(部门表)
DEPTNO | DNAME | LOC |
---|---|---|
10 | ACCOUNTING | LONDON |
20 | RESEARCH | PRESTON |
30 | SALES | LIVERPOOL |
40 | OPERATIONS | STAFFORD |
50 | MARKETING | LUTON |
✅ 1. 创建数据库
CREATE DATABASE COMPANY;
✅ 2. 选择数据库(以 MySQL 为例)
USE COMPANY;
✅ 3. 创建 DEPT
表(部门表)
CREATE TABLE DEPT (DEPTNO INT PRIMARY KEY,DNAME VARCHAR(20),LOC VARCHAR(20)
);
Primary Key(主键) 是数据库表中用于唯一标识每一行记录的字段或字段组合。它是数据库设计中的核心概念,保证每条数据的唯一性和可识别性。
✅ 主键的特征:
特征 | 说明 |
---|---|
🔑 唯一性 | 每条记录的主键值不能重复 |
🚫 非空性 | 主键字段不能为 NULL |
🌐 通常是 ID | 常用如 id 、empno 、student_no 作为主键 |
📎 可作为外键 | 可被其他表引用形成“外键”关联 |
⚠️ 每张表只能有一个主键 | 但可以由多个字段组合构成“复合主键” |
📌 示例:
CREATE TABLE STUDENT (STUDENT_ID INT PRIMARY KEY,NAME VARCHAR(50)
);
这里的
STUDENT_ID
就是主键,不能重复也不能为 NULL,系统会用它来唯一标识每一个学生。
📌 复合主键(Composite Primary Key):
CREATE TABLE COURSE_SELECTION (STUDENT_ID INT,COURSE_ID INT,PRIMARY KEY (STUDENT_ID, COURSE_ID)
);
表示一个学生只能选一次同一门课。
总结记忆:
主键就是“身份证号”,用来唯一识别一条数据记录,不能缺、不能重。
VARCHAR(20)
是一种 SQL 数据类型,表示可变长度的字符串字段,最多可以存储 20 个字符。
✅ 分解解释:
- VARCHAR:Variable Character(可变字符)
- (20):最大长度为 20 个字符
- 可变长度:只占用实际字符长度的存储空间(比
CHAR(20)
更节省)
📌 与 CHAR(20)
的区别:
类型 | 特点 | 示例存储 |
---|---|---|
CHAR(20) | 固定长度,总是占用 20 个字符空间 | 'Tom' 会补空格到 20 字符 |
VARCHAR(20) | 可变长度,只存实际字符 | 'Tom' 只占 3 字符 |
✅ 4. 创建 EMP
表(员工表)
CREATE TABLE EMP (EMPNO INT PRIMARY KEY,ENAME VARCHAR(20),JOB VARCHAR(20),MGR INT,HIREDATE DATE,SAL DECIMAL(10,2),COMM DECIMAL(10,2),DEPTNO INT,FOREIGN KEY (DEPTNO) REFERENCES DEPT(DEPTNO),FOREIGN KEY (MGR) REFERENCES EMP(EMPNO)
);
在数据库中,FOREIGN KEY
(外键) 是用来建立两个表之间关联关系的一种约束,确保一个表中的某个字段值必须来自另一个表中某字段的已有值。
✅ 外键的作用:
功能 | 说明 |
---|---|
建立表与表之间的引用关系 | 类似于“员工属于某个部门”,“订单属于某个客户” |
保证数据一致性与完整性 | 外键值必须在关联表中存在 |
用于构建主表-从表关系 | 例如:EMP.DEPTNO 必须引用 DEPT.DEPTNO |
📌 示例解析:
FOREIGN KEY (DEPTNO) REFERENCES DEPT(DEPTNO)
表示当前表(如
EMP
)中的DEPTNO
字段,必须是DEPT
表中已有的DEPTNO
值。即:员工只能隶属于已有部门。
FOREIGN KEY (MGR) REFERENCES EMP(EMPNO)
表示员工表中
MGR
(经理编号)字段必须引用另一个员工的EMPNO
(员工编号)。即:一个员工的上级必须是系统中已有的另一个员工。
🎯 例子说明:
-- DEPT 表(主表)
DEPTNO | DNAME
-------|-------
10 | ACCOUNTING
20 | RESEARCH-- EMP 表(从表)
EMPNO | ENAME | DEPTNO
------|--------|-------
1001 | JACK | 10 ✅ OK
1002 | LISA | 30 ❌ 报错(DEPT 表中无 DEPTNO = 30)
✅ 总结记忆:
外键 = “我依赖于别人”
FOREIGN KEY (A) REFERENCES B(C)
→ 表示 A 字段必须等于表 B 中字段 C 的值。
这样就完成了数据库、表结构及其之间的关系定义。
插入数据
✅ 插入 DEPT
表数据(MySQL)
INSERT INTO dept (DEPTNO, DNAME, LOC) VALUES (10, 'ACCOUNTING', 'LONDON');
INSERT INTO dept (DEPTNO, DNAME, LOC) VALUES (20, 'RESEARCH', 'PRESTON');
INSERT INTO dept (DEPTNO, DNAME, LOC) VALUES (30, 'SALES', 'LIVERPOOL');
INSERT INTO dept (DEPTNO, DNAME, LOC) VALUES (40, 'OPERATIONS', 'STAFFORD');
INSERT INTO dept (DEPTNO, DNAME, LOC) VALUES (50, 'MARKETING', 'LUTON');
✅ 插入 EMP
表数据(MySQL)
INSERT INTO EMP VALUES (7839, 'KING', 'PRESIDENT', NULL, '1983-11-17', 82500, NULL, 10);
INSERT INTO EMP VALUES (7782, 'CLARK', 'MANAGER', 7839, '1988-06-09', 27500, NULL, 10);
INSERT INTO EMP VALUES (7934, 'MILLER', 'CLERK', 7782, '1995-01-23', 13250, NULL, 10);
INSERT INTO EMP VALUES (7566, 'JONES', 'MANAGER', 7839, '1989-04-02', 26850, NULL, 20);
INSERT INTO EMP VALUES (7788, 'SCOTT', 'ANALYST', 7566, '1987-04-19', 19500, NULL, 20);
INSERT INTO EMP VALUES (7902, 'FORD', 'ANALYST', 7566, '1991-12-03', 21500, NULL, 20);
INSERT INTO EMP VALUES (7369, 'SMITH', 'CLERK', 7902, '1990-12-17', 13750, NULL, 20);
INSERT INTO EMP VALUES (7876, 'ADAMS', 'CLERK', 7788, '1996-05-23', 11900, NULL, 20);
INSERT INTO EMP VALUES (7698, 'BLAKE', 'MANAGER', 7839, '1990-05-01', 24000, NULL, 30);
INSERT INTO EMP VALUES (7499, 'ALLEN', 'SALESMAN', 7698, '1989-02-20', 19000, 6400, 30);
INSERT INTO EMP VALUES (7521, 'WARD', 'SALESMAN', 7698, '1993-02-22', 18500, 4250, 30);
INSERT INTO EMP VALUES (7654, 'MARTIN', 'SALESMAN', 7698, '1997-09-28', 15675, 3500, 30);
INSERT INTO EMP VALUES (7844, 'TURNER', 'SALESMAN', 7698, '1992-09-08', 18500, 6250, 30);
INSERT INTO EMP VALUES (7900, 'JAMES', 'CLERK', 7698, '1995-12-03', 12500, NULL, 30);
INSERT INTO EMP VALUES (4422, 'STEVENS', 'MANAGER', 7839, '1994-01-14', 24750, NULL, 50);
INSERT INTO EMP VALUES (3258, 'GREEN', 'SALESMAN', 4422, '1995-07-24', 18500, 2750, 50);
INSERT INTO EMP VALUES (6548, 'BARNES', 'CLERK', 4422, '1995-01-16', 11950, NULL, 50);
⚠️ 插入顺序已按外键依赖排序,确保不会触发 FOREIGN KEY
约束错误。
SQL语句
✅ 基础查询
1. 列出员工表中的员工姓名、编号、工资和部门编号
SELECT ENAME, EMPNO, SAL, DEPTNO FROM EMP;
📘 解释:简单列出指定字段,不涉及筛选或排序。
2. 列出所有不同的工作种类(不重复)
SELECT DISTINCT JOB FROM EMP;
📘 解释:使用 DISTINCT
消除重复。
3. 查找工资低于 £20000 的员工姓名
SELECT ENAME FROM EMP WHERE SAL < 20000;
📘 解释:通过 WHERE SAL < 20000
筛选员工。where为筛选条件
4. 查找不是在 10 号部门的 Clerk(文员)
SELECT ENAME FROM EMP WHERE JOB = 'CLERK' AND DEPTNO <> 10;
📘 解释:限定职业为 CLERK,排除 DEPTNO = 10。
5. 查找职位为 PRESIDENT 的员工姓名
SELECT ENAME FROM EMP WHERE JOB = 'PRESIDENT';
📘 解释:直接按职位查询。
6. 查找姓氏以 S 结尾的员工姓名
SELECT ENAME FROM EMP WHERE ENAME LIKE '%S';
📘 解释:LIKE
模糊匹配 %S
表示以 S 结尾。
7. 列出所有有提成(COMM)的员工
SELECT ENAME FROM EMP WHERE COMM IS NOT NULL;
📘 解释:使用 IS NOT NULL
找出 COMM 有值的员工。
8. 按 COMM/SAL 倒序列出所有 SALESMAN
SELECT ENAME, COMM, SAL FROM EMP
WHERE JOB = 'SALESMAN'
ORDER BY COMM / SAL DESC;
📘 解释:先筛选销售人员,再以提成与工资比排序。
9. 列出没有上司的员工的姓名、职位、工资和提成
SELECT ENAME, JOB, SAL, COMM FROM EMP WHERE MGR IS NULL;
📘 解释:MGR IS NULL
表示该员工无上司。
10. 列出 30 号部门中工资 ≥ 18000 的销售员
SELECT ENAME FROM EMP
WHERE JOB = 'SALESMAN' AND DEPTNO = 30 AND SAL >= 18000;
📘 解释:多条件联合筛选。
✅ 扩展查询
EX2(1):查找在 Luton 地点工作的员工姓名和工资
SELECT E.ENAME, E.SAL
FROM EMP E
JOIN DEPT D ON E.DEPTNO = D.DEPTNO
WHERE D.LOC = 'LUTON';
📘 解释:通过联表查找 LOC = 'LUTON'
的员工。
EX2(2):联接 DEPT 和 EMP 表,并按部门编号排序
SELECT E.ENAME, D.DEPTNO, D.DNAME
FROM EMP E
JOIN DEPT D ON E.DEPTNO = D.DEPTNO
ORDER BY D.DEPTNO;
📘 解释:显示员工与部门信息并按 DEPTNO 排序。
EX2(3):列出在 SALES 部门工作的销售员姓名
SELECT E.ENAME
FROM EMP E
JOIN DEPT D ON E.DEPTNO = D.DEPTNO
WHERE D.DNAME = 'SALES' AND E.JOB = 'SALESMAN';
📘 解释:两个表联合筛选部门名与职位。
EX2(4):列出没有员工的部门
SELECT D.DNAME
FROM DEPT D
LEFT JOIN EMP E ON D.DEPTNO = E.DEPTNO
WHERE E.EMPNO IS NULL;
📘 解释:使用 LEFT JOIN
+ IS NULL
筛选无人部门。
✅ 为什么这样写是对的?
场景:
我们要找的是:在 DEPT
表中,没有任何员工关联的部门。
分析:
LEFT JOIN
会保留DEPT
表中的所有记录;- 如果某个部门在
EMP
表中找不到匹配员工,它右边EMP
表的字段(如EMPNO
)就是NULL
; - 所以,
WHERE E.EMPNO IS NULL
就能精准选出“没有员工的部门”。
✅ 举个例子:
假设 DEPT
表中有部门 10, 20, 30, 40, 50
而 EMP
表中只有部门 10, 20, 30, 50 的员工
执行 LEFT JOIN
后:
D.DEPTNO | D.DNAME | E.EMPNO |
---|---|---|
10 | ACCOUNTING | 7782 |
20 | RESEARCH | 7902 |
30 | SALES | 7499 |
40 | OPERATIONS | NULL ✅ |
50 | MARKETING | 4422 |
就能通过 WHERE E.EMPNO IS NULL
把 40 号部门筛出来。
❗ 所以不能用 INNER JOIN
,也不能直接 JOIN
(默认是 INNER JOIN),因为:
INNER JOIN
只保留“左右两边都匹配成功”的数据;- 不会保留“没有员工”的部门。
EX2(5):列出工资超过其经理的员工及其经理信息
SELECT A.ENAME, A.SAL, B.ENAME, B.SAL
FROM EMP A, EMP B
WHERE A.MGR = B.EMPNOAND A.SAL > B.SAL;
📘 解释:员工和经理来自同一张表,用自连接实现。
✅ 正确性分析:
部分 | 解释 |
---|---|
FROM emp2021280369 A, emp2021280369 B | 自连接 EMP 表,一张表表示员工(A),一张表示经理(B) |
A.MGR = B.EMPNO | 表示 A 的上司是 B |
A.SAL > B.SAL | 员工的工资高于经理的工资 |
SELECT A.ENAME, A.SAL, B.ENAME, B.SAL | 分别列出员工与其经理的姓名和工资 |
🔄 可读性更强的写法(使用显式 JOIN
):
SELECT E.ENAME AS Employee, E.SAL AS Emp_Salary,M.ENAME AS Manager, M.SAL AS Mgr_Salary
FROM EMP E
JOIN EMP M ON E.MGR = M.EMPNO
WHERE E.SAL > M.SAL;
JOIN
替代逗号分隔方式,更推荐用于正式开发;- 添加别名让字段含义更清晰(Employee vs Manager)
EX2(6):列出上司为 BLAKE 的员工姓名
SELECT E.ENAME
FROM EMP E
JOIN EMP M ON E.MGR = M.EMPNO
WHERE M.ENAME = 'BLAKE';
📘 解释:同样使用自连接,查找以 BLAKE 为上司的员工。
相关文章:
MYSQL的DDL语言和单表查询
MYSQL的DDL语言和单表查询 Mysql介绍 SQL(Structured Query Language)是一种专门用于管理和操作关系型数据库的标准化语言,通过定义、查询、更新和控制数据,为应用程序提供一致且高效的持久化存储方式。它包含数据定义语言&…...
奇瑞依托汽车产业链,实现服务机器人万台下线
近日,奇瑞集团旗下墨甲机器人(MOJA)全球批量交付的消息得到官方确认。这一重大进展不仅标志着奇瑞在服务机器人领域的商业化落地迈出关键一步,更成为国产智能装备进军全球市场的重要里程碑。 墨甲机器人简介 产品定位 墨甲是奇…...
Python Bug 修复案例分析:函数参数传递引发的逻辑错误修复
在 Python 编程学习的过程中,各种意想不到的 Bug 常常会阻碍我们编写的程序的正常运行。这次,我们将围绕一个因函数参数传递导致逻辑错误的案例,深入剖析 Bug 的修复全过程,帮助初学者掌握处理这类问题的方法。 案例背景 最近编写…...
论文阅读笔记——ROBOGROUND: Robotic Manipulation with Grounded Vision-Language Priors
RoboGround 论文 一类中间表征是语言指令,但对于空间位置描述过于模糊(“把杯子放桌上”但不知道放桌上哪里);另一类是目标图像或点流,但是开销大;由此 GeoDEX 提出一种兼具二者的掩码。 相比于 GR-1&#…...
deeplabv3+街景图片语义分割,无需训练模型,看不懂也没有影响,直接使用,cityscapes数据集_23
目录 0、简介1、下载链接1.1、CSDN链接,含权重文件直接使用,建议直接下这个,还不限速。1.2 Github链接: 2、下载代码,下载预训练好的权重3、预测代码4、像素提取,或者说类别提取5、文档部分内容截图6、其他…...
JavaScript性能优化实战:深入探讨性能瓶颈与优化技巧
JavaScript性能优化实战:深入探讨性能瓶颈与优化技巧 引言 在当今快速发展的Web世界中,性能已经成为衡量应用质量的关键指标。随着Web应用复杂度的不断提升,JavaScript作为前端开发的核心语言,其性能优化变得尤为重要。本文旨在全面深入地探讨JavaScript性能优化的各个方…...
第2章——springboot核心机制
一、为何以继承方式引入SpringBoot 1.提出疑问 以前我们在开发项目时,需要什么,引入对应的依赖就行,比如我们需要连接mysql数据,则引入mysql驱动的依赖,如下: <dependency><groupId>com.mys…...
huggingface 热门开源TTS模型Dia-1.6B,支持多人对话生成、情感控制~
简介 Dia-1.6B 是一款由 Nari Labs 开发的开源文本转语音(TTS)模型,专注于生成自然对话。其项目背景和模型架构基于近期可用的网络信息进行了详细分析,以下是全面的报告。 项目背景概述 Dia-1.6B 的开发始于 Nari Labsÿ…...
深入理解West:介绍、使用及与Repo的对比
目录 引言 West简介 West的由来 West的核心功能 West的架构与工作流程 West安装与使用 环境准备与安装 Manifest 文件结构解析 常用命令详解与进阶用法 Tip与Troubleshoot 实践案例:基于West的Zephyr项目管理 初始化与同步 构建与闪存 插件示例:自定义命令 Repo简介 Repo的背…...
力扣-hot100 (矩阵置零)
73. 矩阵置零 中等 给定一个 *m* x *n* 的矩阵,如果一个元素为 0 ,则将其所在行和列的所有元素都设为 0 。请使用 原地 算法。 示例 1: 输入:matrix [[1,1,1],[1,0,1],[1,1,1]] 输出:[[1,0,1],[0,0,0],[1,0,1]] 示…...
OpenKylin安装Elastic Search8
一、环境准备 Java安装 安装过程此处不做赘述,使用以下命令检查是否安装成功。 java -version 注意:Elasticsearch 自 7.0 版本起内置了 OpenJDK,无需单独安装。但如需自定义 JDK,可设置 JAVA_HOME。 二、安装Elasticsearch …...
【JVM】从零开始深度解析JVM
本篇博客给大家带来的是JVM的知识点, 重点在类加载和垃圾回收机制上. 🐎文章专栏: JavaEE初阶 🚀若有问题 评论区见 ❤ 欢迎大家点赞 评论 收藏 分享 如果你不知道分享给谁,那就分享给薯条. 你们的支持是我不断创作的动力 . 王子,公主请阅🚀 …...
制造企业PLM系统成本基准:2025年预算分配与资源成本率的5种优化模型
在 2025 年制造业数字化转型的浪潮中,PLM(产品生命周期管理)系统已成为制造企业提升核心竞争力的关键工具。然而,PLM 系统的实施和运营成本较高,如何有效控制成本、优化预算分配和资源成本率,成为企业关注的…...
【Python】一键提取视频音频并生成MP3的完整指南 by `MoviePy`
摘要 昨天, 我在让一个小朋友给我整理一次培训的视频的时候,我看到他把视频文件放到剪映里面处理。 我以为他要干什么呢, 还很期待,结果他只是为了导出音频而已。 于是就有了今天的这篇博客。 作为音视频处理领域的常用需求&…...
Golang领域Beego框架的中间件开发实战
在Golang的Beego框架中,中间件(Middleware)是一种强大的机制,用于在请求处理的不同阶段插入自定义逻辑。 中间件可以用于处理日志记录、身份验证、错误处理、请求/响应修改等任务。 Beego框架中间件开发的实战指南: …...
Elasticsearch:我们如何在全球范围内实现支付基础设施的现代化?
作者:来自 Elastic Kelly Manrique SWIFT 和 Elastic 如何应对基础设施复杂性、误报问题以及日益增长的合规要求。 金融服务公司在全球范围内管理实时支付方面面临前所未有的挑战。SWIFT(Society for Worldwide Interbank Financial Telecommunication -…...
【LLIE专题】基于 CLIP 的无监督背光增强算法
CLIP-LIT: Iterative Prompt Learning for Unsupervised Backlit Image Enhancement(2023,ICCV) 专题介绍一、研究背景二、CLIP-LIT方法三、实验结果四、总结五、思考 本文将对 CLIP-LIT: Iterative Prompt Learning for Unsupervised Backl…...
深入了解酒店一次性牙刷:材质选择与设计考量全解析
酒店的一次性牙刷是我们住酒店时常见的用品,它方便了很多旅客出行,虽小巧,却对人们口腔清洁有一定作用,扬州卓韵酒店用品在这个领域表现优秀,下面我们就深入了解酒店一次性牙刷。 一次性牙刷的材质相当重要。常见的有…...
[人机交互]理解用户
一.解释什么是认知,以及它对交互设计的重要性 1.1什么是认知 认知是指与knowing相关的能力,行为和过程(考填空) -如何感知物理刺激?如注意、知觉等 -如何认识自我、他人以及环境?如意识、记忆等 -如何…...
css3伸缩盒模型第二章(侧轴相关)
css3伸缩盒模型第二章(侧轴相关) 侧轴对齐方式 侧轴对齐我们需要分两种情况,一种是多行,一种是单行,两种设置方式不同 属性:align-items 单行属性: align-content 多行 单行 align-items flex-start: 侧轴的起点对…...
【WPS】怎么解决“word的复制表格”粘贴到“excel的单元格”变多行单元格的问题
把 word文档复制表格到这个excel表格上面的话,会出现由单个单元格变成多行单元格的情况。 现在,就这个问题怎么解决,提出了一个方案,就是先查找是什么导致了这个换行,然后再将换行的这个字符进行一个整体的替换&#x…...
股指期货深度贴水是什么意思?
如果贴水的幅度特别大,比如股票指数是3000点,但股指期货的价格只有2800点,贴水了200点,这就叫“深度贴水”。简单来说,股指期货贴水就是指股指期货的价格低于其对应的现货指数价格。当这种贴水程度较大时,就…...
GCC编译器安装详细说明(举例arm-2013q3)
比如在官网GNU Arm Embedded Toolchain project files : GNU Arm Embedded Toolchain 下载了一个gcc-arm-none-eabi-4_7-2013q3-20130916-linux.tar.bz2 1 sudo tar -xvf gcc-arm-none-eabi-4_7-2013q3-20130916-linux.tar.bz2 解决了解压 在部署环境,在安装2…...
第十一届蓝桥杯 2020 C/C++组 蛇形填数
目录 题目: 题目描述: 题目链接: 思路: 思路详解: 代码: 代码详解: 题目: 题目描述: 题目链接: 蛇形填数 - 蓝桥云课 思路: 思路详解: 看图找规律…...
https://juejin.cn/editor/drafts/7262346366541070395
.Net Core从零学习搭建权限管理系统教程 推荐一组WPF自定义控件开源项目。 项目简介 这是基于WPF开发的,为开发人员提供了一组方便使用自定义组件,并提供了各种常用的示例。 包含组件:数据表格、属性列表、树形列表、选色器、单选框列表、…...
STL?string!!!
一、引言 在之前的文章中,我们一同学习了有关类和对象、模板、动态内存管理的相关知识,那么接下来一段时间我们将要趁热打铁,一起来手撕C库中最重要的一个库----STL中的一些容器,在手撕它们之前,我将先介绍一下对应的容…...
CentOS 7 安装指定版本 Docker 及镜像加速/配置优化攻略
摘要 本文详述 CentOS 7 系统下安装指定版本 Docker ,涵盖镜像加速配置(实测最快)、存储位置优化、日志轮转等核心配置。 文章目录 一、安装指定版本Docker1.1 卸载旧版本(如有)1.2 安装依赖包1.3 添加Docker仓库&…...
域名别名(CNAME)解析及域名注册操作步骤
以虚拟主机为例,大多网站空间无独立ip,域名打开以别名解析为主,那域名别名(CNAME)如何解析呢?以下以新网为例,别名解析操作步骤: 1.登录域名管理界面,点击管理解析记录; …...
JVM内存模型深度解剖:分代策略、元空间与GC调优实战
堆 堆是Java虚拟机(JVM)内存管理的核心区域,其物理存储可能分散于不同内存页,但逻辑上被视为连续的线性空间。作为JVM启动时创建的第一个内存区域,堆承载着几乎所有的对象实例和数组对象(极少数通过逃逸分…...
Unity_JK框架【1】 框架导入 对象池示例 (资源管理底层)
一、JK框架介绍 主要功能系统: 对象池系统:重复利用GameObject或普通class实例,并且支持设置对象池容量 事件系统:解耦工具,不需要持有引用来进行函数的调用 资源系统 Resources版本:关联对象池进行资源…...
JDK 发展历史及其版本特性
JDK(Java Development Kit,Java开发工具包)是用于开发Java应用程序的核心工具之一。它由Oracle(最初由Sun Microsystems)提供,包含了Java编译器、Java运行环境(JRE)、Java标准类库等…...
B站视频下载到电脑的方法总结
将B站(哔哩哔哩)视频下载到电脑的方法有多种,以下是几种常见且有效的方法,分为 官方工具 和 第三方工具 两类: 一、官方方法(B站客户端或功能) 哔哩哔哩客户端(UWP/PC版)…...
2025 后端自学UNIAPP【项目实战:旅游项目】2、安装下载引用前端UI框架:uview-plus
1、uview-plus官网地址,有详细介绍,感兴趣的可以深入了解学习 介绍 | uview-plus - 全面兼容nvue/鸿蒙/uni-app-x的uni-app生态框架 - uni-app UI框架 2、Hbuilder X 方式安装下载引入uview-plus ①进入该网址,点击 下载插件并导入Hbuild…...
Vue 的双向绑定原理,Vue2 和 Vue3 双向绑定原理的区别
Vue 的双向绑定原理,Vue2 和 Vue3 双向绑定原理的区别 Vue 的双向绑定(Two-way Data Binding)是其核心特性之一,其本质是通过数据劫持结合发布-订阅模式实现的。以下是 Vue2 和 Vue3 在双向绑定原理上的区别和演进: 文…...
RAG_Techniques:探索GitHub热门RAG技术开源项目
RAG_Techniques:探索GitHub热门RAG技术开源项目 引言项目概述RAG技术简介与重要性核心功能详解1. 分类清晰的技术体系2. 前沿技术解析3. 评估工具与方法 安装和使用教程应用场景和实际价值企业知识库和文档检索教育和研究辅助个性化内容推荐 结论 引言 在当今AI领域…...
Java高频面试之并发编程-12
hello啊,各位观众姥爷们!!!本baby今天又来报道了!哈哈哈哈哈嗝🐶 面试官:详细说说java的内存模型 Java内存模型(Java Memory Model, JMM)是Java多线程编程的核心&#…...
多线程系列五:面试中常考的单例模式
1.设计模式 在了解单例模式之前我们先要了解设计模式: 设计模式是一种软性规定,遵守了设计模式,代码的下限就被兜住了,类似于棋谱,是大佬设计出来的,让小白程序员也能写出好的代码 设计模式有很多种&#x…...
音视频之H.265/HEVC编解码并处理
H.265/HEVC系列文章: 1、音视频之H.265/HEVC编码框架及编码视频格式 2、音视频之H.265码流分析及解析 3、音视频之H.265/HEVC预测编码 4、音视频之H.265/HEVC变换编码 5、音视频之H.265/HEVC量化 6、音视频之H.265/HEVC环路后处理 7、音视频之H.265/HEVC熵编…...
Python入门(一)
目录 一、Python数据类型 1.字面量 2.注释 3.变量 4.数据类型 二、 运算符 1.数据类型之间的相互转换 2 算数运算符 3、逻辑运算符 三、判断语句 if 四、循环 1、while循环 2、for循环 2.1 for...else... 五、格式化字符串 1.字符串 1.1创建字符串的方式&…...
2025年01月09日德美医疗前端面试
目录 vue2 的双向绑定的原理vue3 的双向绑定原理vue 的生命周期vue 子组件为何不能修改父组件的值js delete 删除数组的某一个值会怎么样vue 和 react 的 diff 算法什么是闭包原型链this指向 vue2 的双向绑定的原理 以下是 Vue 2 双向绑定的原理: 1. 核心概念 …...
02 mysql 管理(Windows版)
一、启动及关闭 MySQL 服务器 1.1 通过 “服务” 管理工具 winr打开运行,输入services.msc 找到MySQL80,这个是我们在安装mysql的时候给的服务的名称,具体见文章mysql 安装 右键选择启动或者停止。 1.2 通过命令提示符 1.2.1 关闭命令…...
开发搭载OneNet平台的物联网数据收发APP的设计与实现
一、开发环境与工具准备 工具安装 下载HBuilderX开发版(推荐使用开发版以避免插件兼容性问题)安装Node.js和npm(用于依赖管理及打包)配置Android Studio(本地打包需集成离线SDK)项目初始化 创建uni-app项目,选择“默认模板”或“空白模板”安装必要的UI库(如uView或Van…...
ntdll!LdrpInitializeProcess函数分析之Peb->Ldr和全局变量ntdll!PebLdr的关系
代码部分A: PEB_LDR_DATA PebLdr; //全局变量ntdll!PebLdr NTSTATUS LdrpInitializeProcess ( IN PCONTEXT Context OPTIONAL, IN PVOID SystemDllBase ) { 代码部分B: // // Figure out process name. // Teb NtCurrentTeb…...
如何开始使用 Blender:Blender 3D 初学者指南和简介 怎么下载格式模型
Blender 是一个强大的 3D 创作套件,为动画、视觉效果、艺术等提供了一系列功能。无论您是初学者还是经验丰富的艺术家,Blender 都提供了一个免费的开源平台来释放您的创造力。凭借其内置的视频序列编辑器,Blender 还提供基本的编辑功能&#…...
Nginx安全防护与HTTPS部署
目录 一、Nginx 概述 二、Nginx 核心安全配置 (一)编译安装 Nginx (二)隐藏版本号 (三)限制危险请求方法 (四)请求限制(CC 攻击防御) (五&…...
HTTP 与 HTTPS 的深度剖析:差异、原理与应用场景
HTTP 与 HTTPS 的深度剖析:差异、原理与应用场景 在互联网的世界里,HTTP(超文本传输协议)和 HTTPS(超文本传输安全协议)是数据传输的 “高速公路”,它们承载着我们日常浏览网页、购物支付等各种…...
SMT贴片钢网精密设计与制造要点解析
内容概要 SMT贴片钢网作为电子组装工艺的核心载体,其设计与制造质量直接影响焊膏印刷精度及产品良率。本文系统梳理了钢网全生命周期中的15项关键技术指标,从材料选择、结构设计到工艺控制构建完整技术框架。核心要点涵盖激光切割精度的微米级调控、开口…...
算法每日一题 | 入门-顺序结构-三角形面积
三角形面积 题目描述 一个三角形的三边长分别是 a、b、c,那么它的面积为 p ( p − a ) ( p − b ) ( p − c ) \sqrt{p(p-a)(p-b)(p-c)} p(p−a)(p−b)(p−c) ,其中 p 1 2 ( a b c ) p\frac{1}{2}(abc) p21(abc) 。输入这三个数字,…...
Linux内核视角:线程同步与互斥的原理、实现与锁优化策略
Linux系列 文章目录 Linux系列前言一、前提知识二、线程互斥概念引入三、线程互斥3.1 什么是线程的互斥3.2 线程互斥的实现 四、锁的实现原理 前言 在前两篇文章中,我们已经对线程的相关概念及基本操作进行了深入介绍。在本篇中,我们将深入探讨编写多线…...
【区块链】Uniswap详细介绍
一、前言 本文将结合网上的资料和博主的理解,像大家详细介绍Uniswap,包括其核心概念、工作原理、版本演进、代币经济学以及风险点,适合想深入了解去中心化交易所(DEX)机制的用户。 二、Uniswap是什么 Uniswap 是一个…...