Database
 sql >> Teknologi Basis Data >  >> RDS >> Database

Pemrograman Database Python dengan SQL Express untuk Pemula

Python telah tumbuh secara eksplosif dalam popularitas dalam 5 tahun terakhir. Banyak programmer baru tertarik padanya karena kurva belajarnya yang lembut dibandingkan dengan bahasa pemrograman lain. Pemrogram berpengalaman tertarik padanya karena ekstensibilitas dan kekuatannya. Namun salah satu pendorong utama adopsi massal ini adalah kemudahan Python dapat bekerja dengan database. Tutorial pemrograman Python ini akan mengeksplorasi bagaimana memulai menggunakan Python untuk berkomunikasi dengan SQL Express menggunakan Python 3.

Pemrograman Python dan Basis Data

Seorang pemula Python yang ingin mengintegrasikan fungsionalitas database ke apa saja proyek perangkat lunak yang ditulis dalam apa saja bahasa harus memiliki pemahaman dasar setidaknya dua bahasa. Yang pertama, tentu saja, Python dan yang kedua adalah bahasa kueri terstruktur (SQL) spesifik yang digunakan oleh database. Walaupun SQL distandarisasi, dalam praktiknya ini bukan bahasa universal, tetapi implementasi antara berbagai database cukup dekat sehingga berpindah dari satu database ke database lain tidak terlalu sulit setelah seseorang memiliki tingkat pengalaman pengembangan aplikasi database yang nyaman.

Pertimbangan penting lainnya untuk database adalah bahwa mereka semua memerlukan perangkat lunak manajemen. Alat manajemen ini dapat membantu mengatur akses ke, dan hak keamanan di dalam, database. Mereka juga dapat digunakan untuk men-debug aplikasi basis data karena dapat memungkinkan pengembang melakukan hal-hal seperti:

  • Pembuatan dan pengelolaan konten tabel, tampilan, dan objek database lainnya. Ini termasuk hubungan antar tabel, serta konfigurasi aturan integritas.
  • Interaksi dengan database secara langsung melalui entri kode SQL.
  • Men-debug sintaks SQL.
  • Membatalkan (sampai batas tertentu) kerusakan yang disebabkan oleh pernyataan SQL yang salah dikodekan dalam aplikasi.

Bahkan jika pengembang memilih untuk menggunakan database berbasis noSQL seperti MongoDB, masih akan ada tantangan dalam mempelajari sintaks pengkodean khusus database yang diperlukan untuk membuat solusi seperti itu bekerja. Tentu saja, ini bukan penghalang, itu hanya faktor teknis yang harus dipertimbangkan dengan proyek pengembangan perangkat lunak apa pun.

Python dan Driver Basis Data

Python, seperti bahasa pemrograman lainnya, tidak dapat berkomunikasi secara native dengan database yang diberikan. Ini membutuhkan modul tambahan untuk ditambahkan untuk server database tertentu. Dari sudut pandang praktik terbaik, yang terbaik adalah menggunakan modul driver database yang khusus untuk server database yang dipilih untuk proyek perangkat lunak. Melakukannya memastikan bahwa Python dapat mengakses semua fitur dari server database, bahkan jika itu datang dengan biaya tambahan menggunakan sintaks pemrograman khusus untuk modul. Sementara beberapa upaya telah dilakukan untuk membuat modul driver database "universal" yang dapat terhubung ke beberapa server database, ini sering kali mengakibatkan hilangnya akses ke fitur tertentu dari server database tertentu.

Apa itu SQL Express?

SQL Server telah menjadi solusi server database masuk untuk Windows selama beberapa dekade. Meskipun ini jauh dari solusi server database gratis yang bisa didapatkan, Microsoft memang menyediakan varian SQL Server tanpa biaya dan tanpa biaya yang disebut SQL Express. SQL Express adalah alat pembelajaran yang ideal untuk pemula karena mendukung sintaks SQL yang sama dengan yang digunakan SQL Server. Baik SQL Express dan SQL Server menggunakan ekstensi khusus SQL yang disebut "Transact-SQL", juga dikenal sebagai "T-SQL." Baik SQL Express maupun SQL Server mendukung penggunaan akun pengguna Windows serta sistem nama pengguna dan kata sandi tradisional untuk manajemen akses.

Python berkomunikasi dengan SQL Express atau SQL Server dengan modul bernama PyODBC . Baik SQL Server dan SQL Express dikelola oleh aplikasi Windows tanpa biaya yang terpisah yang disebut "SQL Server Management System," yang dikenal sebagai "SSMS." Pada saat penulisan ini, baik SQL Express dan SSMS adalah unduhan terpisah dari Microsoft:

  • Unduh SSMS
  • Unduh SQL Express

Cara Mengonfigurasi SQL Express untuk Pengembangan Python

SQL Express, seperti SQL Server, mendukung dua jenis otentikasi. Yang pertama adalah otentikasi berdasarkan Akun Pengguna Windows pengguna, juga dikenal sebagai "Koneksi Tepercaya." Yang kedua adalah otentikasi berbasis nama pengguna dan kata sandi tradisional yang diimplementasikan dalam apa yang disebut "Otentikasi Mode Campuran." Otentikasi Mode Campuran mendukung otentikasi berbasis Akun Pengguna Windows dan otentikasi berbasis nama pengguna dan kata sandi. Tidak ada cara untuk mendukung otentikasi berbasis nama pengguna dan sandi dengan sendirinya di SQL Server atau SQL Express.

Microsoft telah beralih dari Otentikasi Mode Campuran, karena salah satu keuntungan utama menggunakan Koneksi Tepercaya adalah kredensial basis data tidak perlu disimpan dalam kode aplikasi. Demonstrasi dalam artikel ini juga tidak akan menggunakannya.

TIDAK Menyalin String Koneksi Pasca-Instal

Satu hal yang diperdebatkan untuk pengembang aplikasi tingkat pemula adalah kebingungan awal seputar string koneksi SQL Server. Jika seseorang menginstal SQL Express, program penginstalan menyediakan string koneksi untuk instance SQL Express yang dibuat pasca-instal. Sayangnya, String Koneksi yang disediakan kemungkinan tidak akan berfungsi dengan PyODBC . Meskipun tergoda untuk "dibuai" dengan rasa aman dengan "gratis" ini, itu akan menyebabkan lebih banyak masalah daripada nilainya.

Gambar 1 – Mendapatkan String Koneksi dari Pemasang SQL Express

Perhatikan bahwa, pada saat penulisan ini, program penginstalan SQL Express juga menyertakan tautan untuk mengunduh program penginstalan SSMS.

Cara Membuat Database di SQL Express

Setelah SQL Express dan SSMS diinstal, sekarang saatnya untuk membuat database dasar dengan batasan akses yang sesuai. Cara termudah untuk memulai SSMS adalah dengan mengklik Mulai di Windows, ketik "ssms" ke dalam bilah pencarian, tunggu "Microsoft SQL Server Management Studio 18" muncul di kanan atas, lalu klik tombol Buka tautan di sisi kanan panel menu Mulai:

Gambar 2 – Memulai SSMS

Saat memulai SSMS, seseorang akan disambut oleh kotak dialog berikut:

Gambar 3 – Dialog Pembukaan SSMS

Dengan Otentikasi Windows, tidak perlu memasukkan kredensial apa pun. Akun Pengguna Windows di mana SQL Express diinstal memiliki hak administratif untuk contoh SQL Express. Cukup klik Hubungkan untuk melanjutkan.

Di sisi paling kiri Jendela Aplikasi SSMS , akan ada Object Explorer . Untuk membuat database baru, klik kanan pada Databases dan pilih Buat Basis Data dari Konteks menu:

Gambar 4 – Membuat Database Baru – Bagian 1 dari 2

Mengklik Basis Data Baru… akan membuka jendela dialog baru yang memungkinkan untuk memasukkan rincian database baru. Untuk demonstrasi ini, database akan disebut RazorDemo , sebagai sedikit kemunduran ke artikel sebelumnya tentang mengembangkan aplikasi berbasis Razor di C#. Masukkan nama database ke dalam kotak teks di sebelah Nama Database lalu klik tombol OK tombol di bagian bawah jendela dialog. Perhatikan bahwa, pada ilustrasi di bawah, kolom untuk Logical Name file dilebarkan sedikit sehingga Logical Names full lengkap file database yang sedang dibuat terbuka:

Gambar 5 – Membuat Database Baru – Bagian 2 dari 2

Database baru kemudian akan muncul di Object Explorer di bawah Database map:

Gambar 6 – Database “RazorDemo” yang baru dibuat

Cara Membuat Tabel di SQL Express

Database relasional tidak terlalu berguna tanpa tabel untuk menyimpan data, dan cara paling mudah untuk membuat tabel tersebut adalah dengan menggunakan kode SQL. Catatan, sementara seseorang dapat menggunakan Wizard Pembuatan Tabel untuk membuat tabel, menggunakan kode SQL lebih cepat, lebih mudah dan jauh lebih mudah. Mulailah dengan mengklik kanan pada RazorDemo entri basis data, lalu klik kiri pada Kueri Baru opsi di jendela konteks:

Gambar 7 – Membuka Jendela Kueri Baru

Jendela editor kueri yang mirip dengan yang di bawah ini akan muncul di sebelah kanan Object Explorer :

Gambar 8 – Jendela Editor Kueri

Kode pembuatan tabel ditunjukkan pada daftar di bawah ini:

use RazorDemo;  # See the Important Note below

create table artists
(rcdid int not null identity primary key,
artist_name varchar(max));

create table albums
(rcdid int not null identity primary key,
artist_id int not null references artists(rcdid) on delete cascade,
album_name varchar(max));
         

Listing 1 - Table Creation SQL Code

Catatan, saat membuat Jendela Editor Kueri dari database biasanya menjamin bahwa database yang dipilih akan menjadi database yang digunakan untuk mengeksekusi kode, sebaiknya selalu menggunakan secara eksplisit database yang dimaksud di awal kode. penggunaan perintah secara eksplisit memilih nama database yang mengikutinya.

Menekan F5 atau mengklik tombol Eksekusi tombol akan mengeksekusi pernyataan terhadap RazorDemo basis data. Jika eksekusi berhasil, pesan yang menunjukkan demikian akan muncul di “Pesan kotak di bawah ini:

Gambar 9 – Pembuatan Tabel yang Berhasil

Tabel yang baru dibuat dan kolomnya dapat dilihat di Object Explorer demikian juga. Perhatikan bahwa terkadang Refresh opsi dari menu konteks yang muncul setelah mengklik kanan database mungkin perlu dipilih untuk menampilkan objek baru dalam database:

Gambar 10 – Menyegarkan Penjelajah Objek


Gambar 11 – Tabel baru dan kolomnya

Pada titik ini, SSMS dapat ditutup dengan aman.

Perhatikan bahwa SSMS bekerja dengan cara yang sama dengan database SQL Server apa pun juga. Itu selalu merupakan praktik terbaik untuk menyimpan semua kode pembuatan tabel tidak peduli server database apa yang digunakan. Meskipun SQL Server dan SQL memungkinkan pemulihan skrip tersebut, keduanya memungkinkan penggunaan enkripsi pada pernyataan tersebut juga, dan dalam kasus tersebut, kode tidak dapat dipulihkan.

Python dan SQL Express

Biasanya, diskusi tentang keamanan SQL Server diperlukan di sini, tetapi karena Koneksi Tepercaya akan digunakan, selama proses berjalan yang mengeksekusi kode Python dimiliki oleh Pengguna Windows yang sudah memiliki akses ke database yang sedang diakses, diskusi itu tidak diperlukan. Perlu diingat bahwa baik SQL Server dan SQL Express menawarkan penyesuaian terkait keamanan yang sangat kuat, tetapi hal itu berada di luar cakupan artikel yang ditujukan untuk pemula.

Catatan, jangan mengabaikan keamanan database yang tepat untuk aplikasi apa pun yang berjalan di lingkungan produksi! Pastikan bahwa hanya hak istimewa seminimal mungkin yang diberikan ke akun pengguna yang akan mengakses database di lingkungan proyeksi.

Versi Python yang digunakan untuk contoh kode ini adalah 3.10, dan telah diinstal melalui Microsoft Store di Windows. Menginstal Python dengan metode ini akan menambahkan executable Python dan PIP3 ke jalur sistem, sehingga jalur lengkap ke perintah ini tidak perlu diketik di Command Prompt jendela. Untuk entri kode, editor teks tanpa biaya yang bagus adalah Notepad++.

Membuka Prompt Perintah Windows

Mengeksekusi kode Python paling baik dilakukan melalui Command Prompt . Untuk mengakses Prompt Perintah , klik tombol Mulai tombol di Windows dan masukkan cmd ke dalam bilah pencarian. Tunggu Prompt Perintah muncul, lalu klik tombol Buka tautan di sisi kanan Start Menu :

Gambar 12 – Membuka Prompt Perintah

Command Prompt typical yang khas jendela terlihat seperti ini:

Gambar 13 – Command Prompt biasa

Cara Memasang PyODBC

PyODBC adalah modul Python yang memungkinkan Python untuk mengakses SQL Server dan SQL Express. Setelah instalasi Python melalui Microsoft Store, PyODBC dapat ditambahkan ke Python melalui perintah:

pip3 install pyodbc

Gambar 14 – Instalasi PyODBC berhasil

Catatan, jika ada beberapa versi Python yang terinstal, misalnya Python 2 dan Python 3, maka mungkin perlu awalan pip3 perintah dengan path lengkap WIndows ke perintah untuk versi Python yang sesuai.

Perhatikan juga bahwa jika hanya Python 3 yang diinstal, pip3 perintah harus tetap digunakan di atas pip . yang lebih umum perintah, karena ini adalah konvensi yang tepat.

Menulis Kode Python

Sekarang database telah dikonfigurasi dan PyODBC diinstal, database dapat diisi. Dalam kasus database yang mengkatalogkan artis dan album, beberapa nama band dan album yang dibuat secara acak sudah cukup. Kode Python untuk terhubung ke database juga disertakan, tetapi sisipannya belum (belum):

# bad-band-name-maker.py
import sys
import random
import pyodbc

part1 = ["The", "Uncooked", "Appealing", "Larger than Life", "Drooping", "Unwell", "Atrocious", "Glossy", "Barrage", "Unlawful"]
part2 = ["Defeated", "Hi-Fi", "Extraterrestrial", "Adumbration", "Limpid", "Looptid", "Cromulent", "Unsettled", "Soot", "Twinkle"]
part3 = ["Brain", "Segment", "Audio", "Legitimate Business", "Mentality", "Sound", "Canticle", "Monsoon", "Preserves", "Hangout"]

part4 = ["Cougar", "Lion", "Lynx", "Ocelot", "Puma", "Jaguar", "Panther"]
part5 = ["Fodder", "Ersatz Goods", "Leftovers", "Infant Formula", "Mush", "Smoothie", "Milkshakes"]


def main(argv):
  # Connect to the RazorDemo database.
  conn = pyodbc.connect("Driver={ODBC Driver 17 for SQL Server};Server=localhost\SQLEXPRESS;Database=RazorDemo;Trusted_Connection=yes;")

  # Generate 15 bad band names:
  for x in range(1, 16):
    rand1 = random.randrange(0, 9)
    rand2 = random.randrange(0, 9)
    rand3 = random.randrange(0, 9)
    badName = part1[rand1] + ' ' + part2[rand2] + ' ' + part3[rand3]
    print ("Band name [" + str(x) + "] is [" + badName + "]")
  
    for y in range(1, 3):
      rand4 = random.randrange(0, len(part4))
      rand5 = random.randrange(0, len(part5))
      albumName = part4[rand4] + " " + part5[rand5]
      print ("\tAlbum [" + albumName + "]")
      
  # Close the Connection
  conn.close()
  return 0

if __name__ == "__main__":
	main(sys.argv[1:])



Listing 2 - Making up some data

Ini memberikan output berikut:

Gambar 15 – Nama Band yang Dihasilkan Secara Acak

Perhatikan penggunaan cd perintah untuk mengubah ke direktori tempat kode Python disimpan. PyODBC hubungkan() fungsi akan gagal jika saat ini login Akun Pengguna Windows tidak terdaftar memiliki akses di SQL Express. Ini hanya masalah jika database dibuat dengan satu Akun Pengguna Windows tetapi kode dijalankan di bawah Akun Pengguna Windows yang berbeda .

Cara Terburuk untuk INSERT Data di SQL dan PyODBC

Banyak pengembang Python pemula tergoda untuk melakukan panggilan ke PyODBC panggilan ke INSERT pernyataan di bagian kode berikut, dan dalam konteks apa yang akan dinyatakan selanjutnya, ini bukan ide yang buruk:

Gambar 16 – Cara yang "hampir" salah untuk bekerja dengan database

Alasan mengapa menggunakan panggilan ke PyODBC untuk melakukan INSERT , PILIH , dan fungsi terkait database lainnya, seperti UPDATE atau HAPUS , dalam loop bisa menjadi buruk karena ada overhead yang menyertai setiap panggilan ini. Dalam satu lingkaran yang berpotensi berulang ratusan kali, ribuan kali, atau bahkan lebih, ini dapat menghasilkan banyak waktu (menit atau lebih) untuk menjalankan skrip. Untuk aplikasi web yang menggunakan pendekatan seperti itu, masalah kinerja bertambah parah, karena banyak server web memaksakan batasan waktu yang dapat dijalankan skrip. Dalam keadaan apa pun, jangan pernah melewatkan input yang dibuat pengguna secara langsung ke database. Selalu periksa input untuk memastikan input tidak akan merusak fungsionalitas database atau menyebabkan masalah keamanan melalui serangan SQL Injection.

Idealnya, seseorang ingin menggunakan loop di atas untuk membuat SQL Batch (daftar pernyataan) dan kemudian memiliki PyODBC dijalankan pada batch tunggal itu, tetapi ini akan menjadi ide yang sangat buruk jika datanya tidak dibersihkan.

Mengapa data perlu dibersihkan? Alasannya bermuara pada keamanan, karena input pengguna tidak pernah bisa dipercaya. Membersihkan data berarti merepresentasikannya dengan cara yang mencegah apa pun selain pernyataan SQL yang dibuat oleh pengembang program untuk dieksekusi. Seorang pengguna dapat meneruskan string yang dibuat dengan jahat yang akan memungkinkan eksekusi kode SQL yang dibuat secara sewenang-wenang. Ini dikenal sebagai serangan SQL Injection. Meskipun nilai data yang masuk ke dalam kumpulan dapat dibersihkan, proses untuk melakukannya berada di luar cakupan tutorial pengantar.

PyODBC menyediakan mekanisme untuk melindungi database dari serangan SQL Injection dengan membersihkan input pengguna. Ini melibatkan penggunaan pernyataan berparameter , juga disebut sebagai pernyataan yang disiapkan . Keamanan harus selalu menjadi prioritas, meskipun harus mengorbankan kecepatan atau metrik performa lainnya.

Akun Pengguna Windows yang memiliki akses ke database ini secara default memiliki hak sysadmin. Ini berarti bahwa jika serangan SQL Injection terjadi, pengguna jahat dapat memperoleh akses ke semua data di setiap database di server. Dalam praktiknya, tidak ada akun dengan hak istimewa sysadmin yang boleh mengakses basis data apa pun dari kode Python.

Daftar di bawah ini menambah contoh kode Python pertama dengan menggunakan PyODBC kursor untuk menyisipkan data:

# bad-band-name-maker2.py
import sys
import random
import pyodbc

part1 = ["The", "Uncooked", "Appealing", "Larger than Life", "Drooping", "Unwell", "Atrocious", "Glossy", "Barrage", "Unlawful"]
part2 = ["Defeated", "Hi-Fi", "Extraterrestrial", "Adumbration", "Limpid", "Looptid", "Cromulent", "Unsettled", "Soot", "Twinkle"]
part3 = ["Brain", "Segment", "Audio", "Legitimate Business", "Mentality", "Sound", "Canticle", "Monsoon", "Preserves", "Hangout"]

part4 = ["Cougar", "Lion", "Lynx", "Ocelot", "Puma", "Jaguar", "Panther"]
part5 = ["Fodder", "Ersatz Goods", "Leftovers", "Infant Formula", "Mush", "Smoothie", "Milkshakes"]


def main(argv):
  # Connect to the RazorDemo database.
  conn = pyodbc.connect("Driver={ODBC Driver 17 for SQL Server};Server=localhost\SQLEXPRESS;Database=RazorDemo;Trusted_Connection=yes;")

  # Generate 15 bad band names, and try to keep them unique.
  previousNames = ""
  nameCount = 0
  while (nameCount < 16):
    rand1 = random.randrange(0, 9)
    rand2 = random.randrange(0, 9)
    rand3 = random.randrange(0, 9)
    badName = part1[rand1] + ' ' + part2[rand2] + ' ' + part3[rand3]
    # A crude but effective way of ensuring uniqueness, although there is no unique constraint on the artist name in the database.
    # This prepends and appends bars to both the list of previously used names and the current name. If the current name is
    # new, it will not be in that string.
    if ("|" + previousNames + "|").find("|" + badName + "|") == -1: 
      print ("Band name [" + str(nameCount) + "] is [" + badName + "]")
      sql1 = "insert into artists (artist_name) values (?)"
      values1 = [badName]
      rs1 = conn.cursor()
      rs1.execute(sql1, values1)
      rs1.commit()
      # If the cursor is not closed, then other cursors cannot be executed.
      rs1.close()
      for y in range(1, 3):
        rand4 = random.randrange(0, len(part4))
        rand5 = random.randrange(0, len(part5))
        albumName = part4[rand4] + " " + part5[rand5]
        print ("\tAlbum [" + albumName + "]")
        sql2 = "insert into albums (artist_id, album_name) values ((select top 1 rcdid from artists where artist_name=?), ?)"
        # Each array item here corresponds to the position of the ? in the SQL statement above.
        values2 = [badName, albumName]
        rs2 = conn.cursor ()
        rs2.execute(sql2, values2)
        rs2.commit()
        rs2.close()
      # Creates a bar-delimited list of previously used names.
      if previousNames == "":
        previousNames = badName
      else:
        previousNames = previousNames + "|" + badName
      nameCount = 1 + nameCount
    else:
      print ("Found a duplicate of [" + badName + "]")
  #print (previousNames)
  # Close the Connection
  conn.close()
  return 0

if __name__ == "__main__":
	main(sys.argv[1:])





Listing 3 - Inserting the data

Kueri berikut dapat dijalankan di SSMS untuk memverifikasi keluaran kode:

Gambar 17 – Penyisipan Data yang Berhasil

MEMILIH Data dalam SQL Express dan Python

Sekarang setelah ada data dalam database, alangkah baiknya untuk menanyakannya. Di bawah ini adalah skrip sederhana yang menerima data pengguna dari keyboard, meneruskannya ke database melalui kueri berparameter:

# bad-band-name-maker3.py
import sys

import pyodbc

def main(argv):
  searchValue = input("Enter something: ")
  # Cap the length at something reasonable. The first 20 characters.
  searchValue = searchValue[0:20]
  # Set the search value to lower case so we can perform case-insensitive matching:
  searchValue = searchValue.lower()
  
  # Connect to the RazorDemo database.
  conn = pyodbc.connect("Driver={ODBC Driver 17 for SQL Server};Server=localhost\SQLEXPRESS;Database=RazorDemo;Trusted_Connection=yes;")

  # You must use a parameterized query here in order to protect from SQL Injection Attacks!
  
  # For the like operator, the percent signs must be separated from the term or else the parameterization will fail.
  
  sql1 = ("select a.artist_name, b.album_name from artists a, albums b where b.artist_id = a.rcdid and " +
    "lower(album_name) like ('%' + ? + '%') order by a.artist_name, b.album_name")
  # Below is an array with one element:
  values1 = [searchValue]
  rs1 = conn.cursor()
  rs1.execute(sql1, values1)
  rows1 = rs1.fetchone()
  #print ("Type is [" + str(type(rows1)) + "]")
  if str(type(rows1)).find("NoneType") == -1:
    while rows1:
      # Columns are indexed by number only. 0 is the a.artist_name column and 1 is the b.album_name columns
      print(rows1[0] + " - " + rows1[1])
      rows1 = rs1.fetchone()
  else:
    print ("No album name matched [" + searchValue + "]")
  # Close the Connection
  conn.close()

  return 0

if __name__ == "__main__":
	main(sys.argv[1:])



Listing 4 - Querying the Data

Hasil yang sama. Salah satunya bahkan menyertakan contoh serangan SQL Injection mentah:

Gambar 18 – Hasil Kueri. Catat nilai pencarian terakhir.

Pemikiran Terakhir tentang Pengembangan Basis Data Python

Benar-benar tidak ada batasan untuk aplikasi berbasis SQL Server yang dapat dikembangkan menggunakan Python. Seorang pengembang hanya dibatasi oleh pengetahuan tentang SQL, dan semoga konsep dasar yang disajikan dalam artikel ini dapat mengarahkan pengembang tingkat pemula ke arah yang benar dalam hal memperluas pemahaman tentang SQL dan membangun aplikasi yang lebih kompleks.

Tutorial pemrograman database Python ini menyajikan cara-cara di mana SQL Express dapat diinstal sebagai stand-in pengembangan untuk SQL Server, dan menunjukkan bagaimana Python 3 dapat diperluas untuk berkomunikasi dengan benar dengan instance database SQL Express di server itu. Artikel ini juga menunjukkan bagaimana SQL Server Management Studio harus digunakan untuk mengelola database SQL Express atau SQL Server. Lebih jauh, artikel ini juga menyentuh tindakan pencegahan keamanan dasar dan penggunaan pengkodean yang efisien untuk tujuan memastikan waktu eksekusi yang wajar untuk aplikasi yang digerakkan oleh SQL Server.


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Perbedaan antara Inner join dan Outer join di SQL

  2. StarJoinInfo dalam Rencana Eksekusi

  3. Membuat Server Tertaut ODBC Tanpa Mengonfigurasi Sumber Data

  4. Mitos Performa :Truncate Tidak Dapat Digulung Kembali

  5. Cara Menghilangkan Baris Duplikat di SQL