이 빠른 시작에서는 C# 애플리케이션을 사용하여 Azure Database for PostgreSQL 유연한 서버 인스턴스에 연결하는 방법을 보여 줍니다. SQL 문을 사용하여 데이터베이스의 데이터를 쿼리, 삽입, 업데이트 및 삭제하는 방법을 보여 줍니다. 이 문서의 단계에서는 C#을 사용하여 개발하는 데 익숙하고 Azure Database for PostgreSQL을 사용하는 데 익숙하지 않은 것으로 가정합니다.
필수 조건
이 빠른 시작에는 다음이 필요합니다.
- 활성 구독이 있는 Azure 계정. 체험 계정을 만듭니다.
- Azure Database for PostgreSQL의 유연한 서버 인스턴스를 생성합니다. 인스턴스가 없는 경우.
- 서버에서 사용할 수 있는 빈 postgres 데이터베이스를 사용하거나 새 데이터베이스를 만듭니다.
- 플랫폼에 맞는 .NET SDK(Windows, Ubuntu Linux 또는 macOS)를 설치합니다.
- Visual Studio를 설치하여 프로젝트를 빌드합니다.
- Visual Studio에서 Npgsql NuGet 패키지를 설치합니다.
연결 정보 가져오기
Azure Database for PostgreSQL 유연한 서버 인스턴스에 연결하는 데 필요한 연결 정보를 가져옵니다. 정규화된 서버 이름 및 로그인 자격 증명이 필요합니다.
Azure Portal 사용:
Azure 포털의 왼쪽 메뉴에서 모든 리소스를 클릭한 후, 생성한 서버를 검색합니다.
서버 이름을 클릭합니다.
리소스 메뉴에서 개요를 선택합니다.
엔드포인트 및 관리자 로그인으로 표시된 값을 복사합니다.
관리자 로그인의 암호를 잊어버린 경우 암호 재설정 단추를 사용하여 재설정 할 수 있습니다.
1단계: 데이터 연결 및 삽입
CREATE TABLE 및 INSERT INTO SQL 문을 사용하여 데이터를 연결하고 로드하려면 다음 코드를 사용하세요. 이 코드는 다음 메서드와 함께 NpgsqlCommand 클래스를 사용합니다.
- Open()은 Azure Database for PostgreSQL 유연한 서버 데이터베이스에 대한 연결을 설정합니다.
- CreateCommand(): CommandText 속성을 설정합니다.
- ExecuteNonQuery() 메서드: 데이터베이스 명령을 실행합니다.
중요한
Host, DBName, User 및 Password 매개 변수는 서버 및 데이터베이스를 만들 때 지정한 값으로 바꾸세요.
using System;
using Npgsql;
namespace Driver
{
public class AzurePostgresCreate
{
// Obtain connection string information from the portal
//
private static string Host = "mydemoserver.postgres.database.azure.com";
private static string User = "mylogin";
private static string DBname = "postgres";
private static string Password = "<server_admin_password>";
private static string Port = "5432";
static void Main(string[] args)
{
// Build connection string using parameters from portal
//
string connString =
String.Format(
"Server={0};Username={1};Database={2};Port={3};Password={4};SSLMode=Prefer",
Host,
User,
DBname,
Port,
Password);
using (var conn = new NpgsqlConnection(connString))
{
Console.Out.WriteLine("Opening connection");
conn.Open();
using (var command = new NpgsqlCommand("DROP TABLE IF EXISTS inventory", conn))
{
command.ExecuteNonQuery();
Console.Out.WriteLine("Finished dropping table (if existed)");
}
using (var command = new NpgsqlCommand("CREATE TABLE inventory(id serial PRIMARY KEY, name VARCHAR(50), quantity INTEGER)", conn))
{
command.ExecuteNonQuery();
Console.Out.WriteLine("Finished creating table");
}
using (var command = new NpgsqlCommand("INSERT INTO inventory (name, quantity) VALUES (@n1, @q1), (@n2, @q2), (@n3, @q3)", conn))
{
command.Parameters.AddWithValue("n1", "banana");
command.Parameters.AddWithValue("q1", 150);
command.Parameters.AddWithValue("n2", "orange");
command.Parameters.AddWithValue("q2", 154);
command.Parameters.AddWithValue("n3", "apple");
command.Parameters.AddWithValue("q3", 100);
int nRows = command.ExecuteNonQuery();
Console.Out.WriteLine(String.Format("Number of rows inserted={0}", nRows));
}
}
Console.WriteLine("Press RETURN to exit");
Console.ReadLine();
}
}
}
2단계: 데이터 읽기
SELECT SQL 문을 사용하여 데이터를 연결하고 읽으려면 다음 코드를 사용하세요. 이 코드는 다음 메서드와 함께 NpgsqlCommand 클래스를 사용합니다.
- Open(): PostgreSQL에 대한 연결을 설정합니다.
- CreateCommand() 및 ExecuteReader(): 데이터베이스 명령을 실행합니다.
- Read()를 사용하여 결과 내 기록으로 이동합니다.
- GetInt32() 및 GetString(): 레코드의 값을 구문 분석합니다.
중요한
Host, DBName, User 및 Password 매개 변수는 서버 및 데이터베이스를 만들 때 지정한 값으로 바꾸세요.
using System;
using Npgsql;
namespace Driver
{
public class AzurePostgresRead
{
// Obtain connection string information from the portal
//
private static string Host = "mydemoserver.postgres.database.azure.com";
private static string User = "mylogin";
private static string DBname = "postgres";
private static string Password = "<server_admin_password>";
private static string Port = "5432";
static void Main(string[] args)
{
// Build connection string using parameters from portal
//
string connString =
String.Format(
"Server={0}; User Id={1}; Database={2}; Port={3}; Password={4};SSLMode=Prefer",
Host,
User,
DBname,
Port,
Password);
using (var conn = new NpgsqlConnection(connString))
{
Console.Out.WriteLine("Opening connection");
conn.Open();
using (var command = new NpgsqlCommand("SELECT * FROM inventory", conn))
{
var reader = command.ExecuteReader();
while (reader.Read())
{
Console.WriteLine(
string.Format(
"Reading from table=({0}, {1}, {2})",
reader.GetInt32(0).ToString(),
reader.GetString(1),
reader.GetInt32(2).ToString()
)
);
}
reader.Close();
}
}
Console.WriteLine("Press RETURN to exit");
Console.ReadLine();
}
}
}
3단계: 데이터 업데이트
UPDATE SQL 문을 사용하여 데이터를 연결하고 업데이트하려면 다음 코드를 사용합니다. 이 코드는 다음 메서드와 함께 NpgsqlCommand 클래스를 사용합니다.
- Open() 을 사용하여 Azure Database for PostgreSQL 유연한 서버 인스턴스에 대한 연결을 설정합니다.
- CreateCommand(), CommandText 속성을 설정합니다.
- ExecuteNonQuery() 메서드: 데이터베이스 명령을 실행합니다.
중요한
Host, DBName, User 및 Password 매개 변수는 서버 및 데이터베이스를 만들 때 지정한 값으로 바꾸세요.
using System;
using Npgsql;
namespace Driver
{
public class AzurePostgresUpdate
{
// Obtain connection string information from the portal
//
private static string Host = "mydemoserver.postgres.database.azure.com";
private static string User = "mylogin";
private static string DBname = "postgres";
private static string Password = "<server_admin_password>";
private static string Port = "5432";
static void Main(string[] args)
{
// Build connection string using parameters from portal
//
string connString =
String.Format(
"Server={0}; User Id={1}; Database={2}; Port={3}; Password={4};SSLMode=Prefer",
Host,
User,
DBname,
Port,
Password);
using (var conn = new NpgsqlConnection(connString))
{
Console.Out.WriteLine("Opening connection");
conn.Open();
using (var command = new NpgsqlCommand("UPDATE inventory SET quantity = @q WHERE name = @n", conn))
{
command.Parameters.AddWithValue("n", "banana");
command.Parameters.AddWithValue("q", 200);
int nRows = command.ExecuteNonQuery();
Console.Out.WriteLine(String.Format("Number of rows updated={0}", nRows));
}
}
Console.WriteLine("Press RETURN to exit");
Console.ReadLine();
}
}
}
4단계: 데이터 삭제
DELETE SQL 문을 사용하여 데이터를 연결하고 삭제하려면 다음 코드를 사용하세요.
이 코드는 NpgsqlCommand 클래스와 Open() 메서드를 사용하여 Azure Database for PostgreSQL 유연한 서버 데이터베이스에 대한 연결을 설정합니다. 그런 다음 코드는 CreateCommand() 메서드를 사용하고, CommandText 속성을 설정하고, ExecuteNonQuery() 메서드를 호출하여 데이터베이스 명령을 실행합니다.
중요한
Host, DBName, User 및 Password 매개 변수는 서버 및 데이터베이스를 만들 때 지정한 값으로 바꾸세요.
using System;
using Npgsql;
namespace Driver
{
public class AzurePostgresDelete
{
// Obtain connection string information from the portal
//
private static string Host = "mydemoserver.postgres.database.azure.com";
private static string User = "mylogin@mydemoserver";
private static string DBname = "postgres";
private static string Password = "<server_admin_password>";
private static string Port = "5432";
static void Main(string[] args)
{
// Build connection string using parameters from portal
//
string connString =
String.Format(
"Server={0}; User Id={1}; Database={2}; Port={3}; Password={4};SSLMode=Prefer",
Host,
User,
DBname,
Port,
Password);
using (var conn = new NpgsqlConnection(connString))
{
Console.Out.WriteLine("Opening connection");
conn.Open();
using (var command = new NpgsqlCommand("DELETE FROM inventory WHERE name = @n", conn))
{
command.Parameters.AddWithValue("n", "orange");
int nRows = command.ExecuteNonQuery();
Console.Out.WriteLine(String.Format("Number of rows deleted={0}", nRows));
}
}
Console.WriteLine("Press RETURN to exit");
Console.ReadLine();
}
}
}
리소스 정리
이 빠른 시작에서 사용된 모든 리소스를 정리하려면 다음 명령을 사용하여 리소스 그룹을 삭제합니다.
az group delete \
--name $AZ_RESOURCE_GROUP \
--yes
관련 콘텐츠
- Azure Portal을 사용하여 Azure Database for PostgreSQL을 관리합니다.
- 빠른 시작: Python을 사용하여 Azure Database for PostgreSQL에서 데이터를 연결하고 쿼리합니다.
- 빠른 시작: Azure Database for PostgreSQL에서 Java 및 JDBC를 사용합니다.
- 빠른 시작: Go 언어를 사용하여 Azure Database for PostgreSQL에서 데이터를 연결하고 쿼리합니다.
- 빠른 시작: PHP를 사용하여 Azure Database for PostgreSQL에서 데이터를 연결하고 쿼리합니다.
- 빠른 시작: Azure Database for PostgreSQL을 사용하여 Azure CLI에 연결하고 쿼리합니다.
- 빠른 시작: Power BI의 Azure Database for PostgreSQL에서 데이터를 가져옵니다.