網站搜尋

將 MySQL 數據輸出到 CSV

“儘管是關聯資料庫,MySQL 引擎卻允許有一定的彈性,讓使用者可以從各種來源加載和導出資料。其中一種格式是 CSV 格式。”

在本教程中,您將學習將 MySQL 輸出導出到 CSV 文件的各種方法和技術。

讓我們開始吧。

什麼是CSV?

在討論如何以CSV格式導出數據之前,讓我們先了解什麼是CSV以及它對我們的重要性。

逗號分隔值是指一種ASCII文本文件格式,其中值由定義的分隔符類型分開。在大多數情況下,每個值通常由逗號分隔。

CSV 格式對於機器來說很容易讀取,因為您只需要確定分隔符並將數據格式化為其他格式。它提供了處理大量數據和可讀性的優勢。

創建範例表格

為了說明我們如何將數據導出到CSV,讓我們創建一個包含示例數據的樣本表。下面提供了一個示例查詢:

閱讀更多 →

如何在 MySQL 中設置時區

「與時間合作是作為一名開發者將面臨的最具挑戰性的事情之一。雖然主要的程式語言提供了工具和特性來簡化此過程,但資料庫卻需要你手動執行時間格式化。」

在這個教程中,我們將嘗試通過向您展示如何在 MySQL 數據庫中設置時區來簡化在數據庫中處理時區的過程。雖然這並不能完全解決您如何處理時間的問題,但它將幫助您理解 MySQL 和其他關聯數據庫中有關時區的各種概念。

讓我們探索吧。

MySQL 設定時區 – 方法一

您可以使用各種方法來設置和配置 MySQL 伺服器的時區。第一種方法是在會話變數中設置時區。

MySQL 提供了 @@session.time_zone 變數,該變數存儲著當前運行會話的當前時區。

每個連接到 MySQL 伺服器的會話都會被分配其會話時區設置。默認情況下,這個值設置為全局時區值。

因此,如果您想在不影響連接到伺服器的其他會話的情況下修改當前會話的時區,您需要更改這個變數。

您可以透過提取此變數存儲的值來查看您會話的當前時區。下面顯示了一個示例查詢:

運行上述查詢應該會返回如下輸出:

閱讀更多 →

如何在 MySQL 中獲取特定字串的排序規則

對於初學者來說,有一件事往往會讓人有些困惑,那就是 MySQL 的排序規則和字符集的概念。雖然這不是一個複雜的功能,但它讓一些人感到困惑,特別是 No-SQL 開發者。這是因為 No-SQL 數據庫並不具備這樣的功能。

在這篇文章中,我們將探討 MySQL 排序規則的概念,以及我們如何檢查給定輸入字串的排序類型。

MySQL 中的排序是什麼?

對照(校對)是指一組規則,用於定義MySQL數據庫中字符的比較和排序方式。MySQL中的每個字符集都映射到MySQL引擎中的唯一對照。然而,字符集可以有一個或多個對照。

如果您想了解字符集的文檔及其各自的代表內容,請查看以下 IANA 資源:

https://www.iana.org/assignments/character-sets/character-sets.xhtml

MySQL 可用的排序設定

要查看系統中可用的排序規則,您可以使用下面顯示的命令:

首先登錄到您的 MySQL shell:

mysql -u root -p Enter password: *****

閱讀更多 →

MySQL 選擇第 N 行

「在使用 MySQL 數據庫時,您可能會遇到必須從特定表中獲取第 n 行的情況。與選擇所有列或手動尋找過濾方式相比,獲取特定位置的行可以減少數據庫的開銷和手動操作。」

這篇文章將向您展示如何使用 MySQL 內建功能獲取第 n 個位置的記錄。

讓我們開始吧。

創建樣本數據

在學習如何從給定的表中提取第 n 行之前,讓我們設置一些示例數據庫和表格。

如果您已經有現有的表格和記錄,可以隨時跳過這一部分。否則,您可以使用下面顯示的代碼片段:

create database shop; use shop; drop table if exists products; create table products(     id int auto_increment primary key,     product_name varchar(100) not null,     provider varchar(50),     price float not null,     quantity

閱讀更多 →

如何更改 MySQL 中允許的默認最大封包數量

在 MySQL 中,通信封包或封包指的是發送到 MySQL 伺服器的單個 SQL 語句。它也指的是已經回覆客戶端的單個行或來自 MySQL 伺服器的二進制日誌。

這意味著如果客戶端或伺服器獲得的封包超過設定的 max_allow_packet 參數,就會返回一個 "ERR_NET_PACKET_TOO_LARGE" 錯誤。然後伺服器或客戶端可以關閉連接。

這篇文章將演示如何在 MySQL 客戶端和 MySQL 伺服器中更改最大封包大小。

max_allow_packet 是什麼?

max_allow_packet 是一個會話變數,用於決定在單個通信包中發送或接收的字節數。

檢查當前最大允許的封包大小

我們可以通過獲取 MySQL 變數的值來檢查最大允許的封包大小。

下面顯示了一個示例查詢:

上述查詢應該返回最大允許的封包大小(以字節為單位)為:

|Variable_name |Value |

閱讀更多 →

如何從終端在 MySQL 中運行 SQL 腳本

「腳本對於資料庫管理員來說是一項令人難以置信的功能。它們允許您在指定的伺服器上按順序指定和執行一組指令。這使得自動化重複性任務的過程變得更加容易和可行。」

然而,在創建和執行 SQL 腳本時,您通常會在像 MySQL Workbench、Jetbrains DataGrip 等開發編輯器中執行操作。因此,確定如何在可以訪問終端會話的環境中運行 SQL 腳本可能會很具挑戰性。

在這篇簡短的文章中,我們將向您展示如何直接從終端執行存儲在文件中的 SQL 腳本。

讓我們開始吧。

方法 1 – 從一個活動會話執行 SQL 腳本

假設我們有一個腳本,可以將數據庫更改為sakila,設置會話時區,並最終從客戶表中獲取前十條記錄。

首先創建一個以 .sql 擴展名結尾的檔案

然後我們可以添加腳本的指示,如下所示:

use sakila; set @@session.time_zone = 'America/Los_Angeles'; select * from sakila.customer limit 10;

閱讀更多 →

MySQL 創建伺服器

這種引擎允許您在不使用複製或集群實現的情況下遠程訪問數據。要在 MySQL 中使用聯邦存儲引擎,您必須在 MySQL 數據庫中創建一個伺服器定義。

在本教程中,我們將討論如何在 MySQL 中使用 CREATE SERVER 語句來在 MySQL 數據庫的 servers 表中創建一個條目。

語句語法

伺服器定義的語法如下所示:

CREATE SERVER server_name FOREIGN DATA WRAPPER wrapper_name OPTIONS (option [, option] ...) option: { HOST character-literal | DATABASE character-literal | USER character-literal | PASSWORD character-literal | SOCKET character-literal | OWNER character-literal | PORT numeric-literal }

server_name 指定了要在表中創建的伺服器名稱。這應該是一個在表中不存在

閱讀更多 →

僅限 MySQL 備份數據

「備份是資料庫開發者的基本功能。使用資料庫,您可以隨時保留應用程式中數據的最新副本。然後,您可以使用備份數據在故障的情況下恢復資料庫,或將其用於在另一個專案中複製資料庫架構。」

本教程將教您如何備份 MySQL 數據庫而不包含數據庫結構。這是因為數據庫只會存儲實際數據,而不是設計。

話雖如此,讓我們深入探討吧。

什麼是 MySQLDump?

MySQL Dump 是一個強大的命令行工具,可以讓您創建和管理 MySQL 備份。此外,這個工具還能讓您導出 MySQL 數據庫的各個方面,例如架構、數據等等。

MySQLDump 提供了一種相對簡單的語法,易於學習和使用。隨意查閱其文檔或手冊頁面以了解更多。

創建樣本數據庫和數據

在討論如何從資料庫導出數據之前,讓我們先設置一個範例資料庫和數據。

如果您已經擁有希望使用的資料庫,請隨意跳過本節並繼續進行備份過程。

否則,運行下面提供的 SQL 語句以創建示例信息。

create database linux-console; drop table if exists linux-console.

閱讀更多 →

在 MySQL 中更新時出現 MySQL 錯誤代碼 1175

「當使用 MySQL 數據庫時,您可能會遇到在執行 UPDATE 或 DELETE 指令時觸發的「錯誤代碼 1175」。」

這篇文章將討論這個錯誤的原因以及我們如何使用MySQL伺服器來解決它。

造成「MySQL 錯誤代碼 1175」的原因是什麼?

當執行 UPDATE 或 DELETE 操作而不使用 WHERE 子句時,會出現「MySQL 錯誤代碼 1175」。

預設情況下,MySQL 使用一個名為 safe_mode 的功能,禁止您在沒有 WHERE 子句的情況下執行 UPDATE 或 DELETE 陳述。這防止了對目標的任何意外數據丟失。

因此,當安全模式功能被啟用時,MySQL 會在任何未包含 WHERE 子句的 DELETE 或 UPDATE 操作中返回錯誤代碼 1175。

下面顯示了一個例子:

在這種情況下,我們嘗試改變標題欄位的值,而不指定我們希望針對哪一行。這可能會導致我們用指定的值覆蓋整個表格。因此,MySQL將會阻止這種情況,並返回一個錯誤,如下所示:

閱讀更多 →

MySQL 幫助命令

如果你剛開始接觸 MySQL 數據庫,記住所有可用的功能、命令、函數、數據類型等可能會很具挑戰性。然而,感謝一個簡單的 MySQL 命令,你不必記憶這些。

本文將為您展示如何在 MySQL 中使用 HELP 命令,該命令允許您從命令行獲取 MySQL 參考手冊中的文檔。

讓我們跳進去探索吧。

MySQL 幫助說明

HELP 命令接受一個搜索字符串,以檢索相關的文檔。然後,該命令為指定字符串獲取結果。

命令語法如下所示:

指定的搜尋字串不分大小寫。

您還可以指定通配符字符,例如 % 和 _。該命令執行的動作類似於 LIKE 運算子所定義的操作。

步驟 1: 初始化 MySQL 幫助表

在我們可以使用 HELP 命令之前,我們需要初始化幫助表。首先,請按照以下提供的命令進行操作:

首先,按照以下請求下載 MySQL 幫助表文件:

wget https://raw.githubusercontent.com/google/mys

閱讀更多 →