Hi H2/MySQL。
O
在Spring Boot使用H2/Mysql,並用Postman顯示API
KRs
- H2背景 100%
- 將原先使用H2的專案改成MySQL 100%
- Postman測試回傳 100%
- SQL語句 100%
H2 Database
可以被嵌入Java應用程式,記憶體中使用的RDS
1 | pom.xml選擇H2或手動添加並重新啟動應用 |
使用H2
http://localhost:9100/h2-console/
Create (POST)
Request (GET)
取得完整列表
照id取得Update (PUT)
Delete (DELETE)
改成MySQL
2.mysql> CREATE DATABASE ems;
3.pom.xml加入段落,並把jar放到External Libraries重啟
1 | <dependency> |
4.加入application.yml
SQL Server Management Studio (SSMS)
- 使用”+”連接字串,而在MySQL中,使用”CONCAT”或(”||”)
- 使用Transact-SQL(T-SQL)來定義儲存過程和觸發器,而MySQL使用類似於標準SQL的語法
- 使用”!=”或”<> “表示不等於,而MySQL僅使用”!=”
Table
View
索引是在資料庫中用於加速查詢和提高查詢效能的結構物件。
索引通常是根據特定欄位的值建立的,這些欄位通常在查詢中被用作條件或排序的基準。通過創建索引,資料庫系統可以快速定位到包含特定欄位值的資料頁面,從而加速查詢的執行。
View則是一種虛擬的表格,根據資料表或其他視圖的查詢結果動態生成的。視圖可以被視為虛擬資料表,可以像資料表一樣進行查詢,但實際上它不包含任何數據。它提供了一種方便的方式來查詢和使用資料表的子集或根據特定條件過濾資料。
索引和View在資料庫中有不同的用途和功能,索引用於加速查詢效能,而View用於簡化複雜的查詢和提供對資料的不同視角。
1 | CREATE VIEW EmployeesView |
Store procedures
1 | CREATE PROCEDURE GetCustomerOrders |
Oracle SQL
- 使用”LIKE”進行模式比較,MySQL使用”=”
- Oracle SQL使用序列(Sequence)來實現自增值列,MySQL使用”auto_increment”
- 使用”ROWNUM”連接字串,而MySQL使用”CONCAT”
- 使用”CREATE INDEX”或”CREATE UNIQUE INDEX”來創建索引,而MySQL使用”CREATE INDEX”
- 所有格company’s, 因為字串原本就包在2個單引號中, 要改成company’’s
優化
- 策略
- 聚集索引(Clustered Index):決定資料表的物理排序,每個資料表只能有一個聚集索引
- 非聚集索引(Non-clustered Index):提供快速查詢和排序,一個資料表可以有多個非聚集索引
- 使用正確的JOIN
- 使用正確型別
- 配置適當記憶體
時程: 2023/3/1- 2023/4/1
何時選擇 MyISAM?
- 讀取密集型應用: MyISAM 的讀取速度較快,適合用於讀取頻率遠大於寫入頻率的應用。
- 簡單的應用: 如果應用不需要事務、外鍵約束等高級功能, MyISAM 可以提供更簡單的管理。
- 小型資料庫: MyISAM 在小型資料庫中表現較好,佔用空間較小。
何時選擇 InnoDB?
- 複雜應用: InnoDB 支援事務、外鍵約束等高級功能,適合用於複雜的應用系統。
- 高併發應用: InnoDB 的行鎖機制可以有效減少鎖衝突,提高併發性能。
- 大型資料庫: InnoDB 在大型資料庫中表現穩定,具有更好的數據完整性。
SQL
如果你覺得這篇文章很棒,請你不吝點讚 (゚∀゚)