簡體   English   中英

什么類型的 sql db 可以在一列中存儲聲音或數組數據?

[英]what type of sql db can store sound or array data in a column?

我需要附加,在 sql db 中創建一個新列。 它應該存儲用戶語音的數字 numpy 表示 - numpy 數組或圖像 - 頻譜圖。 numpy 數組如下所示:

array([[  2.891e-07,   2.548e-03, ...,   8.116e-09,   5.633e-09],
       [  1.986e-07,   1.162e-02, ...,   9.332e-08,   6.716e-09],
       ...,
       [  3.668e-09,   2.029e-08, ...,   3.208e-09,   2.864e-09],
       [  2.561e-10,   2.096e-09, ...,   7.543e-10,   6.101e-10]])

我知道 sql 只能存儲文本數據,想知道是否可以在列中附加或簡短地表示數組。

ID |    date     | voice
1    01-01-20      array([[  2.891e-07,   2.548e-03...
2    01-02-20      array([[  2.891e-07,  

這取決於您的數據庫引擎。 我為您提供了我使用過的 3 個最常見數據庫的答案:

1. 甲骨文:

您可以使用BLOB數據類型來存儲二進制文件本身。 此外,如果要存儲數組而不是二進制文件,也可以使用CLOB數據類型。 BLOB類似, CLOB保存大數據,但采用字符格式,因此適合保存大文本,例如您提到的數組。

Oracle 大對象

2. MySQL:

同樣的數據類型, BLOB也可以在 MySQL 中使用。 TEXT (及其衍生物,如LARGETEXT )數據類型可用於保存大數組。

MySQL 大對象

3. PostgreSQL :

PgSQL 沒有 BLOB,但另一種稱為BYTEA數據類型可以存儲二進制對象。 TEXT數據類型也可以在 PgSQL 中存儲大字符串。

PostgreSQL 大對象

注意:處理數據庫中的二進制數據需要一個中間層應用程序作為客戶端和服務器之間的“翻譯器”。 在上面的參考鏈接中獲取更多信息。

此外,關於列中數據的“縮短版本”,您可以在表中插入前 10 個字符(或任何適合您的任意數字)。 這有不同的技術和過程,具體取決於您的數據庫引擎。

希望這已經回答了您的問題。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM