LinuxでSQL Serverを使う!ODBC、SQLCMD、mssql-cli、.NET Framework徹底解説
LinuxからMicrosoft SQL Serverにアクセスする方法
ODBCを使用する
ODBC (Open Database Connectivity) は、さまざまなデータベースに接続するための標準インターフェースです。 Linuxには、SQL Serverに接続するためのODBCドライバーが用意されています。
ODBCを使用して接続するには、以下の手順が必要です。
- ODBCドライバーをインストールする。
- ODBCデータソースを設定する。
- アプリケーションからODBCデータソースを使用してSQL Serverに接続する。
ODBCを使用する利点は、以下のとおりです。
- さまざまなアプリケーションからSQL Serverにアクセスできる。
- 設定が比較的簡単。
- パフォーマンスが他の方法に比べて劣る場合がある。
- すべての機能がサポートされているわけではない。
SQLCMDを使用する
SQLCMDは、コマンドラインからSQL Serverに接続するためのツールです。 Linuxにも、SQLCMDがインストールされています。
- SQL Serverへの接続情報を指定する。
- SQLクエリを実行する。
- 複雑な操作には向かない。
- GUIツールに比べて使いにくい。
mssql-cliは、LinuxからSQL Serverに接続するためのオープンソースのツールです。
- mssql-cliをインストールする。
- オープンソースである。
- さまざまな機能がサポートされている。
- ODBCやSQLCMDに比べて知名度が低い。
.NET Frameworkを使用して、C#やVB.NETなどの言語からSQL Serverに接続することができます。
- .NET Frameworkをインストールする。
- SqlConnectionクラスを使用してSQL Serverへの接続を確立する。
- SqlCommandクラスを使用してSQLクエリを実行する。
- 複雑な操作にも対応できる。
- 他の方法に比べてパフォーマンスが劣る場合がある。
LinuxからMicrosoft SQL Serverにアクセスするには、さまざまな方法があります。 それぞれの方法には利点と欠点があるので、要件に合わせて最適な方法を選択する必要があります。
ODBC
import pyodbc
# データソースの設定
connection_string = 'DSN=MyDSN;UID=sa;PWD=MyPassword;'
# 接続の確立
with pyodbc.connect(connection_string) as connection:
# カーソルの取得
cursor = connection.cursor()
# SQLクエリの実行
cursor.execute('SELECT * FROM dbo.Customers')
# 結果の取得
rows = cursor.fetchall()
# 結果の処理
for row in rows:
print(row)
SQLCMD
sqlcmd -S localhost -U sa -P MyPassword -Q "SELECT * FROM dbo.Customers"
mssql-cli
mssql-cli -S localhost -U sa -P MyPassword -D AdventureWorks2019 -Q "SELECT * FROM dbo.Customers"
.NET Framework
using System.Data.SqlClient;
// 接続文字列
string connectionString = "Data Source=localhost;Initial Catalog=AdventureWorks2019;Integrated Security=True;";
// 接続の確立
using (SqlConnection connection = new SqlConnection(connectionString))
{
// コマンドの作成
SqlCommand command = new SqlCommand("SELECT * FROM dbo.Customers", connection);
// コマンドの実行
connection.Open();
SqlDataReader reader = command.ExecuteReader();
// 結果の処理
while (reader.Read())
{
Console.WriteLine(reader["CustomerID"] + " " + reader["FirstName"] + " " + reader["LastName"]);
}
}
上記のサンプルコードは、基本的な接続とクエリの実行のみを目的としています。 より複雑な操作を行う場合は、それぞれの方法の詳細なドキュメントを参照してください。
その他のLinuxからMicrosoft SQL Serverにアクセスする方法
JDBCを使用する
- JDBC接続情報を設定する。
pymssqlを使用する
FreeTDSを使用する
FreeTDSは、Linux上でMicrosoft SQL ServerのTDSプロトコルを実装するオープンソースのプロジェクトです。
- FreeTDSをインストールする。
- FreeTDSの設定ファイルを変更する。
sql-server