Lunski's Clutter

This is a place to put my clutters, no matter you like it or not, welcome here.

0%

H2 Database

Hi H2/MySQL。

O

在Spring Boot使用H2/Mysql,並用Postman顯示API

KRs

  1. H2背景 100%
  2. 將原先使用H2的專案改成MySQL 100%
  3. Postman測試回傳 100%
  4. SQL語句 100%

H2 Database

可以被嵌入Java應用程式,記憶體中使用的RDS

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
pom.xml選擇H2或手動添加並重新啟動應用

<dependency>
<groupId>com.h2database</groupId>
<artifactId>h2</artifactId>
<scope>runtime</scope>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-jpa</artifactId>
</dependency>

http://localhost:9100/h2-console/

jdbc:h2:mem:todolist

img
img
img

使用H2

http://localhost:9100/h2-console/

img
img
img
img

  • Create (POST)
    img

  • Request (GET)
    img
    取得完整列表
    img
    照id取得

  • Update (PUT)
    img

  • Delete (DELETE)
    img

改成MySQL

1.Docker 裝MySQL
ref2

2.mysql> CREATE DATABASE ems;

img
img

3.pom.xml加入段落,並把jar放到External Libraries重啟

1
2
3
4
5
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>8.0.13</version>
</dependency>

4.加入application.yml
img
img
img

SQL Server Management Studio (SSMS)

  • 使用”+”連接字串,而在MySQL中,使用”CONCAT”或(”||”)
  • 使用Transact-SQL(T-SQL)來定義儲存過程和觸發器,而MySQL使用類似於標準SQL的語法
  • 使用”!=”或”<> “表示不等於,而MySQL僅使用”!=”

Table

View

索引是在資料庫中用於加速查詢和提高查詢效能的結構物件。
索引通常是根據特定欄位的值建立的,這些欄位通常在查詢中被用作條件或排序的基準。通過創建索引,資料庫系統可以快速定位到包含特定欄位值的資料頁面,從而加速查詢的執行。

View則是一種虛擬的表格,根據資料表或其他視圖的查詢結果動態生成的。視圖可以被視為虛擬資料表,可以像資料表一樣進行查詢,但實際上它不包含任何數據。它提供了一種方便的方式來查詢和使用資料表的子集或根據特定條件過濾資料。

索引和View在資料庫中有不同的用途和功能,索引用於加速查詢效能,而View用於簡化複雜的查詢和提供對資料的不同視角。

1
2
3
4
5
6
7
CREATE VIEW EmployeesView
AS
SELECT EmployeeID, FirstName, LastName, HireDate
FROM Employees
WHERE Department = 'Sales';

SELECT * FROM EmployeesView;

Store procedures

1
2
3
4
5
6
7
8
9
10
11
12
CREATE PROCEDURE GetCustomerOrders
@CustomerID INT
AS
BEGIN
-- 查詢指定客戶的訂單資訊
SELECT OrderID, OrderDate, TotalAmount
FROM Orders
WHERE CustomerID = @CustomerID
ORDER BY OrderDate DESC;
END

EXEC GetCustomerOrders @CustomerID = 123;

Oracle SQL

  • 使用”LIKE”進行模式比較,MySQL使用”=”
  • Oracle SQL使用序列(Sequence)來實現自增值列,MySQL使用”auto_increment”
  • 使用”ROWNUM”連接字串,而MySQL使用”CONCAT”
  • 使用”CREATE INDEX”或”CREATE UNIQUE INDEX”來創建索引,而MySQL使用”CREATE INDEX”

優化

  • 策略
  • 聚集索引(Clustered Index):決定資料表的物理排序,每個資料表只能有一個聚集索引
  • 非聚集索引(Non-clustered Index):提供快速查詢和排序,一個資料表可以有多個非聚集索引
  • 使用正確的JOIN
  • 使用正確型別
  • 配置適當記憶體

時程: 2023/3/1- 2023/4/1

SQL


如果你覺得這篇文章很棒,請你不吝點讚 (゚∀゚)

Welcome to my other publishing channels