數據庫系統學習

關系型數據庫

關系型數據庫建立在關系模型基礎上的數據庫,關系型數據庫是由多張能相互相連的二維表組成的數據庫
優點:

  1. 都是使用表結構,格式一致,易于維護
  2. 使用通用的sql語言操作,使用方便,可用于復雜查詢
  3. 數據存儲在磁盤中,安全

結構化查詢語言,一門操作關系型數據庫的編程語言
定義操作所有關系型數據庫的統一標準

sql分類

  1. DDL(Data Definition Language)數據庫定義語言,用來定義數據庫對象:數據庫,表、列等
  2. DML(Data Manipulation Language)數據庫操作語言,用來對數據庫中的表數據進行增刪改查
  3. DQL(Data Query Language)數據查詢語言,用來查詢數據庫中表的記錄(數據)
  4. DCL(Data Control Language)數據庫控制語言,用來定義數據庫的訪問權限和安全級別,及創建用戶

DDL-操作數據庫

  1. 查看Mysql中 都有哪些數據庫
SHOW DATABASES;

使用數據庫

USE 數據庫名稱;

查看當前正在使用的數據庫

select database();

查看一個數據庫的定義信息

show create database 數據庫名;
  1. 創建數據庫
CREATE DATABASES 數據庫名稱;

創建數據庫(判斷,如果不存在則創建)

CREATE DATABASE IF NOT EXISTS 數據庫名稱;

創建指定名稱的數據庫,并且指定字符集(一般都指定
utf-8)

create database 數據庫名 character set 字符
集;
  1. 刪除數據庫
DROP DATABASE 數據庫名稱

刪除數據庫(判斷,如果存在則刪除)

DROP DATABASE IF EXISTS 數據庫名稱
  1. 修改數據庫
    數據庫的字符集修改操作
alter database 數據庫名 character set 字符集;

DDL-操作表

  • 創建create
  • 查詢retrieve
  • 修改update
  • 刪除delete
查詢表
  • 查詢當前數據庫下所有的表名稱
show tables
  • 查詢表結構
desc 表名稱;
創建表
  • 創建表
create table 表名(字段名1 數據類型1,字段名2 數據類型2
);
查看表
  • 查看當前數據庫中的所有表名
show tables;
  • 查看數據表的結構
desc 表名;
刪除表
  • 刪除表
drop table 表名;
  • 刪除表同時判斷表是否存在
drop table if exists 表名;
修改表
  • 修改表名
alter table 表名 rename to 新的表名;
  • 添加一列
alter table 表名 add 列名 數據類型; 
  • 修改數據類型
alter table 表名 modify 列名 新數據類型;
  • 修改列名和數據類型
alter table 表名 change 列名 新列名 新數據類型;
  • 修改表的字符集
alter table 表名 character set 字符集
  • 刪除一列
alter table 表名 drop 列名;

數據類型

mysql支持多種類型,可以分為三類:

  • 數值
  • 日期
  • 字符串

DML操作表

插入數據
insert into 表名 (字段名1,字段名2...values(字段值1,字段值2...);

插入指定字段

INSERT INTO category (cname) VALUES('白骨精');
更改數據

不帶條件的修改

update 表名 set 列名 =

帶條件的修改

update 表名 set 列名 =[where 條件表達式:字段名 =]
刪除數據

刪除所有數據

delete from 表名

指定條件 刪除數據

delete from 表名 [where 字段名 =]

DQL 查詢表中數據

簡單查詢
select 列名 from 表名
條件查詢
select 列名 from 表名 where 條件表達式

比較運算符

運算符說明
> < <= >= = <> !=大于、小于、大于(小于)等于、不等于
BETWEEN …AND…顯示在某一區間的值例如: 2000-10000之間: Between 2000 and 10000
IN(集合)集合表示多個值,使用逗號分隔,例如: name in (悟空,八戒) in中的每個數據都會作為一次條件,只要滿足條件就會顯示
ILIKE ‘%張%’模糊查詢
IS NULL查詢某一列為NULL的值, 注: 不能寫 = NULL

邏輯運算符

運算符說明
And &&多個條件同時成立
Or多個條件任一成立
Not不成立

模糊查詢 通配符

通配符說明
%表示匹配任意多個字符串
_表示匹配 一個字符

DQL操作單表

排序

SELECT 字段名 FROM 表名 [WHERE 字段 =] ORDER BY 字段名 [ASC / DESC]
-- 組合排序
SELECT * FROM emp ORDER BY salary DESC, eid DESC;
聚合函數
聚合函數作用
count(字段)統計指定列不為NULL的記錄行數
sum(字段)計算指定列的數值和
max(字段)計算指定列的最大值
min(字段)計算指定列的最小值
avg(字段)計算指定列的平均值
分組

分組查詢指的是使用 GROUP BY 語句,對查詢的信息進行分組,相同數據作為一組

分組時可以查詢要分組的字段, 或者使用聚合函數進行統計操作.

在這里插入圖片描述

SELECT 分組字段/聚合函數 FROM 表名 GROUP BY 分組字段 [HAVING 條件];#1. 查詢有幾個部門
SELECT dept_name AS '部門名稱' FROM emp GROUP BY dept_name;
#2.查詢每個部門的平均薪資
SELECT
dept_name AS '部門名稱',
AVG(salary) AS '平均薪資'
FROM emp GROUP BY dept_name;#3.查詢每個部門的平均薪資, 部門名稱不能為null
SELECT dept_name AS '部門名稱',AVG(salary) AS '平均薪資'
FROM emp WHERE dept_name IS NOT NULL GROUP BY dept_name;

having使用:

  1. 需要在分組后,對數據進行過濾,使用 關鍵字 having
  2. 分組操作中的having子語句,是用于在分組后對數據進行過濾的,作用類似于where條件。
# 查詢平均薪資大于6000的部門
-- 需要在分組后再次進行過濾,使用 having
SELECT
dept_name ,
AVG(salary)
FROM emp WHERE dept_name IS NOT NULL GROUP BY dept_name HAVING AVG(salary) > 6000 ;

having與where的區別

過濾方式特點
wherewhere 進行分組前的過濾 where 后面不能寫聚合函數
havinghaving 是分組后的過濾 having 后面可以寫聚合函數
limit關鍵字

limit 關鍵字的作用

  • limit是限制的意思,用于限制返回的查詢結果的行數 (可以通過limit指定查詢多少行數據)
  • limit 語法是 MySql的方言,用來完成分頁
SELECT 字段1,字段2... FROM 表名 LIMIT offset , length;

limit offset , length; 關鍵字可以接受一個 或者兩個 為0 或者正整數的參數
offset 起始行數, 從0開始記數, 如果省略 則默認為 0
length 返回的行數

# 查詢emp表中的前5條數據
-- 參數1 起始值,默認是0 , 參數2 要查詢的條數
SELECT * FROM emp LIMIT 5;
SELECT * FROM emp LIMIT 0 , 5;
# 查詢emp表中 從第4條開始,查詢6條
-- 起始值默認是從0開始的.
SELECT * FROM emp LIMIT 3 , 6;

分頁操作

-- 分頁操作 每頁顯示3條數據
SELECT * FROM emp LIMIT 0,3; -- 第1頁
SELECT * FROM emp LIMIT 3,3; -- 第2頁 2-1=1 1*3=3
SELECT * FROM emp LIMIT 6,3; -- 第三頁
-- 分頁公式 起始索引 = (當前頁 - 1) * 每頁條數
-- limit是MySql中的方言

sql約束

  1. 約束的作用: 對表中的數據進行進一步的限制,從而保證數據的正確性、有效性、完整性. 違反約束的不正確數據,將無法插入到表中
  2. 常見的約束
約束名約束關鍵字
主鍵primary key
唯一unique
非空not null
外鍵foreign key

主鍵約束

不可重復、唯一、非空

添加主鍵約束
字段名 字段類型 primary key
刪除主鍵約束
ALTER TABLE 表名 DROP PRIMARY KEY;
主鍵的自增
關鍵字:
AUTO_INCREMENT 表示自動增長(字段類型必須是整數類型)

修改主鍵自增

-- 創建主鍵自增的表,自定義自增其實值
CREATE TABLE emp2(
eid INT PRIMARY KEY AUTO_INCREMENT,
ename VARCHAR(20),
sex CHAR(1)
)AUTO_INCREMENT=100;
delete和truncat對自增長的影響
清空表數據的方式特點
delete只是刪除表中數據,對自增沒有影響
truncate是將整個表刪除掉,然后創建一個新的表自增的主鍵,重新從1開始

非空約束

字段名 字段類型 not null

唯一約束

字段名 字段值 unique

主鍵約束和唯一約束的區別:

  • 主鍵約束唯一且不能為空
  • 唯一約束,唯一可以為空
  • 一個表中只能有一個主鍵約束,但是可以有多個唯一約束

默認值

默認值約束 用來指定某列的默認值

字段名 字段類型 DEFAULT 默認值

數據庫事務

事務是一個整體,由一條或者多條SQL 語句組成,這些SQL語句要么都執行成功,要么都執行失敗, 只要有一條SQL出現異常,整個操作就會回滾,整個業務執行失敗

回滾
即在事務運行的過程中發生了某種故障,事務不能繼續執行,系統將事務中對數據庫的所有已完成的操作全部撤銷,滾回到事務開始時的狀態。(在提交之前執行)

mysql事務操作

兩種方式操作事務

  • 手動提交事務
  • 自動提交事務
手動提交事務
功能語句
開啟事務start transaction;或者begin
提交事務commit
回滾事務rollback;

start transaction:這個語句顯式地標記一個事務的起始點。
commit:表示提交事務,即提交事務的所有操作,具體地說,就是將事務中所有對數據庫的更新都寫到磁盤上的物理數據庫中,事務正常結束。
rollback:表示撤銷事務,即在事務運行的過程中發生了某種故障,事務不能繼續執行,系統將事務中對數據庫的所有已完成的操作全部撤銷,回滾到事務開始時的狀態

流程:

  • 執行成功的情況: 開啟事務 -> 執行多條 SQL 語句 -> 成功提交事務
  • 執行失敗的情況: 開啟事務 -> 執行多條 SQL 語句 -> 事務的回滾
自動提交事務

MySQL 默認每一條 DML(增刪改)語句都是一個單獨的事務,每條語句都會自動開啟一個事務,語句執行完畢 自動提交事務,MySQL 默認開始自動提交事務

取消自動提交
登錄mysql,查看autocommit狀態

SHOW VARIABLES LIKE 'autocommit';

on:自動提交
off:手動提交

把 autocommit 改成 off;

SET @@autocommit=off;

事務的四大特性ACID

特性含義
原子性每個事務都是一個整體,不可再拆分,事務中所有的 SQL 語句要么都執行成功, 要么都失敗。
一致性事務在執行前數據庫的狀態與執行后數據庫的狀態保持一致。如:轉賬前2個人的總金額是2000,轉賬后 2 個人總金額也是 2000
隔離性事務在執行前數據庫的狀態與執行后數據庫的狀態保持一致。如:轉賬前2個人的 總金額是2000,轉賬后 2 個人總金額也是 2000
持久性一旦事務執行成功,對數據庫的修改是持久的。就算關機,數據也是要保存下來的.

mysql事務隔離級別

并發訪問會產生的問題

產生的問題說明
臟讀一個事務讀取到了另一個事務中尚未提交的數據
不可重復讀一個事務中兩次讀取的數據內容不一致, 要求的是在一個事務中多次讀取時數據是一致的這是進行 update 操作時引發的問題
幻讀一個事務中,某一次的 select 操作得到的結果所表征的數據狀態, 無法支撐后續的業務操作. 查詢得到的數據狀態不準確,導致幻讀.

設置隔離級別:

  • read uncommitted 讀未提交:不能防止以上三種任何一種情況
  • read committed 讀已提交:可以防止臟讀(Oracle和SQLServer默認隔離級別)
  • repeatable read 可重復讀:可以防止臟讀和不可重復讀(MySql默認隔離級別)
  • serializable串讀:可以防止以上三種情況

隔離級別越高,效率越低

隔離級別相關命令

查看隔離級別

select @@tx_isolation;

設置事務隔離級別,需要退出 MySQL 再重新登錄才能看到隔離級別的變化

set global transaction isolation level 級別名稱;
read uncommitted 讀未提交
read committed 讀已提交
repeatable read 可重復讀
serializable 串行化
臟讀

臟讀非常危險的,比如張三向李四購買商品,張三開啟事務,向李四賬號轉入 500 塊,然后打電話給李四說錢已經轉了。李四一查詢錢到賬了,發貨給張三。張三收到貨后回滾事務,李四的再看錢沒了

解決方法:
將全局的隔離級別進行提升為: read committed

不可重復讀

不可重復讀: 同一個事務中,進行查詢操作,但是每次讀取的數據內容是不一樣的

會遇到的問題:
比如銀行程序需要將查詢結果分別輸出到電腦屏幕和發短信給客戶,結果在一個事務中針對不同的輸出目的地進行的兩次查詢不一致,導致文件和屏幕中的結果不一致,銀行工作人員就不知道以哪個為準了

解決方法:
將全局的隔離級別進行提升為: repeatable read

幻讀

幻讀: select 某記錄是否存在,不存在,準備插入此記錄,但執行 insert 時發現此記錄已存在,無法插入,
此時就發生了幻讀

將事務隔離級別設置到最高 SERIALIZABLE ,以擋住幻讀的發生
如果一個事務,使用了SERIALIZABLE——可串行化隔離級別時,在這個事務沒有被提交之前 , 其他的線程,只能等到當前操作完成之后,才能進行操作,這樣會非常耗時,而且,影響數據庫的性能,數據庫不會使用這種隔離級別

外鍵約束

  • 外鍵指的是在 從表中與主表的主鍵對應的那個字段
  • 使用外鍵約束可以讓兩張表之間產生一個對應關系,從而保證主從表的引用的完整性
創建外鍵約束

新建表時添加外鍵

[CONSTRAINT] [外鍵約束名稱] FOREIGN KEY(外鍵字段名) REFERENCES 主表名(主鍵字段名)

已有表添加外鍵

ALTER TABLE 從表 ADD [CONSTRAINT] [外鍵約束名稱] FOREIGN KEY (外鍵字段名) REFERENCES 主表(主鍵字段名)
刪除外鍵約束
alter table 從表 drop foreign key 外鍵約束名稱
外鍵約束的注意事項
  • 從表外鍵類型必須與主表主鍵類型一致 否則創建失敗
  • 添加數據時, 應該先添加主表中的數據
  • 刪除數據時,應該先刪除從表中的數據

級聯刪除操作
如果想實現刪除主表數據的同時,也刪除掉從表數據,可以使用級聯刪除操作

級聯刪除
ON DELETE CASCADE-- 重新創建添加級聯操作
CREATE TABLE employee(
eid INT PRIMARY KEY AUTO_INCREMENT,
ename VARCHAR(20),
age INT,
dept_id INT,
CONSTRAINT emp_dept_fk FOREIGN KEY(dept_id) REFERENCES department(id)
-- 添加級聯刪除
ON DELETE CASCADE
);

多表查詢分類

內連接查詢

內連接的特點:
通過指定的條件去匹配兩張表中的數據, 匹配上就顯示,匹配不上就不顯示
比如通過: 從表的外鍵 = 主表的主鍵 方式去匹配

隱式內鏈接
from子句,后面直接寫多個表名,使用where制定連接條件,這種連接方式是隱式內鏈接,使用where條件清除無用的數據

SELECT 字段名 FROM 左表, 右表 WHERE 連接條件;

顯式內鏈接
使用inner、join…on這種方式

SELECT 字段名 FROM 左表 [INNER] JOIN 右表 ON 條件
-- inner 可以省略
外連接查詢

左外連接
左外連接 , 使用 LEFT OUTER JOIN , OUTER 可以省略

左外連接的特點:

  • 以左表為基準,匹配右邊表中的數據;如果匹配上,就展示匹配到的數據
  • 如果匹配不到,左表中的數據正常展示,右邊展示null
SELECT 字段名 FROM 左表 LEFT [OUTER] JOIN 右表 ON 條件

右外連接
右外連接 , 使用 RIGHT OUTER JOIN , OUTER 可以省略

右外連接的特點:

  • 以右表為基準,匹配左邊表中的數據,如果能匹配到,展示匹配到的數據
  • 如果匹配不到,右表中的數據正常展示,左邊展示為null
SELECT 字段名 FROM 左表 RIGHT [OUTER ]JOIN 右表 ON 條件
各種連接方式的總結

在這里插入圖片描述
內連接: inner join , 只獲取兩張表中 交集部分的數據.
左外連接: left join , 以左表為基準 ,查詢左表的所有數據, 以及與右表有交集的部分
右外連接: right join , 以右表為基準,查詢右表的所有的數據,以及與左表有交集的部分

子查詢

子查詢的概念:
一條select 查詢語句的結果, 作為另一條 select 語句的一部分

子查詢的特點

  • 子查詢必須在小括號中
  • 子查詢一般作為父查詢的查詢條件使用

子查詢常見分類

  • where型子查詢:將子查詢的結果,作為父查詢的比較條件
  • from型子查詢:將子查詢的結果,作為一張表提供給父層查詢使用
  • exists型子查詢:子查詢的結果是單列多行,類似一個數組,父層查詢使用IN 函數 ,包含子查詢的結果
子查詢的結果作為查詢條件
SELECT 查詢字段 FROMWHERE 字段=(子查詢);
子查詢的結果作為一張表
SELECT 查詢字段 FROM (子查詢)表別名 WHERE 條件;
-- 1. 先查詢分類表的數據
SELECT * FROM category;
-- 2.將上面的查詢語句 作為一張表使用
SELECT
p.`pname`,
p.`price`,
c.cname
FROM products p
-- 子查詢作為一張表使用時 要起別名 才能訪問表中字段
INNER JOIN (SELECT * FROM category) c
ON p.`category_id` = c.cid WHERE p.`price` > 500;
子查詢結果是單列多行
SELECT 查詢字段 FROMWHERE 字段 IN (子查詢);
# 查詢家電類 與 鞋服類下面的全部商品信息
-- 先查詢出家電與鞋服類的 分類ID
SELECT cid FROM category WHERE cname IN ('家電','鞋服');
-- 根據cid 查詢分類下的商品信息
SELECT * FROM products
WHERE category_id IN (SELECT cid FROM category WHERE cname IN ('家電','鞋服'));
子查詢總結
  1. 子查詢如果查出的是一個字段(單列), 那就在where后面作為條件使用.
  2. 子查詢如果查詢出的是多個字段(多列), 就當做一張表使用(要起別名).

數據庫設計

三范式

第一范式

概念:
原子性, 做到列不可拆分
第一范式是最基本的范式。數據庫表里面字段都是單一屬性的,不可再分, 如果數據表中每個字段都是不可再分的最小數據單元,則滿足第一范式。

第二范式

概念:
在第一范式的基礎上更進一步,目標是確保表中的每列都和主鍵相關。
一張表只能描述一件事.

第三范式

概念:
消除傳遞依賴
表的信息,如果能夠被推導出來,就不應該單獨的設計一個字段來存放

數據庫反三范式

反范式化指的是通過增加冗余或重復的數據來提高數據庫的讀性能
浪費存儲空間,節省查詢時間 (以空間換時間)

什么是冗余字段?
設計數據庫時,某一個字段屬于一張表,但它同時出現在另一個或多個表,且完全等同于它在其本來所屬表的意義表示,那么這個字段就是一個冗余字段

總結:
創建一個關系型數據庫設計,我們有兩種選擇
1,盡量遵循范式理論的規約,盡可能少的冗余字段,讓數據庫設計看起來精致、優雅、讓人心醉。
2,合理的加入冗余字段這個潤滑劑,減少join,讓數據庫執行性能更高更快。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/pingmian/83770.shtml
繁體地址,請注明出處:http://hk.pswp.cn/pingmian/83770.shtml
英文地址,請注明出處:http://en.pswp.cn/pingmian/83770.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

美國大休斯頓都會區電網數據

美國大休斯頓都會區&#xff08;Houston-The Woodlands-Sugar Land Metropolitan Area&#xff09;電網數據。數據包括&#xff1a;發電、輸電、變電、配電。而且配電線路也很完善&#xff01;下面是截圖&#xff1a; 輸電線路 配電線路 變電站 開關站 電廠

信創主機性能測試實例(升騰P860)

文章目錄 一、引言二、基準測試&#xff08;Unixbench &#xff09;三、CPU測試&#xff08;SPEC CPU 2006&#xff09;四、GPU測試&#xff08;Glmark2&#xff09;五、IO測試&#xff08;Iozone &#xff09;六、內存基準測試&#xff08;Stream &#xff09;七、網絡性能基準…

Web前端基礎:HTML-CSS

1.標題 1.1標題排版 超鏈接 a 標簽&#xff1a; 標簽&#xff1a;<a href"....." target".....">央視網</a> 屬性&#xff1a; href: 指定資源訪問的urltarget: 指定在何處打開資源鏈接 _self: 默認值&#xff0c;在當前頁面打開_blank: 在…

Python數學可視化:3D參數曲面與隱式曲面繪制技術

Python數學可視化&#xff1a;3D參數曲面與隱式曲面繪制技術 引言 在科學研究、工程設計和數學教學中&#xff0c;3D可視化技術是理解復雜幾何形狀和空間關系的重要工具。本文將介紹如何使用Python實現參數曲面和隱式曲面的3D可視化&#xff0c;通過數學公式和代碼示例展示球…

傳輸層:udp與tcp協議

目錄 再談端口號 端口號范圍劃分 認識知名端口號(Well-Know Port Number) 兩個問題 netstat pidof 如何學習下三層協議 UDP協議 UDP協議端格式 UDP的特點 面向數據報 UDP的緩沖區 UDP使用注意事項 基于UDP的應用層協議 TCP協議 TCP協議段格式 1.源端口號…

java 實現excel文件轉pdf | 無水印 | 無限制

文章目錄 目錄 文章目錄 前言 1.項目遠程倉庫配置 2.pom文件引入相關依賴 3.代碼破解 二、Excel轉PDF 1.代碼實現 2.Aspose.License.xml 授權文件 總結 前言 java處理excel轉pdf一直沒找到什么好用的免費jar包工具,自己手寫的難度,恐怕高級程序員花費一年的事件,也…

Keil調試模式下,排查程序崩潰簡述

在Keil調試模式下&#xff0c;若程序崩潰&#xff0c;可以通過以下步驟來定位崩潰的位置&#xff1a; 一、查看調用棧&#xff08;Call Stack&#xff09; 打開調用棧窗口&#xff1a; 在Keil的調試模式下&#xff0c;點擊菜單欄的“View” -> “Call Stack Window”&…

深度解析Mysql中MVCC的工作機制

MVCC,多版本并發控制 定義&#xff1a;維護一個數據的多個版本&#xff0c;使讀寫操作沒有沖突&#xff0c;依賴于&#xff1a;隱藏字段&#xff0c;undo log日志&#xff0c;readView MVCC會為每條版本記錄保存三個隱藏字段 DB_TRX_ID: 記錄最近插入或修改該記錄的事務IDDB_R…

uniapp+vue3實現CK通信協議(基于jjc-tcpTools)

1. TCP 服務封裝 (tcpService.js) export class TcpService {constructor() {this.connections uni.requireNativePlugin(jjc-tcpTools)this.clients new Map() // 存儲客戶端連接this.servers new Map() // 存儲服務端實例}// 創建 TCP 服務端 (字符串模式)createStringSe…

學習設計模式《十二》——命令模式

一、基礎概念 命令模式的本質是【封裝請求】命令模式的關鍵是把請求封裝成為命令對象&#xff0c;然后就可以對這個命令對象進行一系列的處理&#xff08;如&#xff1a;參數化配置、可撤銷操作、宏命令、隊列請求、日志請求等&#xff09;。 命令模式的定義&#xff1a;將一個…

Webpack的基本使用 - babel

Mode配置 Mode配置選項可以告知Webpack使用相應模式的內置優化 默認值是production&#xff08;什么都不設置的情況下&#xff09; 可選值有&#xff1a;none | development | production; 這幾個選項有什么區別呢&#xff1f; 認識source-map 我們的代碼通常運行在瀏覽器…

「基于連續小波變換(CWT)和卷積神經網絡(CNN)的心律失常分類算法——ECG信號處理-第十五課」2025年6月6日

一、引言 心律失常是心血管疾病的重要表現形式&#xff0c;其準確分類對臨床診斷具有關鍵意義。傳統的心律失常分類方法主要依賴于人工特征提取和經典機器學習算法&#xff0c;但這些方法往往受限于特征選擇的主觀性和模型的泛化能力。 隨著深度學習技術的發展&#xff0c;基于…

C++.OpenGL (11/64)材質(Materials)

材質(Materials) 真實感材質系統 #mermaid-svg-NjBjrmlcpHupHCFQ {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-NjBjrmlcpHupHCFQ .error-icon{fill:#552222;}#mermaid-svg-NjBjrmlcpHupHCFQ .error-text{fill:…

P1345 [USACO5.4] 奶牛的電信Telecowmunication

P1345 [USACO5.4] 奶牛的電信Telecowmunication 突然發現 USACO 好喜歡玩諧音梗。 題意就是給定一個無向圖&#xff0c;問你要刪多少點才能使 s , t s,t s,t 不連通。 注意是刪點而不是刪邊&#xff0c;所以不能直接使用最小割來求。所以考慮變換一下題目模型。 經典 tric…

EXCEL如何快速批量給兩字姓名中間加空格

EXCEL如何快速批量給姓名中間加空格 優點&#xff1a;不會導致排版混亂 缺點&#xff1a;無法輸出在原有單元格上&#xff0c;若需要保留原始數據&#xff0c;可將公式結果復制后“選擇性粘貼為值” 使用場景&#xff1a;在EXCEL中想要快速批量給兩字姓名中間加入空格使姓名對…

使用vtk8.2.0加載dicom圖像

1 上一篇文章我們已經編譯好了VTK的dll&#xff0c;下面我們就來加載他。 2 在Pro里面加載dll #------------------------------------------------- # # Project created by QtCreator 2024-02-04T14:39:07 # #-------------------------------------------------QT …

使用vsftpd搭建FTP服務器(TLS/SSL顯式加密)

安裝vsftpd服務 使用vsftpd RPM安裝包安裝即可&#xff0c;如果可以訪問YUM鏡像源&#xff0c;通過dnf或者yum工具更加方便。 yum -y install vsftpd 啟動vsftpd、查看服務狀態 systemctl enable vsftpd systemctl start vsftpd systemctl status vsftpd 備份配置文件并進…

鴻蒙OSUniApp集成WebGL:打造跨平臺3D視覺盛宴#三方框架 #Uniapp

UniApp集成WebGL&#xff1a;打造跨平臺3D視覺盛宴 在移動應用開發日新月異的今天&#xff0c;3D視覺效果已經成為提升用戶體驗的重要手段。本文將深入探討如何在UniApp中集成WebGL技術&#xff0c;實現炫酷的3D特效&#xff0c;并特別關注鴻蒙系統(HarmonyOS)的適配與優化。 …

前端文件下載常用方式詳解

在前端開發中&#xff0c;實現文件下載是常見的需求。根據不同的場景&#xff0c;我們可以選擇不同的方法來實現文件流的下載。本文介紹三種常用的文件下載方式&#xff1a; 使用 axios 發送 JSON 請求下載文件流使用 axios 發送 FormData 請求下載文件流使用原生 form 表單提…

MacOS解決局域網“沒有到達主機的路由 no route to host“

可能原因&#xff1a;MacOS 15新增了"本地網絡"訪問權限&#xff0c;在 APP 第一次嘗試訪問本地網絡的時候會請求權限&#xff0c;可能順手選擇了關閉。 解決辦法&#xff1a;給想要訪問本地網絡的 APP &#xff08;例如 terminal、Navicat、Ftp&#xff09;添加訪問…