빠른 시작: Ruby를 사용하여 Azure Database for PostgreSQL - 단일 서버에서 데이터 연결 및 쿼리

적용 대상: Azure Database for PostgreSQL - 단일 서버

Important

Azure Database for PostgreSQL - 단일 서버는 곧 사용 중지됩니다. Azure Database for PostgreSQL - 유연한 서버로 업그레이드하는 것이 좋습니다. Azure Database for PostgreSQL - 유연한 서버로 마이그레이션하는 방법에 대한 자세한 내용은 Azure Database for PostgreSQL 단일 서버에 대한 새로운 소식을 참조하세요.

이 빠른 시작에서는 Ruby 애플리케이션을 사용하여 Azure Database for PostgreSQL에 연결하는 방법을 보여줍니다. SQL 문을 사용하여 데이터베이스의 데이터를 쿼리, 삽입, 업데이트 및 삭제하는 방법을 보여 줍니다. 이 문서의 단계에서는 개발자가 Ruby를 사용하여 개발하는 것에 익숙하고 Azure Database for PostgreSQL 작업에 익숙하지 않다고 가정합니다.

필수 조건

이 빠른 시작에서는 다음과 같은 가이드 중 하나에서 만들어진 리소스를 시작 지점으로 사용합니다.

또한 다음 모듈도 설치되어 있어야 합니다.

연결 정보 가져오기

PostgreSQL용 Azure Database에 연결하는 데 필요한 연결 정보를 가져옵니다. 정규화된 서버 이름 및 로그인 자격 증명이 필요합니다.

  1. Azure Portal에 로그인합니다.
  2. Azure Portal의 왼쪽 메뉴에서 모든 리소스를 선택한 다음, 생성한 서버를 검색합니다(예: mydemoserver).
  3. 서버 이름을 선택합니다.
  4. 서버의 개요 패널에 있는 서버 이름서버 관리자 로그인 이름을 기록해 둡니다. 암호를 잊어버리면 이 패널에서 암호를 재설정할 수 있습니다. Azure Database for PostgreSQL 서버 이름

참고 항목

Azure Postgres 사용자 이름에서 @ 기호는 모든 연결 문자열에서 %40으로 url 인코딩되었습니다.

테이블 연결 및 생성

CREATE TABLE SQL 문 다음에 테이블에 행을 추가하는 INSERT INTO SQL 문을 사용하여 테이블을 연결 및 생성하려면 다음 코드를 사용합니다.

이 코드는 PG::Connection 개체와 new 생성자를 사용하여 Azure Database for PostgreSQL에 연결합니다. 그런 다음 exec() 메서드를 호출하여 DROP, CREATE TABLE 및 INSERT INTO 명령을 실행합니다. 이 코드는 PG::Error 클래스를 사용하여 오류를 검사합니다. 그런 다음 종료하기 전에 close() 메서드를 호출하여 연결을 닫습니다. 이러한 클래스 및 메서드에 대한 자세한 내용은 Ruby Pg 참조 설명서를 확인하세요.

host, database, userpassword 문자열은 원하는 값으로 바꾸세요.

require 'pg'

begin
	# Initialize connection variables.
	host = String('mydemoserver.postgres.database.azure.com')
	database = String('postgres')
    user = String('mylogin%40mydemoserver')
	password = String('<server_admin_password>')

	# Initialize connection object.
    connection = PG::Connection.new(:host => host, :user => user, :dbname => database, :port => '5432', :password => password)
    puts 'Successfully created connection to database'

    # Drop previous table of same name if one exists
    connection.exec('DROP TABLE IF EXISTS inventory;')
    puts 'Finished dropping table (if existed).'

    # Drop previous table of same name if one exists.
    connection.exec('CREATE TABLE inventory (id serial PRIMARY KEY, name VARCHAR(50), quantity INTEGER);')
    puts 'Finished creating table.'

    # Insert some data into table.
    connection.exec("INSERT INTO inventory VALUES(1, 'banana', 150)")
    connection.exec("INSERT INTO inventory VALUES(2, 'orange', 154)")
    connection.exec("INSERT INTO inventory VALUES(3, 'apple', 100)")
	puts 'Inserted 3 rows of data.'

rescue PG::Error => e
    puts e.message

ensure
    connection.close if connection
end

데이터 읽기

SELECT SQL 문을 사용하여 데이터를 연결하고 읽으려면 다음 코드를 사용하세요.

이 코드는 PG::Connection 개체와 new 생성자를 사용하여 Azure Database for PostgreSQL에 연결합니다. 그런 다음 exec() 메서드를 호출하여 SELECT 명령을 실행하고 결과를 결과 집합에 보관합니다. 결과 집합 컬렉션이 resultSet.each do 루프를 사용하여 반복되고, 현재 행 값이 row 변수에 보관됩니다. 이 코드는 PG::Error 클래스를 사용하여 오류를 검사합니다. 그런 다음 종료하기 전에 close() 메서드를 호출하여 연결을 닫습니다. 이러한 클래스 및 메서드에 대한 자세한 내용은 Ruby Pg 참조 설명서를 확인하세요.

host, database, userpassword 문자열은 원하는 값으로 바꾸세요.

require 'pg'

begin
	# Initialize connection variables.
	host = String('mydemoserver.postgres.database.azure.com')
	database = String('postgres')
    user = String('mylogin%40mydemoserver')
	password = String('<server_admin_password>')

	# Initialize connection object.
    connection = PG::Connection.new(:host => host, :user => user, :dbname => database, :port => '5432', :password => password)
    puts 'Successfully created connection to database.'

    resultSet = connection.exec('SELECT * from inventory;')
    resultSet.each do |row|
        puts 'Data row = (%s, %s, %s)' % [row['id'], row['name'], row['quantity']]
    end

rescue PG::Error => e
    puts e.message

ensure
    connection.close if connection
end

데이터 업데이트

UPDATE SQL 문을 사용하여 데이터를 연결하고 업데이트하려면 다음 코드를 사용하세요.

이 코드는 PG::Connection 개체와 new 생성자를 사용하여 Azure Database for PostgreSQL에 연결합니다. 그런 다음, exec() 메서드를 호출하여 UPDATE 명령을 실행합니다. 이 코드는 PG::Error 클래스를 사용하여 오류를 검사합니다. 그런 다음 종료하기 전에 close() 메서드를 호출하여 연결을 닫습니다. 이러한 클래스 및 메서드에 대한 자세한 내용은 Ruby Pg 참조 설명서를 확인하세요.

host, database, userpassword 문자열은 원하는 값으로 바꾸세요.

require 'pg'

begin
	# Initialize connection variables.
	host = String('mydemoserver.postgres.database.azure.com')
	database = String('postgres')
    user = String('mylogin%40mydemoserver')
	password = String('<server_admin_password>')

	# Initialize connection object.
    connection = PG::Connection.new(:host => host, :user => user, :dbname => database, :port => '5432', :password => password)
    puts 'Successfully created connection to database.'

    # Modify some data in table.
    connection.exec('UPDATE inventory SET quantity = %d WHERE name = %s;' % [200, '\'banana\''])
    puts 'Updated 1 row of data.'

rescue PG::Error => e
    puts e.message

ensure
    connection.close if connection
end

데이터 삭제

DELETE SQL 문을 사용하여 데이터를 연결하고 읽으려면 다음 코드를 사용하세요.

이 코드는 PG::Connection 개체와 new 생성자를 사용하여 Azure Database for PostgreSQL에 연결합니다. 그런 다음, exec() 메서드를 호출하여 UPDATE 명령을 실행합니다. 이 코드는 PG::Error 클래스를 사용하여 오류를 검사합니다. 그런 다음 종료하기 전에 close() 메서드를 호출하여 연결을 닫습니다.

host, database, userpassword 문자열은 원하는 값으로 바꾸세요.

require 'pg'

begin
	# Initialize connection variables.
	host = String('mydemoserver.postgres.database.azure.com')
	database = String('postgres')
    user = String('mylogin%40mydemoserver')
	password = String('<server_admin_password>')

	# Initialize connection object.
    connection = PG::Connection.new(:host => host, :user => user, :dbname => database, :port => '5432', :password => password)
    puts 'Successfully created connection to database.'

    # Modify some data in table.
    connection.exec('DELETE FROM inventory WHERE name = %s;' % ['\'orange\''])
    puts 'Deleted 1 row of data.'

rescue PG::Error => e
    puts e.message

ensure
    connection.close if connection
end

리소스 정리

이 빠른 시작에서 사용된 모든 리소스를 정리하려면 다음 명령을 사용하여 리소스 그룹을 삭제합니다.

az group delete \
    --name $AZ_RESOURCE_GROUP \
    --yes

다음 단계