[MySQL]數據庫表內容的增刪查改操作大全

目錄

一、增加表數據

1.全列插入與指定列插入

2.多行數據插入?

3.更新與替換插入

二、查看表數據

1.全列查詢與指定列查詢

2.查詢表達式字段

?3.為查詢結果起別名

4.結果去重

5.WHERE條件

6.結果排序

7.篩選分頁結果?

?8.插入查詢的結果

9.group by子句

三、修改表數據

四、刪除與截斷表數據


一、增加表數據

語法:INSERT [INTO] table_name [column , column...] VALUES (value_list) [ ,(value_list)];

mysql> create table students (-> id int unsigned primary key auto_increment,-> number int not null unique comment '學號',-> name varchar(20) not null,-> telephone char(11) -> );
Query OK, 0 rows affected (0.05 sec)

1.全列插入與指定列插入

? ? ? ? value_list的數量必須和表中定義的字段數量一樣的時候,才屬于全列插入,才可以省略指定插入元素的部分。因為我們設置了自增屬性,所以可以不用給id設定值,但是這樣的話,就不屬于全列插入了就必須指定插入的字段是哪些了。

//全列插入
insert into students values(1, 202501, '張三', '15812345678');//指定列插入
insert into students (number, name, telephone) values(202503, '王五', '17712345678');

2.多行數據插入?

? ? ? ? 在插入數據的時候也可以同時插入多條數據,對于多行數據的插入也滿足全列插入與指定列插入的規則。

//全列多行插入
insert into students values(4, 202504, '趙六', '12312345678'), (5, 202505, '田七', '12345656789');//指定列多行插入
insert into students (number, name, telephone) values(202506, '你好', '12312345678'), (202507, '哈哈', '12345656789');

3.更新與替換插入

更新語法:ON DUPLICATE KEY UPDATE

替換語法:REPLACE

? ? ? ? 因為一般表中都會有主鍵和唯一鍵的約束,那么我們在插入的時候如果出現唯一鍵和主鍵沖突的情況就會插入失敗,那么如果我們就想插入呢,那么可以使用更新或者替換語句,將數據更新成我們新插入的,或者整個替換一下。

mysql> insert into students (id, number, name) values(1, 202501, '北顧') on duplicate key update number=202510, name = '北顧';
Query OK, 2 rows affected (0.00 sec)mysql> select * from students;
+----+--------+--------+-------------+
| id | number | name   | telephone   |
+----+--------+--------+-------------+
|  1 | 202510 | 北顧   | 15812345678 |
|  2 | 202502 | 李四   | 17712345678 |
|  3 | 202503 | 王五   | 17712345678 |
|  4 | 202504 | 趙六   | 12312345678 |
|  5 | 202505 | 田七   | 12345656789 |
|  6 | 202506 | 你好   | 12312345678 |
|  7 | 202507 | 哈哈   | 12345656789 |
+----+--------+--------+-------------+
7 rows in set (0.00 sec)

? ? ? ? 上面的代碼為插入否則更新的操作,?先使用insert插入數據,如果說遇到主鍵或者唯一鍵的沖突而導致的插入失敗的時候,可以執行duplicate key update進行數據的更新操作。

? ? ? ? 如圖可以看到返回值發生了變化,如果說插入的數據有沖突的但是沖突的數據和原數據是一樣的那么就相當于不做任何操作,返回0;如果說沒有數據沖突的話,直接插入返回1;如果有數據沖突,并執行了數據更新操作的話,就返回2。

mysql> replace into students (number, name) value(202510, 'hello');
Query OK, 2 rows affected (0.01 sec)mysql> select * from students;
+----+---------+--------+-------------+
| id | number  | name   | telephone   |
+----+---------+--------+-------------+
|  2 |  202502 | 李四   | 17712345678 |
|  3 |  202503 | 王五   | 17712345678 |
|  4 |  202504 | 趙六   | 12312345678 |
|  5 |  202505 | 田七   | 12345656789 |
|  6 |  202506 | 你好   | 12312345678 |
|  7 |  202507 | 哈哈   | 12345656789 |
|  8 |  202510 | hello  | NULL        |
+----+---------+--------+-------------+
9 rows in set (0.00 sec)

? ? ? ? 上面的代碼則是替換代碼,他的操作是如果沒有沖突那么就直接插入并返回1,如果有沖突大的話,他會先刪除沖突數據,然后再重新插入并返回2。?

二、查看表數據

1.全列查詢與指定列查詢

SELECT [column, column] FROM table_name;

? ? ? ? 當column不指定且設置為*的時候,就是全列查詢了,但是一般不建議使用全列查詢,因為查詢的列越多,意味著需要傳輸的數據量就越大,會影響效率。對于指定列查詢輸入的字段名稱不需要和定義的時候順序一樣,select關鍵字的作用相當于是打印,而我們定義打印什么他就會顯示什么,定義什么順序顯示,他就會按什么順序顯示。

2.查詢表達式字段

? ? ? ? 上述也說了select是一個起到一個打印顯示的作用,而column from table_name,才是指定打印的內容,那么打印的內容可不可以不是表中的呢?或者打印的字段可以不可以是表達式呢?打印的字段可不可以用表中的字段作為參數的表達式呢?

mysql> create table exam (-> id int unsigned primary key auto_increment,-> name varchar(20) not null,-> chinese float default 0.0,-> math float default 0.0,-> english float default 0.0-> );
Query OK, 0 rows affected (0.05 sec)mysql> insert into exam (name, chinese, math, english) values -> ('張三', 67, 65, 86),-> ('李四', 98, 56, 84),-> ('王五', 76, 45, 97),-> ('趙六', 99, 43, 91);
Query OK, 4 rows affected (0.00 sec)
Records: 4  Duplicates: 0  Warnings: 0//顯示非表中的數據
mysql> select 10;
+----+
| 10 |
+----+
| 10 |
+----+
1 row in set (0.00 sec)//顯示表達式數據
mysql> select 10 + 20;
+---------+
| 10 + 20 |
+---------+
|      30 |
+---------+
1 row in set (0.00 sec)//顯示表中數據為參數的表達式數據
mysql> select id + 10 from exam;
+---------+
| id + 10 |
+---------+
|      11 |
|      12 |
|      13 |
|      14 |
+---------+
4 rows in set (0.00 sec)

?3.為查詢結果起別名

語法:SELECT column [AS] alias_name [...] FROM table_name;

mysql> select 10 + 20 as '總數';
+--------+
| 總數   |
+--------+
|     30 |
+--------+
1 row in set (0.00 sec)mysql> select id, name, chinese + math + english as '總分' from exam;
+----+--------+--------+
| id | name   | 總分   |
+----+--------+--------+
|  1 | 張三   |    218 |
|  2 | 李四   |    238 |
|  3 | 王五   |    218 |
|  4 | 趙六   |    233 |
+----+--------+--------+
4 rows in set (0.00 sec)

4.結果去重

語法: SELECT DISTINCT column FROM table_name;

5.WHERE條件

比較運算符
運算符說明
>, >=, <, <=沒有什么特殊含義,就是單純的比較
=等于,
<=>等于
!=, <>不等于

BETWEEN x1 AND x2

進行范圍匹配,如果一個數值再[x1, x2]之間,那么就返回true
IN (option, ...)如果是option中的一個,那么就返回ture
IS NULL是NULL
IS NOT NULL不是NULL
LIKE模糊匹配。 %表示任意多個任意字符;_表示任意一個字符
邏輯運算符
運算符說明
AND多個條件都必須滿足才返回true
OR任意滿足一個條件返回true
NOT滿足條件的時候,返回false,相當于匹配不是該條件的內容

?下面是操作符的一些使用案例:

基本比較的使用

mysql> select * from exam;
+----+--------+---------+------+---------+
| id | name   | chinese | math | english |
+----+--------+---------+------+---------+
|  1 | 張三   |      67 |   65 |      86 |
|  2 | 李四   |      98 |   56 |      84 |
|  3 | 王五   |      76 |   45 |      97 |
|  4 | 趙六   |      99 |   43 |      91 |
+----+--------+---------+------+---------+
4 rows in set (0.00 sec)mysql> select id, name, math from exam where math < 60;
+----+--------+------+
| id | name   | math |
+----+--------+------+
|  2 | 李四   |   56 |
|  3 | 王五   |   45 |
|  4 | 趙六   |   43 |
+----+--------+------+
3 rows in set (0.00 sec)

AND與BETWENN AND的使用

//查詢語文分數再80到100之間的同學
mysql> select id, name, chinese from exam where chinese >= 80 and chinese <= 100;
+----+--------+---------+
| id | name   | chinese |
+----+--------+---------+
|  2 | 李四   |      98 |
|  4 | 趙六   |      99 |
+----+--------+---------+
2 rows in set (0.00 sec)mysql> select id, name, chinese from exam where chinese between 80 and 100;
+----+--------+---------+
| id | name   | chinese |
+----+--------+---------+
|  2 | 李四   |      98 |
|  4 | 趙六   |      99 |
+----+--------+---------+
2 rows in set (0.00 sec)

OR與IN的使用

//查詢英語分數為86或97的同學
mysql> select id, name, english from exam where english=86 or english=97;
+----+--------+---------+
| id | name   | english |
+----+--------+---------+
|  1 | 張三   |      86 |
|  3 | 王五   |      97 |
+----+--------+---------+
2 rows in set (0.00 sec)mysql> select id, name, english from exam where english in(86, 97);
+----+--------+---------+
| id | name   | english |
+----+--------+---------+
|  1 | 張三   |      86 |
|  3 | 王五   |      97 |
+----+--------+---------+
2 rows in set (0.00 sec)

LIKE的使用

//查詢姓張和姓王的同學
mysql> select id, name from exam where name like '張%' or name like '王%';
+----+--------+
| id | name   |
+----+--------+
|  1 | 張三   |
|  3 | 王五   |
+----+--------+
2 rows in set (0.00 sec)mysql> insert into exam values(5, '張文強', 98, 90, 79);
Query OK, 1 row affected (0.01 sec)//查詢名字為2個字,還性張的同學
mysql> select id, name from exam where name like '張_';
+----+--------+
| id | name   |
+----+--------+
|  1 | 張三   |
+----+--------+
1 row in set (0.00 sec)

?where與表達式混合使用

//總分大于230的同學
mysql> select id, name, chinese + math + english as '總分' from exam where chinese + math + english > 230;
+----+-----------+--------+
| id | name      | 總分   |
+----+-----------+--------+
|  2 | 李四      |    238 |
|  4 | 趙六      |    233 |
|  5 | 田七      |    231 |
|  6 | 張文強    |    267 |
+----+-----------+--------+
4 rows in set (0.00 sec)

AND與NOT混合使用

//語文分數大于90,不是不姓李的同學
mysql> select name, chinese from exam where chinese > 90 and name not like '李_';
+-----------+---------+
| name      | chinese |
+-----------+---------+
| 趙六      |      99 |
| 田七      |      92 |
| 張文強    |      98 |
+-----------+---------+
3 rows in set (0.00 sec)

=和<=>的區別

? ? ? ? 兩者都是判斷兩個值是否相等的,但是第一個屬于非安全的,如果用NULL去和任意值就行比較的話,都會返回NULL,因為MySQL中對于NULL代表的是未知的值,所以說比較的時候結果也是未知的。而<=>的話能處理NULL值的比較,會把NULL當作一個值來看待,如果都是NULL就返回1,不是返回0。

6.結果排序

語法:SELECT ... FROM table_name ... ORDER BY column [ASC|DESC], [...];

使用案例:select * from tset_table order by xxxx;

? ? ? ? 操作是將select選出的顯示數據,按照column數據的值進行升序或者降序排列顯示,ASC是默認值,表示升序,DESC表示降序。對于NULL的話,看作比任何數據都小的一個值。還可以進行多段排序規則的定義,如果兩個數值相等,那么第一個排序規則就無法排序,就會繼續按照第二個排序規則繼續排序了。

mysql> insert into exam values(7, '哈哈', 98, 77, 79);
Query OK, 1 row affected (0.01 sec)mysql> insert into exam values(8, '王強', NULL, 79, 59);
Query OK, 1 row affected (0.01 sec)//語文按照降序,數學按照升序排列
mysql> select * from exam order by chinese desc, math;
+----+-----------+---------+------+---------+
| id | name      | chinese | math | english |
+----+-----------+---------+------+---------+
|  4 | 趙六      |      99 |   43 |      91 |
|  2 | 李四      |      98 |   56 |      84 |
|  7 | 哈哈      |      98 |   77 |      79 |
|  6 | 張文強    |      98 |   90 |      79 |
|  5 | 田七      |      92 |   60 |      79 |
|  3 | 王五      |      76 |   45 |      97 |
|  1 | 張三      |      67 |   65 |      86 |
|  8 | 王強      |    NULL |   79 |      59 |
+----+-----------+---------+------+---------+
8 rows in set (0.00 sec)//排序總分, order by中可以使用列名稱的別名
mysql> select id, name, chinese + math + english as 總分 from exam order by 總分 desc;
+----+-----------+--------+
| id | name      | 總分   |
+----+-----------+--------+
|  6 | 張文強    |    267 |
|  7 | 哈哈      |    254 |
|  2 | 李四      |    238 |
|  4 | 趙六      |    233 |
|  5 | 田七      |    231 |
|  1 | 張三      |    218 |
|  3 | 王五      |    218 |
|  8 | 王強      |   NULL |
+----+-----------+--------+
8 rows in set (0.00 sec)

7.篩選分頁結果?

//從0開始篩選n條結果

SELECT ... FROM table_name [...]? LIMIT n;

//從s開始篩選n條結果

SELECT ... FROM table_name [...]? LIMIT s, n;

SELECT ... FROM table_name [...]? LIMIT n OFFSET S;

? ? ? ? 在對未知的表就行查詢顯示的時候,最好加上LIMIT,避免表中大的數據量過大,查詢全表導致數據庫卡頓。如果查詢的數據不夠n個的話不會有任何的影響。

mysql> select * from exam limit 3;
+----+--------+---------+------+---------+
| id | name   | chinese | math | english |
+----+--------+---------+------+---------+
|  1 | 張三   |      67 |   65 |      86 |
|  2 | 李四   |      98 |   56 |      84 |
|  3 | 王五   |      76 |   45 |      97 |
+----+--------+---------+------+---------+
3 rows in set (0.00 sec)mysql> select * from exam limit 3, 3;
+----+-----------+---------+------+---------+
| id | name      | chinese | math | english |
+----+-----------+---------+------+---------+
|  4 | 趙六      |      99 |   43 |      91 |
|  5 | 田七      |      92 |   60 |      79 |
|  6 | 張文強    |      98 |   90 |      79 |
+----+-----------+---------+------+---------+
3 rows in set (0.00 sec)mysql> select * from exam limit 6, 3;
+----+--------+---------+------+---------+
| id | name   | chinese | math | english |
+----+--------+---------+------+---------+
|  7 | 哈哈   |      98 |   77 |      79 |
|  8 | 王強   |    NULL |   79 |      59 |
+----+--------+---------+------+---------+
2 rows in set (0.00 sec)mysql> 

?8.插入查詢的結果

mysql> create table exam_zhang (-> id int unsigned primary key auto_increment,-> name varchar(20) not null,-> chinese float default 0.0,-> math float default 0.0,-> english float default 0.0-> );
Query OK, 0 rows affected (0.05 sec)mysql> insert into exam_zhang select distinct * from exam where name like '張%';
Query OK, 2 rows affected (0.00 sec)
Records: 2  Duplicates: 0  Warnings: 0mysql> select * from exam_zhang;
+----+-----------+---------+------+---------+
| id | name      | chinese | math | english |
+----+-----------+---------+------+---------+
|  1 | 張三      |     100 |  130 |     116 |
|  6 | 張文強    |      98 |  120 |     109 |
+----+-----------+---------+------+---------+
2 rows in set (0.01 sec)

9.group by子句

? ? ? ? 使用該子句可以將指定的列進行分組查詢,對于使用分組查詢的時候,select顯示的列必須是出現在group by子句中,或者說是聚合函數才可以。

mysql> create table student (-> class_id int not null,-> name varchar(10) not null,-> score float default 0.0-> );
Query OK, 0 rows affected (0.03 sec)mysql> insert into student values  -> (1, '張三', 98.7),-> (1, '李四', 97.2),-> (1, '王五', 88.6),-> (2, '趙六', 79.4),-> (2, '田七', 99.9),-> (2, '王強', 50.4);
Query OK, 6 rows affected (0.01 sec)
Records: 6  Duplicates: 0  Warnings: 0//查看每個班級的最高分
mysql> select class_id, max(score) from student group by class_id;
+----------+------------+
| class_id | max(score) |
+----------+------------+
|        1 |       98.7 |
|        2 |       99.9 |
+----------+------------+
2 rows in set (0.00 sec)//必須是聚合函數,或者是group by里出現的列
mysql> select class_id, name, max(score) from student group by class_id;
ERROR 1055 (42000): Expression #2 of SELECT list is not in GROUP BY clause and contains nonaggregated column 'test.student.name' which is not functionally dependent on columns in GROUP BY clause; this is incompatible with sql_mode=only_full_group_by

三、修改表數據

語法:UPDATE table_name SET column=xx [, column=xx, ...] [WHERE ...];

//將總分最高的前三名英語成績提供30分
mysql> select name, english, math+chinese+english as 總分 from exam order by 總分 desc limit 3;
+-----------+---------+--------+
| name      | english | 總分   |
+-----------+---------+--------+
| 張三      |      86 |    286 |
| 張文強    |      79 |    267 |
| 哈哈      |      79 |    254 |
+-----------+---------+--------+
3 rows in set (0.00 sec)mysql> update exam set english = english + 30 order by math+english+chinese desc limit 3;
Query OK, 3 rows affected (0.01 sec)
Rows matched: 3  Changed: 3  Warnings: 0mysql> select name, english, math+chinese+english as 總分 from exam order by 總分 desc limit 3;
+-----------+---------+--------+
| name      | english | 總分   |
+-----------+---------+--------+
| 張三      |     116 |    316 |
| 張文強    |     109 |    297 |
| 哈哈      |     109 |    284 |
+-----------+---------+-------//全列更改--非常不建議這樣做
mysql> update exam set math = math + 30;
Query OK, 8 rows affected (0.00 sec)
Rows matched: 8  Changed: 8  Warnings: 0

四、刪除與截斷表數據

刪除語法:DELETE FROM table_name [....];

? ? ? ? 如果說不加任何范圍選擇條件的話,那么就相當于是刪除整個表數據的操作了。? ? ?

截斷語法:TRUNCATE [TABLE] table_name;

? ? ? ? 對于刪除操作來說,是將表單個或者多個數據進行刪除,而截斷則是對整個表進行操作,會將整個表數據都清除。這樣的話可以通過釋放表的存儲空間來實現清空表的操作,而DELETE語句需要逐行刪除記錄,并且會記錄每一行的刪除操作到日志中。所以會比DELETE快很多。

????????如果表中有自增列,操作會將自增列的值重置為初始值(通常是 1)。而DELETE語句不會重置自增列的值。還有不可滾回和不處罰觸發器的特點,以后在講述。

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

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

相關文章

在 Windows 11 中為 SMB 3.x 文件共享協議提供 RDMA 支持

注&#xff1a;機翻&#xff0c;未校。 Enable SMB Direct in Windows 11 在 Windows 11 中啟用 SMB Direct Provides RDMA support for the SMB 3.x file sharing protocol 為 SMB 3.x 文件共享協議提供 RDMA 支持 Vigneshwaran Vijayakumar November 3, 2024 Last Updat…

electron打包客戶端在rk3588上支持h265硬解

目錄 前言 chromium是如何支持h265硬解 electron/chromium第一次編譯 electron/chromium第二次編譯 前言 我們的客戶端程序是用electron打包的前端程序&#xff0c;其在rk3588主機上的linux環境運行。之前使用客戶端查看h264編碼的視頻直播是沒有問題的&#xff0c;但視頻源…

什么是網絡爬蟲?Python爬蟲到底怎么學?

最近我在研究 Python 網絡爬蟲&#xff0c;發現這玩意兒真是有趣&#xff0c;干脆和大家聊聊我的心得吧&#xff01;咱們都知道&#xff0c;網絡上的信息多得就像大海里的水&#xff0c;而網絡爬蟲就像一個勤勞的小礦工&#xff0c;能幫我們從這片浩瀚的信息海洋中挖掘出需要的…

【Jave全棧】Java與JavaScript比較

文章目錄 前言一、Java1、 歷史與背景2、語言特點3、應用場景4、生態系統 二、JavaScript1、歷史與背景2、語言特點3、應用場景4、 生態系統 三、相同點四、不同點1、語言類型2、用途3、語法和結構4、性能5、生態系統6、開發模式 前言 Java和JavaScript是兩種不同的編程語言&a…

GitCode 助力 AutoTable:共創 MyBatis 生態的自動表格管理新篇章

項目倉庫https://gitcode.com/dromara/auto-table 解放雙手&#xff0c;專注業務&#xff1a;MyBatis 生態的“自動表格”創新 AutoTable 是一款致力于為 MyBatis 生態賦予“自動表格”功能的創新插件。其核心理念是通過 Java 實體類自動生成和維護數據庫的表結構&#xff0c…

【MCU】DFU、IAP、OTA

我發現很多人把幾個概念都學混了&#xff0c;只記得一個升級了 DFU DFU (device firmware update)是指的 USB DFU&#xff0c;這個是 USB 的一個機制&#xff0c;可以升級設備的固件&#xff0c;可以去 USB-IF 查看規范文件。 OTA 全稱為 Over-the-air update&#xff0c;利…

ThinkPHP 8 操作JSON數據

【圖書介紹】《ThinkPHP 8高效構建Web應用》-CSDN博客 《2025新書 ThinkPHP 8高效構建Web應用 編程與應用開發叢書 夏磊 清華大學出版社教材書籍 9787302678236 ThinkPHP 8高效構建Web應用》【摘要 書評 試讀】- 京東圖書 使用VS Code開發ThinkPHP項目-CSDN博客 編程與應用開…

GD32F303 GCC 環境搭建

一、引言 在嵌入式開發領域&#xff0c;GD32F303 微控制器以其出色的性能和豐富的功能被廣泛應用。為了充分發揮其潛力&#xff0c;搭建一個高效的開發環境并深入理解項目構建過程至關重要。本文將詳細介紹如何基于 GCC 工具鏈搭建 GD32F303 的開發環境&#xff0c;重點聚焦于…

【C++】詳細講解繼承(下)

本篇來繼續說說繼承。上篇可移步至【C】詳細講解繼承&#xff08;上&#xff09; 1.繼承與友元 友元關系不能繼承 &#xff0c;也就是說基類友元不能訪問派?類私有和保護成員。 class Student;//前置聲明class Same //基類 { public:friend void Fun(const Same& p, con…

考研機試題:今年的第幾天

描述 輸入年、月、日&#xff0c;計算該天是本年的第幾天。 輸入描述: 包括三個整數年(1<Y<3000)、月(1<M<12)、日(1<D<31)。 輸出描述: 輸入可能有多組測試數據&#xff0c;對于每一組測試數據&#xff0c; 輸出一個整數&#xff0c;代表Input中的年、…

解鎖羅技鍵盤新技能:輕松鎖定功能鍵(羅技K580)

在使用羅技鍵盤的過程中&#xff0c;你是否曾因 F11、F12 功能鍵的默認設置與實際需求不符而感到困擾&#xff1f; 別擔心&#xff0c;今天就為大家分享一個簡單實用的小技巧 —— 鎖定羅技鍵盤的 F11、F12 功能鍵&#xff0c;讓你的操作更加得心應手&#xff01; 通常情況下…

Flink把kafa數據寫入Doris的N種方法及對比。

用Flink+Doris來開發實時數倉,首要解決是如何接入kafka實時流,下面是參考Doris官方文檔和代碼,在自己項目開發的實踐中總結,包括一些容易踩坑的細節。 目錄 Routine Load方法 接入kafka實時數據 踩坑的問題細節 Flink Doris Connector方法 完整示例 Routine Load方法…

小識JVM堆內存管理的優化機制TLAB

JVM&#xff08;Java虛擬機&#xff09;在堆內存分配空間時&#xff0c;TLAB&#xff08;Thread Local Allocation Buffer&#xff0c;線程本地分配緩存區&#xff09;是一種重要的內存管理優化技術。以下是對TLAB的詳細解釋&#xff1a; 一、TLAB的定義 TLAB是JVM堆內存管理…

(開源)基于Django+Yolov8+Tensorflow的智能鳥類識別平臺

1 項目簡介&#xff08;開源地址在文章結尾&#xff09; 系統旨在為了幫助鳥類愛好者、學者、動物保護協會等群體更好的了解和保護鳥類動物。用戶群體可以通過平臺采集野外鳥類的保護動物照片和視頻&#xff0c;甄別分類、實況分析鳥類保護動物&#xff0c;與全世界各地的用戶&…

【力扣Hot 100】普通數組2

3. 輪轉數組 給定一個整數數組 nums&#xff0c;將數組中的元素向右輪轉 k **個位置&#xff0c;其中 k **是非負數。 示例 1: 輸入: nums [1,2,3,4,5,6,7], k 3 輸出:[5,6,7,1,2,3,4]解釋: 向右輪轉 1 步:[7,1,2,3,4,5,6] 向右輪轉 2 步:[6,7,1,2,3,4,5] 向右輪轉 3 步:[…

專題三_窮舉vs暴搜vs深搜vs回溯vs剪枝_全排列

dfs解決 全排列&子集 1.全排列 link:46. 全排列 - 力扣&#xff08;LeetCode&#xff09; 全局變量回溯 code class Solution { public:vector<vector<int>> ans;vector<int> cur;vector<bool> used;vector<vector<int>> permute…

2_高并發內存池_各層級的框架設計及ThreadCache(線程緩存)申請內存設計

一、高并發內存池框架設計 高并發池框架設計&#xff0c;特別是針對內存池的設計&#xff0c;需要充分考慮多線程環境下&#xff1a; 性能問題鎖競爭問題內存碎片問題 高并發內存池的整體框架設計旨在提高內存的申請和釋放效率&#xff0c;減少鎖競爭和內存碎片。 高并發內存…

JAVA 使用反射比較對象屬性的變化,記錄修改日志。使用注解【策略模式】,來進行不同屬性枚舉值到中英文描述的切換,支持前端國際化。

1.首先定義一個接口&#xff0c;接口中有兩個方法&#xff0c;分別是將屬性轉換成英文描述和中文描述。 其實就是將數據庫中記錄的 0 1 &#xff0c;轉換成后面的描述 這邊定義了中文轉換為默認方法&#xff0c;是因為有些屬性不需要進行中文轉換&#xff0c;或者該屬性的枚舉…

webrtc入門系列(五)amazon-kinesis-video-streams-webrtc-sdk-c編譯

《webrtc入門系列&#xff08;一&#xff09;easy_webrtc_server 入門環境搭建》 《webrtc入門系列&#xff08;二&#xff09;easy_webrtc_server 入門example測試》 《webrtc入門系列&#xff08;三&#xff09;云服務器coturn環境搭建》 《webrtc入門系列&#xff08;四&…

AIGC大模型詳解(ChatGPT,Cursor,豆包,文心一格)

定義與概念 AIGC&#xff08;AI Generated Content&#xff09;大模型是基于人工智能技術&#xff0c;具有海量參數、強大算力支持&#xff0c;能處理和生成多種類型內容的深度學習模型。可自主學習數據中的模式和規律&#xff0c;生成文本、圖像、音頻等內容&#xff0c;如Ch…