Kursus
Sistem manajemen basis data relasional (RDBMS) sangat populer dan merupakan bagian integral dari pengembangan aplikasi. Ada banyak RDBMS berbeda, misalnya MySQL, PostgreSQL, IBM DB2, Oracle 11g, dan seterusnya. Salah satu RDBMS tersebut adalah SQLite. SQLite banyak digunakan dan menjadi favorit di kalangan pengembang karena banyak alasan -
- Sangat ringan (tidak lebih dari 500 KB)
- Bersifat serverless yang berarti Anda tidak memerlukan server terpisah untuk menggunakan layanannya
- Tidak perlu penyiapan yang rumit
- Sepenuhnya transaksional dan memenuhi standar konkurensi
- dan masih banyak lagi...
Namun, ada beberapa keterbatasan SQLite juga. Misalnya, SQLite tidak mendukung join seperti RIGHT OUTER JOIN dan FULL OUTER JOIN. Tetapi kelebihannya jauh lebih banyak dibandingkan keterbatasannya. Dalam tutorial ini, Anda akan diperkenalkan pada penggunaan SQLite di Python dan berikut adalah gambaran umum materi yang dibahas -
- Instalasi dan penyiapan SQLite
- Membuat basis data dan tabel di SQLite
- Mengimpor file .csv ke dalam basis data SQLite
- SQLite di Python
Catatan: Tutorial ini mengasumsikan bahwa Anda sudah familiar dengan dasar-dasar SQL (menggunakan RDBMS apa pun) dan Python (3). Jika Anda ingin menyegarkan kembali keterampilan tersebut, sumber daya berikut mungkin berguna -
Setelah Anda merasa nyaman bekerja dengan SQL dan Python, Anda dapat kembali dan melanjutkan dari bagian terakhir yang Anda baca.
Instalasi dan Penyiapan
Menginstal dan menyiapkan SQLite hanya memerlukan beberapa menit. Anda dapat menggunakan SQLite dari alat baris perintah, tetapi ada utilitas berbasis GUI yang memungkinkan Anda menggunakan SQLite melalui antarmuka grafis yang baik. Untuk tutorial ini, Anda akan menggunakan DB Browser for SQLite. Untuk memulai, pertama-tama unduh alat ini dari sini sesuai dengan platform OS Anda.
Pada platform Windows 7, antarmuka DB Browser for SQLite terlihat seperti ini -

Membuat Basis Data dan Tabel
Setelah Anda siap dengan alat DB Browser, Anda dapat membuat basis data SQLite baru untuk melanjutkan. Untuk melakukannya, klik tab New Database -

Setelah mengklik tab New Database, Anda akan diminta memasukkan nama basis data. Beri nama sesuai pilihan Anda lalu lanjutkan. Basis data kosong dengan nama yang Anda masukkan akan langsung dibuat, dan Anda akan diminta membuat tabel di bawah basis data tersebut. Anda dapat melewati bagian pembuatan tabel untuk saat ini, Anda akan mengerjakannya sebentar lagi.
Untuk membuat tabel, Anda perlu menetapkan skema tabel. Untuk tutorial ini dan demi pemahaman, mari terlebih dahulu membuat tabel sederhana bernama consumers dengan field dan tipe data berikut -
- consumer_id (integer)
- consumer_full_name (string) (tidak boleh null)
- consumer_email (string) (tidak boleh null)
- consumer_grade (character) (tidak boleh null)
Catatan: Jika Anda familiar dengan perancangan skema basis data, Anda mungkin ingat bahwa field consumer_id adalah primary key tabel (itulah sebabnya digarisbawahi).
Untuk membuat tabel, klik tab Create Table dan Anda akan diminta memasukkan detail tabel yang ingin Anda buat -

Jika Anda memperhatikan gambar di atas, Anda akan melihat bahwa gambar tersebut memuat detail persis seperti yang ingin Anda masukkan ke dalam tabel consumers. Anda juga dapat melihat SQL yang bersesuaian untuk membuat tabel tersebut. Alat DB Browser memungkinkan Anda melakukan ini dengan sangat efisien. Setelah mengikuti langkah ini, klik tombol OK dan tabel consumers seharusnya muncul di bawah basis data yang Anda buat sebelumnya -

Tabel sqlite_sequence ada karena jika Anda menentukan field consumer_id untuk diinkrementasi otomatis, SQLite membuat tabel terpisah untuk menyimpan urutan. Anda juga dapat menjalankan kueri SQL lain dengan pergi ke bagian Execute SQL. Silakan jalankan beberapa kueri SQL favorit Anda.
Sekarang sebelum berinteraksi dengan basis data SQLite menggunakan Python, mari lihat bagaimana Anda dapat mengimpor file .csv ke dalam basis data SQLite dan menggunakannya untuk analisis.
Mengimpor File .csv ke dalam Basis Data SQLite
Untuk mengimpor file .csv ke dalam basis data yang Anda buat, ikuti navigasi ini: File -> Import -> Table from CSV file. Anda dapat menggunakan file .csv apa pun untuk tujuan ini. Contoh kami memuat detail tentang berbagai negara di seluruh dunia. Kami menavigasi ke file tersebut, dan melihat kotak dialog seperti berikut setelahnya -

DB Browser memungkinkan Anda menentukan banyak hal di sini, termasuk nama tabel. Pastikan Anda mencentang opsi Column names in the first line agar SQLite dapat mengekstrak nama kolom secara otomatis. Klik OK setelah Anda selesai dengan spesifikasinya.
Pada contoh kami, kita seharusnya dapat melihat sebuah entri untuk tabel tersebut -

Silakan jalankan beberapa kueri select untuk melihat apakah tabel tersebut terimpor dengan benar atau tidak.
SQLite di Python
Sekarang Anda memiliki basis data dan tabel yang siap digunakan. Untuk dapat berinteraksi dengan basis data SQLite menggunakan Python, Anda memerlukan modul sqlite3 yang disertakan dengan distribusi Anaconda.
Sekarang, Anda akan terhubung ke basis data yang Anda buat menggunakan metode connect() yang disediakan oleh sqlite3. Ini mengembalikan objek Connection. Berikan path basis data ke metode connect. Basis data umumnya disimpan dengan ekstensi .db.
import sqlite3
conn = sqlite3.connect('tutorial.db')
Setelah Anda memiliki Connection ke basis data, Anda dapat membuat objek Cursor dan memanggil metode execute() untuk menjalankan perintah SQL.
cur = conn.cursor()
cur.execute('SELECT * from countries')
<sqlite3.Cursor at 0x398ace0>
Setelah menjalankan pernyataan SELECT, Anda dapat -
- memperlakukan objek cursor
cursebagai iterator, memanggil metodefetchone()untuk menampilkan satu baris atau - memanggil metode
fetchall()untuk menampilkan daftar baris
Mari coba keduanya satu per satu.
print(cur.fetchone())
('AFG', 'Afghanistan', 'Asia', 'Southern and Central Asia', '1919', 'Afganistan/Afqanestan', 'Islamic Emirate', 'Kabul')
print(cur.fetchall())
[('NLD', 'Netherlands', 'Europe', 'Western Europe', '1581', 'Nederland', 'Constitutional Monarchy', 'Amsterdam'), ('ALB', 'Albania', 'Europe', 'Southern Europe', '1912', 'Shqiperia', 'Republic', 'Tirane'), ('DZA', 'Algeria', 'Africa', 'Northern Africa', '1962', 'Al-Jaza\x92ir/Algerie', 'Republic', 'Algiers'), ('ASM', 'American Samoa', 'Oceania', 'Polynesia', None, 'Amerika Samoa', 'US Territory', 'Pago Pago'), ('AND', 'Andorra', 'Europe', 'Southern Europe', '1278', 'Andorra', 'Parliamentary Coprincipality', 'Andorra la Vella'), ('AGO', 'Angola', 'Africa', 'Central Africa', '1975', 'Angola', 'Republic', 'Luanda'), ('ATG', 'Antigua and Barbuda', 'North America', 'Caribbean', '1981', 'Antigua and Barbuda', 'Constitutional Monarchy', "Saint John's"), ('ARE', 'United Arab Emirates', 'Asia', 'Middle East', '1971', 'Al-Imarat al-´Arabiya al-Muttahida', 'Emirate Federation', 'Abu Dhabi'), ('ARG', 'Argentina', 'South America', 'South America', '1816', 'Argentina', 'Federal Republic', 'Buenos Aires'), ('ARM', 'Armenia', 'Asia', 'Middle East', '1991', 'Hajastan', 'Republic', 'Yerevan'), ('ABW', 'Aruba', 'North America', 'Caribbean', None, 'Aruba', 'Nonmetropolitan Territory of The Netherlands', 'Oranjestad'), ('AUS', 'Australia', 'Oceania', 'Australia and New Zealand', '1901', 'Australia', 'Constitutional Monarchy, Federation', 'Canberra'), ('AZE', 'Azerbaijan', 'Asia', 'Middle East', '1991', 'Azarbaycan', 'Federal Republic', 'Baku'), ('BHS', 'Bahamas', 'North America', 'Caribbean', '1973', 'The Bahamas', 'Constitutional Monarchy', 'Nassau'), ('BHR', 'Bahrain', 'Asia', 'Middle East', '1971', 'Al-Bahrayn', 'Monarchy (Emirate)', 'Manama'), ('BGD', 'Bangladesh', 'Asia', 'Southern and Central Asia', '1971', 'Bangladesh', 'Republic', 'Dhaka'), ('BRB', 'Barbados', 'North America', 'Caribbean', '1966', 'Barbados', 'Constitutional Monarchy', 'Bridgetown'), ('BEL', 'Belgium', 'Europe', 'Western Europe', '1830', 'Belgie/Belgique', 'Constitutional Monarchy, Federation', 'Brussels'), ('BLZ', 'Belize', 'North America', 'Central America', '1981', 'Belize', 'Constitutional Monarchy', 'Belmopan'), ('BEN', 'Benin', 'Africa', 'Western Africa', '1960', 'Benin', 'Republic', 'Porto-Novo'), ('BMU', 'Bermuda', 'North America', 'North America', None, 'Bermuda', 'Dependent Territory of the UK', 'Hamilton'), ('BTN', 'Bhutan', 'Asia', 'Southern and Central Asia', '1910', 'Druk-Yul', 'Monarchy', 'Thimphu'), ('BOL', 'Bolivia', 'South America', 'South America', '1825', 'Bolivia', 'Republic', 'La Paz'), ('BIH', 'Bosnia and Herzegovina', 'Europe', 'Southern Europe', '1992', 'Bosna i Hercegovina', 'Federal Republic', 'Sarajevo'), ('BWA', 'Botswana', 'Africa', 'Southern Africa', '1966', 'Botswana', 'Republic', 'Gaborone'), ('BRA', 'Brazil', 'South America', 'South America', '1822', 'Brasil', 'Federal Republic', 'Brasilia'), ('GBR', 'United Kingdom', 'Europe', 'British Islands', '1066', 'United Kingdom', 'Constitutional Monarchy', 'London'), ('VGB', 'Virgin Islands, British', 'North America', 'Caribbean', None, 'British Virgin Islands', 'Dependent Territory of the UK', 'Road Town'), ('BRN', 'Brunei', 'Asia', 'Southeast Asia', '1984', 'Brunei Darussalam', 'Monarchy (Sultanate)', 'Bandar Seri Begawan'), ('BGR', 'Bulgaria', 'Europe', 'Eastern Europe', '1908', 'Balgarija', 'Republic', 'Sofia'), ('BFA', 'Burkina Faso', 'Africa', 'Western Africa', '1960', 'Burkina Faso', 'Republic', 'Ouagadougou'), ('BDI', 'Burundi', 'Africa', 'Eastern Africa', '1962', 'Burundi/Uburundi', 'Republic', 'Bujumbura'), ('CYM', 'Cayman Islands', 'North America', 'Caribbean', None, 'Cayman Islands', 'Dependent Territory of the UK', 'George Town'), ('CHL', 'Chile', 'South America', 'South America', '1810', 'Chile', 'Republic', 'Santiago'), ('CRI', 'Costa Rica', 'North America', 'Central America', '1821', 'Costa Rica', 'Republic', 'San Jose'), ('DJI', 'Djibouti', 'Africa', 'Eastern Africa', '1977', 'Djibouti/Jibuti', 'Republic', 'Djibouti'), ('DMA', 'Dominica', 'North America', 'Caribbean', '1978', 'Dominica', 'Republic', 'Roseau'), ('DOM', 'Dominican Republic', 'North America', 'Caribbean', '1844', 'Republica Dominicana', 'Republic', 'Santo Domingo'), ('ECU', 'Ecuador', 'South America', 'South America', '1822', 'Ecuador', 'Republic', 'Quito'), ('EGY', 'Egypt', 'Africa', 'Northern Africa', '1922', 'Misr', 'Republic', 'Cairo'), ('SLV', 'El Salvador', 'North America', 'Central America', '1841', 'El Salvador', 'Republic', 'San Salvador'), ('ERI', 'Eritrea', 'Africa', 'Eastern Africa', '1993', 'Ertra', 'Republic', 'Asmara'), ('ESP', 'Spain', 'Europe', 'Southern Europe', '1492', 'Espana', 'Constitutional Monarchy', 'Madrid'), ('ZAF', 'South Africa', 'Africa', 'Southern Africa', '1910', 'South Africa', 'Republic', 'Pretoria'), ('ETH', 'Ethiopia', 'Africa', 'Eastern Africa', '-1000', 'YeItyop´iya', 'Republic', 'Addis Ababa'), ('FJI', 'Fiji Islands', 'Oceania', 'Melanesia', '1970', 'Fiji Islands', 'Republic', 'Suva'), ('PHL', 'Philippines', 'Asia', 'Southeast Asia', '1946', 'Pilipinas', 'Republic', 'Manila'), ('FRO', 'Faroe Islands', 'Europe', 'Nordic Countries', None, 'Foroyar', 'Part of Denmark', 'Torshavn'), ('GAB', 'Gabon', 'Africa', 'Central Africa', '1960', 'Le Gabon', 'Republic', 'Libreville'), ('GMB', 'Gambia', 'Africa', 'Western Africa', '1965', 'The Gambia', 'Republic', 'Banjul'), ('GEO', 'Georgia', 'Asia', 'Middle East', '1991', 'Sakartvelo', 'Republic', 'Tbilisi'), ('GHA', 'Ghana', 'Africa', 'Western Africa', '1957', 'Ghana', 'Republic', 'Accra'), ('GIB', 'Gibraltar', 'Europe', 'Southern Europe', None, 'Gibraltar', 'Dependent Territory of the UK', None), ('GRD', 'Grenada', 'North America', 'Caribbean', '1974', 'Grenada', 'Constitutional Monarchy', "Saint George's"), ('GRL', 'Greenland', 'North America', 'North America', None, 'Kalaallit Nunaat/Gronland', 'Part of Denmark', 'Nuuk'), ('GUM', 'Guam', 'Oceania', 'Micronesia', None, 'Guam', 'US Territory', 'Agana'), ('GTM', 'Guatemala', 'North America', 'Central America', '1821', 'Guatemala', 'Republic', 'Guatemala City'), ('GIN', 'Guinea', 'Africa', 'Western Africa', '1958', 'Guinee', 'Republic', 'Conakry'), ('GNB', 'Guinea-Bissau', 'Africa', 'Western Africa', '1974', 'Guine-Bissau', 'Republic', 'Bissau'), ('GUY', 'Guyana', 'South America', 'South America', '1966', 'Guyana', 'Republic', 'Georgetown'), ('HTI', 'Haiti', 'North America', 'Caribbean', '1804', 'Haiti/Dayti', 'Republic', 'Port-au-Prince'), ('HND', 'Honduras', 'North America', 'Central America', '1838', 'Honduras', 'Republic', 'Tegucigalpa'), ('HKG', 'Hong Kong', 'Asia', 'Eastern Asia', None, 'Xianggang/Hong Kong', 'Special Administrative Region of China', None), ('IDN', 'Indonesia', 'Asia', 'Southeast Asia', '1945', 'Indonesia', 'Republic', 'Jakarta'), ('IND', 'India', 'Asia', 'Southern and Central Asia', '1947', 'Bharat/India', 'Federal Republic', 'New Delhi'), ('IRQ', 'Iraq', 'Asia', 'Middle East', '1932', 'Al-´Iraq', 'Republic', 'Baghdad'), ('IRN', 'Iran', 'Asia', 'Southern and Central Asia', '1906', 'Iran', 'Islamic Republic', 'Tehran'), ('IRL', 'Ireland', 'Europe', 'British Islands', '1921', 'Ireland/Eire', 'Republic', 'Dublin'), ('ISL', 'Iceland', 'Europe', 'Nordic Countries', '1944', 'Island', 'Republic', 'Reykjavik'), ('ISR', 'Israel', 'Asia', 'Middle East', '1948', 'Yisra\x92el/Isra\x92il', 'Republic', None), ('ITA', 'Italy', 'Europe', 'Southern Europe', '1861', 'Italia', 'Republic', 'Rome'), ('AUT', 'Austria', 'Europe', 'Western Europe', '1918', 'Osterreich', 'Federal Republic', 'Vienna'), ('JAM', 'Jamaica', 'North America', 'Caribbean', '1962', 'Jamaica', 'Constitutional Monarchy', 'Kingston'), ('JPN', 'Japan', 'Asia', 'Eastern Asia', '-660', 'Nihon/Nippon', 'Constitutional Monarchy', 'Tokyo'), ('YEM', 'Yemen', 'Asia', 'Middle East', '1918', 'Al-Yaman', 'Republic', "Sana'a"), ('JOR', 'Jordan', 'Asia', 'Middle East', '1946', 'Al-Urdunn', 'Constitutional Monarchy', 'Amman'), ('KHM', 'Cambodia', 'Asia', 'Southeast Asia', '1953', 'Kampuchea', 'Constitutional Monarchy', 'Phnom Penh'), ('CMR', 'Cameroon', 'Africa', 'Central Africa', '1960', 'Cameroun/Cameroon', 'Republic', 'Yaounde'), ('CAN', 'Canada', 'North America', 'North America', '1867', 'Canada', 'Constitutional Monarchy, Federation', 'Ottawa'), ('CPV', 'Cape Verde', 'Africa', 'Western Africa', '1975', 'Cabo Verde', 'Republic', 'Praia'), ('KAZ', 'Kazakhstan', 'Asia', 'Southern and Central Asia', '1991', 'Qazaqstan', 'Republic', 'Astana'), ('KEN', 'Kenya', 'Africa', 'Eastern Africa', '1963', 'Kenya', 'Republic', 'Nairobi'), ('CAF', 'Central African Republic', 'Africa', 'Central Africa', '1960', 'Centrafrique/Be-Afrika', 'Republic', 'Bangui'), ('CHN', 'China', 'Asia', 'Eastern Asia', '-1523', 'Zhongquo', "People'sRepublic", 'Beijing'), ('KGZ', 'Kyrgyzstan', 'Asia', 'Southern and Central Asia', '1991', 'Kyrgyzstan', 'Republic', 'Bishkek'), ('KIR', 'Kiribati', 'Oceania', 'Micronesia', '1979', 'Kiribati', 'Republic', 'Tarawa'), ('COL', 'Colombia', 'South America', 'South America', '1810', 'Colombia', 'Republic', 'Bogota'), ('COM', 'Comoros', 'Africa', 'Eastern Africa', '1975', 'Komori/Comores', 'Republic', 'Moroni'), ('COG', 'Congo', 'Africa', 'Central Africa', '1960', 'Congo', 'Republic', 'Brazzaville'), ('COD', 'Congo, The Democratic Republic of the', 'Africa', 'Central Africa', '1960', 'Republique Democratique du Congo', 'Republic', 'Kinshasa'), ('PRK', 'North Korea', 'Asia', 'Eastern Asia', '1948', 'Choson Minjujuui In´min Konghwaguk (Bukhan)', 'Socialistic Republic', 'Pyongyang'), ('KOR', 'South Korea', 'Asia', 'Eastern Asia', '1948', 'Taehan Min\x92guk (Namhan)', 'Republic', 'Seoul'), ('GRC', 'Greece', 'Europe', 'Southern Europe', '1830', 'Ellada', 'Republic', 'Athens'), ('HRV', 'Croatia', 'Europe', 'Southern Europe', '1991', 'Hrvatska', 'Republic', 'Zagreb'), ('CUB', 'Cuba', 'North America', 'Caribbean', '1902', 'Cuba', 'Socialistic Republic', 'Havana'), ('KWT', 'Kuwait', 'Asia', 'Middle East', '1961', 'Al-Kuwayt', 'Constitutional Monarchy (Emirate)', 'Kuwait City'), ('CYP', 'Cyprus', 'Asia', 'Middle East', '1960', 'Kypros/Kibris', 'Republic', 'Nicosia'), ('LAO', 'Laos', 'Asia', 'Southeast Asia', '1953', 'Lao', 'Republic', 'Vientiane'), ('LVA', 'Latvia', 'Europe', 'Baltic Countries', '1991', 'Latvija', 'Republic', 'Riga'), ('LSO', 'Lesotho', 'Africa', 'Southern Africa', '1966', 'Lesotho', 'Constitutional Monarchy', 'Maseru'), ('LBN', 'Lebanon', 'Asia', 'Middle East', '1941', 'Lubnan', 'Republic', 'Beirut'), ('LBR', 'Liberia', 'Africa', 'Western Africa', '1847', 'Liberia', 'Republic', 'Monrovia'), ('LBY', 'Libya', 'Africa', 'Northern Africa', '1951', 'Libiya', 'Socialistic State', 'Tripoli'), ('LIE', 'Liechtenstein', 'Europe', 'Western Europe', '1806', 'Liechtenstein', 'Constitutional Monarchy', 'Vaduz'), ('LTU', 'Lithuania', 'Europe', 'Baltic Countries', '1991', 'Lietuva', 'Republic', 'Vilnius'), ('LUX', 'Luxembourg', 'Europe', 'Western Europe', '1867', 'Luxembourg/Letzebuerg', 'Constitutional Monarchy', 'Luxembourg'), ('MAC', 'Macao', 'Asia', 'Eastern Asia', None, 'Macau/Aomen', 'Special Administrative Region of China', None), ('MDG', 'Madagascar', 'Africa', 'Eastern Africa', '1960', 'Madagasikara/Madagascar', 'Federal Republic', 'Antananarivo'), ('MKD', 'Macedonia', 'Europe', 'Southern Europe', '1991', 'Makedonija', 'Republic', 'Skopje'), ('MWI', 'Malawi', 'Africa', 'Eastern Africa', '1964', 'Malawi', 'Republic', 'Lilongwe'), ('MDV', 'Maldives', 'Asia', 'Southern and Central Asia', '1965', 'Dhivehi Raajje/Maldives', 'Republic', 'Male'), ('MYS', 'Malaysia', 'Asia', 'Southeast Asia', '1957', 'Malaysia', 'Constitutional Monarchy, Federation', 'Kuala Lumpur'), ('MLI', 'Mali', 'Africa', 'Western Africa', '1960', 'Mali', 'Republic', 'Bamako'), ('MLT', 'Malta', 'Europe', 'Southern Europe', '1964', 'Malta', 'Republic', 'Valletta'), ('MAR', 'Morocco', 'Africa', 'Northern Africa', '1956', 'Al-Maghrib', 'Constitutional Monarchy', 'Rabat'), ('MHL', 'Marshall Islands', 'Oceania', 'Micronesia', '1990', 'Marshall Islands/Majol', 'Republic', 'Majuro'), ('MRT', 'Mauritania', 'Africa', 'Western Africa', '1960', 'Muritaniya/Mauritanie', 'Republic', 'Nouakchott'), ('MUS', 'Mauritius', 'Africa', 'Eastern Africa', '1968', 'Mauritius', 'Republic', 'Port Louis'), ('MEX', 'Mexico', 'North America', 'Central America', '1810', 'Mexico', 'Federal Republic', 'Mexico City'), ('FSM', 'Micronesia, Federated States of', 'Oceania', 'Micronesia', '1990', 'Micronesia', 'Federal Republic', 'Palikir'), ('MDA', 'Moldova', 'Europe', 'Eastern Europe', '1991', 'Moldova', 'Republic', 'Chisinau'), ('MCO', 'Monaco', 'Europe', 'Western Europe', '1861', 'Monaco', 'Constitutional Monarchy', 'Monaco'), ('MNG', 'Mongolia', 'Asia', 'Eastern Asia', '1921', 'Mongol Uls', 'Republic', 'Ulaanbaatar'), ('MOZ', 'Mozambique', 'Africa', 'Eastern Africa', '1975', 'Mocambique', 'Republic', 'Maputo'), ('MMR', 'Myanmar', 'Asia', 'Southeast Asia', '1948', 'Myanma Pye', 'Republic', 'Naypyidaw'), ('NAM', 'Namibia', 'Africa', 'Southern Africa', '1990', 'Namibia', 'Republic', 'Windhoek'), ('NRU', 'Nauru', 'Oceania', 'Micronesia', '1968', 'Naoero/Nauru', 'Republic', 'Yaren District'), ('NPL', 'Nepal', 'Asia', 'Southern and Central Asia', '1769', 'Nepal', 'Constitutional Monarchy', 'Kathmandu'), ('NIC', 'Nicaragua', 'North America', 'Central America', '1838', 'Nicaragua', 'Republic', 'Managua'), ('NER', 'Niger', 'Africa', 'Western Africa', '1960', 'Niger', 'Republic', 'Niamey'), ('NGA', 'Nigeria', 'Africa', 'Western Africa', '1960', 'Nigeria', 'Federal Republic', 'Abuja'), ('NOR', 'Norway', 'Europe', 'Nordic Countries', '1905', 'Norge', 'Constitutional Monarchy', 'Oslo'), ('CIV', "Cote d'Ivoire", 'Africa', 'Western Africa', '1960', 'Cote d\x92Ivoire', 'Republic', 'Yamoussoukro'), ('OMN', 'Oman', 'Asia', 'Middle East', '1951', '´Uman', 'Monarchy (Sultanate)', 'Muscat'), ('PAK', 'Pakistan', 'Asia', 'Southern and Central Asia', '1947', 'Pakistan', 'Republic', 'Islamabad'), ('PLW', 'Palau', 'Oceania', 'Micronesia', '1994', 'Belau/Palau', 'Republic', 'Koror'), ('PAN', 'Panama', 'North America', 'Central America', '1903', 'Panama', 'Republic', 'Panama City'), ('PNG', 'Papua New Guinea', 'Oceania', 'Melanesia', '1975', 'Papua New Guinea/Papua Niugini', 'Constitutional Monarchy', 'Port Moresby'), ('PRY', 'Paraguay', 'South America', 'South America', '1811', 'Paraguay', 'Republic', 'Asuncion'), ('PER', 'Peru', 'South America', 'South America', '1821', 'Peru/Piruw', 'Republic', 'Lima'), ('MNP', 'Northern Mariana Islands', 'Oceania', 'Micronesia', None, 'Northern Mariana Islands', 'Commonwealth of the US', 'Saipan'), ('PRT', 'Portugal', 'Europe', 'Southern Europe', '1143', 'Portugal', 'Republic', 'Lisbon'), ('PRI', 'Puerto Rico', 'North America', 'Caribbean', None, 'Puerto Rico', 'Commonwealth of the US', 'San Juan'), ('POL', 'Poland', 'Europe', 'Eastern Europe', '1918', 'Polska', 'Republic', 'Warsaw'), ('GNQ', 'Equatorial Guinea', 'Africa', 'Central Africa', '1968', 'Guinea Ecuatorial', 'Republic', 'Malabo'), ('QAT', 'Qatar', 'Asia', 'Middle East', '1971', 'Qatar', 'Monarchy', 'Doha'), ('FRA', 'France', 'Europe', 'Western Europe', '843', 'France', 'Republic', 'Paris'), ('PYF', 'French Polynesia', 'Oceania', 'Polynesia', None, 'Polynesie francaise', 'Nonmetropolitan Territory of France', 'Papeete'), ('RWA', 'Rwanda', 'Africa', 'Eastern Africa', '1962', 'Rwanda/Urwanda', 'Republic', 'Kigali'), ('SWE', 'Sweden', 'Europe', 'Nordic Countries', '836', 'Sverige', 'Constitutional Monarchy', 'Stockholm'), ('KNA', 'Saint Kitts and Nevis', 'North America', 'Caribbean', '1983', 'Saint Kitts and Nevis', 'Constitutional Monarchy', 'Basseterre'), ('LCA', 'Saint Lucia', 'North America', 'Caribbean', '1979', 'Saint Lucia', 'Constitutional Monarchy', 'Castries'), ('VCT', 'Saint Vincent and the Grenadines', 'North America', 'Caribbean', '1979', 'Saint Vincent and the Grenadines', 'Constitutional Monarchy', 'Kingstown'), ('DEU', 'Germany', 'Europe', 'Western Europe', '1955', 'Deutschland', 'Federal Republic', 'Berlin'), ('SLB', 'Solomon Islands', 'Oceania', 'Melanesia', '1978', 'Solomon Islands', 'Constitutional Monarchy', 'Honiara'), ('ZMB', 'Zambia', 'Africa', 'Eastern Africa', '1964', 'Zambia', 'Republic', 'Lusaka'), ('WSM', 'Samoa', 'Oceania', 'Polynesia', '1962', 'Samoa', 'Parlementary Monarchy', 'Apia'), ('SMR', 'San Marino', 'Europe', 'Southern Europe', '885', 'San Marino', 'Republic', 'San Marino'), ('STP', 'Sao Tome and Principe', 'Africa', 'Central Africa', '1975', 'Sao Tome e Principe', 'Republic', 'Sao Tome'), ('SAU', 'Saudi Arabia', 'Asia', 'Middle East', '1932', 'Al-´Arabiya as-Sa´udiya', 'Monarchy', 'Riyadh'), ('SEN', 'Senegal', 'Africa', 'Western Africa', '1960', 'Senegal/Sounougal', 'Republic', 'Dakar'), ('SYC', 'Seychelles', 'Africa', 'Eastern Africa', '1976', 'Sesel/Seychelles', 'Republic', 'Victoria'), ('SLE', 'Sierra Leone', 'Africa', 'Western Africa', '1961', 'Sierra Leone', 'Republic', 'Freetown'), ('SGP', 'Singapore', 'Asia', 'Southeast Asia', '1965', 'Singapore/Singapura/Xinjiapo/Singapur', 'Republic', 'Singapore'), ('SVK', 'Slovakia', 'Europe', 'Eastern Europe', '1993', 'Slovensko', 'Republic', 'Bratislava'), ('SVN', 'Slovenia', 'Europe', 'Southern Europe', '1991', 'Slovenija', 'Republic', 'Ljubljana'), ('SOM', 'Somalia', 'Africa', 'Eastern Africa', '1960', 'Soomaaliya', 'Republic', 'Mogadishu'), ('LKA', 'Sri Lanka', 'Asia', 'Southern and Central Asia', '1948', 'Sri Lanka/Ilankai', 'Republic', 'Colombo'), ('SDN', 'Sudan', 'Africa', 'Northern Africa', '1956', 'As-Sudan', 'Islamic Republic', 'Khartoum'), ('FIN', 'Finland', 'Europe', 'Nordic Countries', '1917', 'Suomi', 'Republic', 'Helsinki'), ('SUR', 'Suriname', 'South America', 'South America', '1975', 'Suriname', 'Republic', 'Paramaribo'), ('SWZ', 'Swaziland', 'Africa', 'Southern Africa', '1968', 'kaNgwane', 'Monarchy', 'Mbabane'), ('CHE', 'Switzerland', 'Europe', 'Western Europe', '1499', 'Schweiz/Suisse/Svizzera/Svizra', 'Federation', 'Bern'), ('SYR', 'Syria', 'Asia', 'Middle East', '1941', 'Suriya', 'Republic', 'Damascus'), ('TJK', 'Tajikistan', 'Asia', 'Southern and Central Asia', '1991', 'Tocikiston', 'Republic', 'Dushanbe'), ('TZA', 'Tanzania', 'Africa', 'Eastern Africa', '1961', 'Tanzania', 'Republic', 'Dodoma'), ('DNK', 'Denmark', 'Europe', 'Nordic Countries', '800', 'Danmark', 'Constitutional Monarchy', 'Copenhagen'), ('THA', 'Thailand', 'Asia', 'Southeast Asia', '1350', 'Prathet Thai', 'Constitutional Monarchy', 'Bangkok'), ('TGO', 'Togo', 'Africa', 'Western Africa', '1960', 'Togo', 'Republic', 'Lome'), ('TON', 'Tonga', 'Oceania', 'Polynesia', '1970', 'Tonga', 'Monarchy', "Nuku'alofa"), ('TTO', 'Trinidad and Tobago', 'North America', 'Caribbean', '1962', 'Trinidad and Tobago', 'Republic', 'Port-of-Spain'), ('TCD', 'Chad', 'Africa', 'Central Africa', '1960', 'Tchad/Tshad', 'Republic', "N'Djamena"), ('CZE', 'Czech Republic', 'Europe', 'Eastern Europe', '1993', '¸esko', 'Republic', 'Prague'), ('TUN', 'Tunisia', 'Africa', 'Northern Africa', '1956', 'Tunis/Tunisie', 'Republic', 'Tunis'), ('TUR', 'Turkey', 'Asia', 'Middle East', '1923', 'Turkiye', 'Republic', 'Ankara'), ('TKM', 'Turkmenistan', 'Asia', 'Southern and Central Asia', '1991', 'Turkmenostan', 'Republic', 'Ashgabat'), ('TCA', 'Turks and Caicos Islands', 'North America', 'Caribbean', None, 'The Turks and Caicos Islands', 'Dependent Territory of the UK', 'Grand Turk'), ('TUV', 'Tuvalu', 'Oceania', 'Polynesia', '1978', 'Tuvalu', 'Constitutional Monarchy', 'Funafuti'), ('UGA', 'Uganda', 'Africa', 'Eastern Africa', '1962', 'Uganda', 'Republic', 'Kampala'), ('UKR', 'Ukraine', 'Europe', 'Eastern Europe', '1991', 'Ukrajina', 'Republic', 'Kiev'), ('HUN', 'Hungary', 'Europe', 'Eastern Europe', '1918', 'Magyarorszag', 'Republic', 'Budapest'), ('URY', 'Uruguay', 'South America', 'South America', '1828', 'Uruguay', 'Republic', 'Montevideo'), ('NCL', 'New Caledonia', 'Oceania', 'Melanesia', None, 'Nouvelle-Caledonie', 'Nonmetropolitan Territory of France', "Noum'ea"), ('NZL', 'New Zealand', 'Oceania', 'Australia and New Zealand', '1907', 'New Zealand/Aotearoa', 'Constitutional Monarchy', 'Wellington'), ('UZB', 'Uzbekistan', 'Asia', 'Southern and Central Asia', '1991', 'Uzbekiston', 'Republic', 'Tashkent'), ('BLR', 'Belarus', 'Europe', 'Eastern Europe', '1991', 'Belarus', 'Republic', 'Minsk'), ('VUT', 'Vanuatu', 'Oceania', 'Melanesia', '1980', 'Vanuatu', 'Republic', 'Port-Vila'), ('VEN', 'Venezuela', 'South America', 'South America', '1811', 'Venezuela', 'Federal Republic', 'Caracas'), ('RUS', 'Russian Federation', 'Europe', 'Eastern Europe', '1991', 'Rossija', 'Federal Republic', 'Moscow'), ('VNM', 'Vietnam', 'Asia', 'Southeast Asia', '1945', 'Viet Nam', 'Socialistic Republic', 'Hanoi'), ('EST', 'Estonia', 'Europe', 'Baltic Countries', '1991', 'Eesti', 'Republic', 'Tallinn'), ('USA', 'United States', 'North America', 'North America', '1776', 'United States', 'Federal Republic', 'Washington D.C.'), ('VIR', 'Virgin Islands, U.S.', 'North America', 'Caribbean', None, 'Virgin Islands of the United States', 'US Territory', 'Charlotte Amalie'), ('ZWE', 'Zimbabwe', 'Africa', 'Eastern Africa', '1980', 'Zimbabwe', 'Republic', 'Harare'), ('PSE', 'Palestine', 'Asia', 'Middle East', None, 'Filastin', 'Autonomous Area', None)]
Anda dapat membuat keluaran metode fetchall() sedikit lebih rapi dengan mengiterasi setiap baris -
for row in cur.execute('SELECT * FROM countries'):
print(row)
('AFG', 'Afghanistan', 'Asia', 'Southern and Central Asia', '1919', 'Afganistan/Afqanestan', 'Islamic Emirate', 'Kabul')
('NLD', 'Netherlands', 'Europe', 'Western Europe', '1581', 'Nederland', 'Constitutional Monarchy', 'Amsterdam')
('ALB', 'Albania', 'Europe', 'Southern Europe', '1912', 'Shqiperia', 'Republic', 'Tirane')
...
('USA', 'United States', 'North America', 'North America', '1776', 'United States', 'Federal Republic', 'Washington D.C.')
('VIR', 'Virgin Islands, U.S.', 'North America', 'Caribbean', None, 'Virgin Islands of the United States', 'US Territory', 'Charlotte Amalie')
('ZWE', 'Zimbabwe', 'Africa', 'Eastern Africa', '1980', 'Zimbabwe', 'Republic', 'Harare')
('PSE', 'Palestine', 'Asia', 'Middle East', None, 'Filastin', 'Autonomous Area', None)
Sekarang mari lihat bagaimana Anda menambahkan klausa where ke kueri dan menjalankannya. Mari ambil detail negara dengan code = 'AFG'.
code = ('AFG',)
cur.execute('SELECT * FROM countries WHERE code = ?', code)
print(cur.fetchone())
('AFG', 'Afghanistan', 'Asia', 'Southern and Central Asia', '1919', 'Afganistan/Afqanestan', 'Islamic Emirate', 'Kabul')
Anda juga bisa melakukan hal berikut untuk mendapatkan rekaman, tetapi cara di atas lebih aman.
code = 'AFG'
cur.execute("SELECT * FROM countries WHERE code = '%s'" % code)
print(cur.fetchone())
('AFG', 'Afghanistan', 'Asia', 'Southern and Central Asia', '1919', 'Afganistan/Afqanestan', 'Islamic Emirate', 'Kabul')
Anda dapat menyisipkan rekaman ke dalam tabel satu per satu atau banyak rekaman sekaligus. Untuk ini, mari gunakan tabel consumers. Saat ini tabel tersebut belum berisi rekaman apa pun. Mari kita isi dari sini.
# One by one
cur.execute("INSERT INTO consumers VALUES (1,'John Doe','john.doe@xyz.com','A')")
for row in cur.execute('SELECT * FROM consumers'):
print(row)
(1, 'John Doe', 'john.doe@xyz.com', 'A')
# Prepare a list of records to be inserted
purchases = [(2,'John Paul','john.paul@xyz.com','B'),
(3,'Chris Paul','john.paul@xyz.com','A'),
]
# Use executemany() to insert multiple records at a time
cur.executemany('INSERT INTO consumers VALUES (?,?,?,?)', purchases)
for row in cur.execute('SELECT * FROM consumers'):
print(row)
(1, 'John Doe', 'john.doe@xyz.com', 'A')
(2, 'John Paul', 'john.paul@xyz.com', 'B')
(3, 'Chris Paul', 'john.paul@xyz.com', 'A')
Anda dapat memeriksanya kembali melalui alat DB Browser, rekaman tersebut seharusnya tampil di sana juga. Ini tidak akan terjadi kecuali Anda melakukan commit terhadap transaksi ini. Anda dapat melakukan commit/menyimpan dengan cukup memanggil metode commit() dari objek Connection yang Anda buat.
conn.commit()
Sekarang Anda seharusnya dapat melihat entri-entri tersebut -

Merupakan praktik pemrograman yang baik untuk menutup koneksi DB setelah pekerjaan selesai. Namun sebelum itu, perubahan perlu dibuat permanen, dan ini dicapai menggunakan metode commit() seperti ditunjukkan di atas.
# Closing the DB connection
conn.close()
Selamat!
Terima kasih telah membaca seluruh tutorial. Tutorial ini memperkenalkan Anda pada SQLite, sebuah RDBMS yang kuat namun ringan, dan Anda telah mempelajari cara berinteraksi dengan SQLite menggunakan Python. Beri tahu saya jika Anda memiliki pertanyaan di kolom komentar.
Jika Anda ingin mempelajari lebih lanjut tentang interaksi dengan basis data di Python, ikuti kursus Introduction to Databases in Python dari DataCamp. Lihat juga tutorial kami Beginners Guide to SQLite.
