Rychlý start: Použití Ruby k připojení a dotazování dat v Azure Database for PostgreSQL – Jeden server
Tento rychlý start ukazuje, jak se připojit ke službě Azure Database for PostgreSQL pomocí aplikace v Ruby. Ukazuje, jak pomocí příkazů jazyka SQL dotazovat, vkládat, aktualizovat a odstraňovat data v databázi. Kroky v tomto článku předpokládají, že máte zkušenosti s vývojem pomocí Ruby a teprve začínáte pracovat se službou Azure Database for PostgreSQL.
Požadavky
Tento rychlý start jako výchozí bod využívá prostředky vytvořené v některém z těchto průvodců:
Musíte mít také nainstalované:
Získání informací o připojení
Získejte informace o připojení potřebné pro připojení ke službě Azure Database for PostgreSQL. Potřebujete plně kvalifikovaný název serveru a přihlašovací údaje.
- Přihlaste se k Azure Portal.
- V nabídce vlevo na webu Azure Portal klikněte na Všechny prostředky a vyhledejte vytvořený server (například mydemoserver).
- Klikněte na název serveru.
- Na panelu Přehled serveru si poznamenejte Název serveru a Přihlašovací jméno správce serveru. Pokud zapomenete své heslo, můžete ho na tomto panelu také resetovat.
Poznámka
Symbol @ v uživatelském jménu Azure Postgres má zakódovanou adresu URL jako %40 ve všech připojovacích řetězcích.
Připojení a vytvoření tabulky
Pomocí následujícího kódu se připojte a vytvořte tabulku s využitím příkazu CREATE TABLE jazyka SQL, po kterém následují příkazy INSERT INTO jazyka SQL, které do tabulky přidají řádky.
Kód používá objekt PG::Connection s konstruktorem new pro připojení k Azure Database for PostgreSQL. Potom volá metodu exec() pro spuštění příkazů DROP, CREATE TABLE a INSERT INTO. Kód vyhledá chyby pomocí PG::Error třídy . Potom volá close() metodu , která připojení před ukončením zavře. Další informace o těchto třídách a metodách najdete v referenční dokumentaci k produktu Ruby Pg.
Nahraďte řetězce host, database, user a password vlastními hodnotami.
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
Čtení dat
Pomocí následujícího kódu se připojte a načtěte data s využitím příkazu SELECT jazyka SQL.
Kód používá objekt s PG::Connection konstruktorem new pro připojení k Azure Database for PostgreSQL. Potom volá exec() metodu , která spustí příkaz SELECT a výsledky se zachytá v sadě výsledků dotazu. Nad kolekcí sady výsledků dotazu se iteruje pomocí smyčky resultSet.each do a hodnoty aktuálního řádku se ukládají do proměnné row. Kód vyhledá chyby pomocí PG::Error třídy . Potom volá close() metodu , která připojení před ukončením zavře. Další informace o těchto třídách a metodách najdete v referenční dokumentaci k produktu Ruby Pg.
Nahraďte řetězce host, database, user a password vlastními hodnotami.
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
Aktualizace dat
Pomocí následujícího kódu se připojte a aktualizujte data s využitím příkazu UPDATE jazyka SQL.
Kód používá objekt s PG::Connection konstruktorem new pro připojení k Azure Database for PostgreSQL. Potom volá exec() metodu pro spuštění příkazu UPDATE. Kód vyhledá chyby pomocí PG::Error třídy . Potom volá close() metodu , která připojení před ukončením zavře. Další informace o těchto třídách a metodách najdete v referenční dokumentaci k produktu Ruby Pg.
Nahraďte řetězce host, database, user a password vlastními hodnotami.
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
Odstranění dat
Pomocí následujícího kódu se připojte a načtěte data s využitím příkazu DELETE jazyka SQL.
Kód používá objekt s PG::Connection konstruktorem new pro připojení k Azure Database for PostgreSQL. Potom volá exec() metodu pro spuštění příkazu UPDATE. Kód vyhledá chyby pomocí PG::Error třídy . Potom volá close() metodu , která připojení před ukončením zavře.
Nahraďte řetězce host, database, user a password vlastními hodnotami.
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
Vyčištění prostředků
Pokud chcete vyčistit všechny prostředky použité během tohoto rychlého startu, odstraňte skupinu prostředků pomocí následujícího příkazu:
az group delete \
--name $AZ_RESOURCE_GROUP \
--yes