Hızlı Başlangıç: Python kullanarak veri bağlama ve veri sorgulama MySQL için Azure Veritabanı

AŞAĞıDAKILER IÇIN GEÇERLIDIR: MySQL için Azure Veritabanı - Tek Sunucu

Bu hızlı başlangıçta Python kullanarak bir MySQL için Azure Veritabanı bağlan göreceksiniz. Daha sonra SQL mac, Ubuntu Linux ve Windows platformlarından veritabanındaki verileri sorgulamak, eklemek, güncelleştirmek ve silmek için Windows kullanırsınız.

Önkoşullar

Bu hızlı başlangıç için şunların gerekir:

Python’u ve MySQL bağlayıcısını yükleme

Aşağıdaki adımları kullanarak Bilgisayarınıza Python ve Python için MySQL bağlayıcısı yükleyin:

  1. Python 3.7 veya üzerini işletim sisteminiz için indirip yükleyin. PATHMySQL bağlayıcısı bunu gerektirdiği için Python'ı uygulamanıza ekleyin.

  2. Bir komut istemi veya bash kabuk açın ve büyük harf V anahtarıyla çalıştırarak Python python -V sürümüne göz attınız.

  3. Paket pip yükleyicisi, Python'ın en son sürümlerinde yer almaktadır. çalıştırarak pip en son sürüme güncelleştirin. pip install -U pip

    pipYüklü değilse, ile indirip yükleyebilirsiniz. get-pip.py Daha fazla bilgi için bkz. Yükleme.

  4. pipPython için MySQL bağlayıcısını ve bağımlılıklarını yüklemek için kullanın:

    pip install mysql-connector-python
    

Sorun mu var? Bize haber ver

Bağlantı bilgilerini alma

MySQL için Azure Veritabanı'a bağlanmak için ihtiyacınız olan bağlantı bilgilerini Azure portal. Sunucu adı, veritabanı adı ve oturum açma kimlik bilgileri gerekir.

  1. Azure Portal’ında oturum açın.

  2. Portal arama çubuğunda, mydemoserver gibi MySQL için Azure Veritabanı sunucuyu aratın ve seçin.

    MySQL için Azure Veritabanı sunucu adı

  3. Sunucunun Genel Bakış sayfasında Sunucu adı ve Sunucu yöneticisi oturum açma adını not edin. Parolanızı unutursanız bu sayfadan da parolayı sıfırlayabilirsiniz.

    MySQL için Azure Veritabanı sunucu adı 2

1. Adım: Tablo oluşturma ve veri ekleme

Sunucuya ve veritabanına bağlanmak, bir tablo oluşturmak ve INSERT SQL deyimini kullanarak veri yüklemek için aşağıdaki SQL kullanın. Kod mysql.connector kitaplığını içeri aktarıyor ve yöntemini kullanıyor:

Önemli

  • SSL varsayılan olarak etkindir. Yerel ortamınıza bağlanmak için DigiCertGlobalRootG2 SSL sertifikasını indirmeniz gerekir.
  • , <mydemoserver> <myadmin> , ve yer <mypassword> <mydatabase> tutucularını MySQL sunucunuz ve veritabanınız için değerlerle değiştirin.
import mysql.connector
from mysql.connector import errorcode

# Obtain connection string information from the portal

[!INCLUDE[applies-to-mysql-single-server](includes/applies-to-mysql-single-server.md)]
config = {
  'host':'<mydemoserver>.mysql.database.azure.com',
  'user':'<myadmin>@<mydemoserver>',
  'password':'<mypassword>',
  'database':'<mydatabase>',
  'client_flags': [mysql.connector.ClientFlag.SSL],
  'ssl_ca': '/var/wwww/html/DigiCertGlobalRootG2.crt.pem'
}

# Construct connection string

[!INCLUDE[applies-to-mysql-single-server](includes/applies-to-mysql-single-server.md)]
try:
   conn = mysql.connector.connect(**config)
   print("Connection established")
except mysql.connector.Error as err:
  if err.errno == errorcode.ER_ACCESS_DENIED_ERROR:
    print("Something is wrong with the user name or password")
  elif err.errno == errorcode.ER_BAD_DB_ERROR:
    print("Database does not exist")
  else:
    print(err)
else:
  cursor = conn.cursor()

  # Drop previous table of same name if one exists
  cursor.execute("DROP TABLE IF EXISTS inventory;")
  print("Finished dropping table (if existed).")

  # Create table
  cursor.execute("CREATE TABLE inventory (id serial PRIMARY KEY, name VARCHAR(50), quantity INTEGER);")
  print("Finished creating table.")

  # Insert some data into table
  cursor.execute("INSERT INTO inventory (name, quantity) VALUES (%s, %s);", ("banana", 150))
  print("Inserted",cursor.rowcount,"row(s) of data.")
  cursor.execute("INSERT INTO inventory (name, quantity) VALUES (%s, %s);", ("orange", 154))
  print("Inserted",cursor.rowcount,"row(s) of data.")
  cursor.execute("INSERT INTO inventory (name, quantity) VALUES (%s, %s);", ("apple", 100))
  print("Inserted",cursor.rowcount,"row(s) of data.")

  # Cleanup
  conn.commit()
  cursor.close()
  conn.close()
  print("Done.")

Sorun mu var? Bize haber ver

2. Adım: Verileri okuma

Bağlanmak ve SELECT SQL deyimi kullanarak verileri okumak için aşağıdaki kodu kullanın. Kod mysql.connector kitaplığını içeri aktarıyor ve cursor.execute() yöntemini kullanarak MySQL veritabanında SQL sorgusunu yürütür.

Kod fetchall() yöntemini kullanarak veri satırlarını okur, sonuç kümesi bir koleksiyon satırı olarak tutar ve satırlarda döngü yapmak for için bir tekrarlayıcı kullanır.

  # Read data
  cursor.execute("SELECT * FROM inventory;")
  rows = cursor.fetchall()
  print("Read",cursor.rowcount,"row(s) of data.")

  # Print all rows
  for row in rows:
    print("Data row = (%s, %s, %s)" %(str(row[0]), str(row[1]), str(row[2])))

3. Adım: Verileri güncelleştirme

Bağlanmak ve bir UPDATE SQL deyimi kullanarak verileri güncelleştirmek için aşağıdaki kodu kullanın. Kod mysql.connector kitaplığını içeri aktarıyor ve cursor.execute() yöntemini kullanarak MySQL veritabanında SQL sorgusunu yürütür.

  # Update a data row in the table
  cursor.execute("UPDATE inventory SET quantity = %s WHERE name = %s;", (200, "banana"))
  print("Updated",cursor.rowcount,"row(s) of data.")

4. Adım: Verileri silme

Bağlanmak ve DELETE SQL deyimini kullanarak verileri kaldırmak için aşağıdaki kodu kullanın. Kod mysql.connector kitaplığını içeri aktarıyor ve cursor.execute() yöntemini kullanarak MySQL veritabanında SQL sorgusunu yürütür.


  # Delete a data row in the table
  cursor.execute("DELETE FROM inventory WHERE name=%(param1)s;", {'param1':"orange"})
  print("Deleted",cursor.rowcount,"row(s) of data.")

Kaynakları temizleme

Bu hızlı başlangıçta kullanılan tüm kaynakları temizlemek için aşağıdaki komutu kullanarak kaynak grubunu silin:

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

Sonraki adımlar

Ne arıyorsunuz? Bize haber ver.