Python MySQL - Panduan Cepat
Standar Python untuk antarmuka database adalah Python DB-API. Kebanyakan antarmuka database Python mematuhi standar ini.
Anda dapat memilih database yang tepat untuk aplikasi Anda. Python Database API mendukung berbagai server database seperti -
- GadFly
- mSQL
- MySQL
- PostgreSQL
- Microsoft SQL Server 2000
- Informix
- Interbase
- Oracle
- Sybase
Berikut adalah daftar antarmuka database Python yang tersedia - Antarmuka dan API Database Python . Anda harus mengunduh modul DB API terpisah untuk setiap database yang perlu Anda akses. Misalnya, jika Anda perlu mengakses database Oracle serta database MySQL, Anda harus mendownload modul database Oracle dan MySQL.
Apa itu mysql-connector-python?
MySQL Python / Connector adalah antarmuka untuk menghubungkan ke server database MySQL dari Python. Ini mengimplementasikan Python Database API dan dibangun di atas MySQL.
Bagaimana cara menginstal mysql-connector-python?
Pertama-tama, Anda perlu memastikan bahwa Anda telah menginstal python di mesin Anda. Untuk melakukannya, buka command prompt dan ketik python di dalamnya dan tekan Enter . Jika python sudah terinstal di sistem Anda, perintah ini akan menampilkan versinya seperti yang ditunjukkan di bawah ini -
C:\Users\Tutorialspoint>python
Python 3.7.3 (v3.7.3:ef4ec6ed12, Mar 25 2019, 22:22:05) [MSC v.1916 64 bit (AMD64)] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>>
Sekarang tekan ctrl + z dan kemudian Enter untuk keluar dari shell python dan buat folder (tempat Anda ingin menginstal konektor Python-MySQL) bernama Python_MySQL sebagai -
>>> ^Z
C:\Users\Tutorialspoint>d:
D:\>mkdir Python_MySQL
Verifikasi PIP
PIP adalah manajer paket dalam python yang dengannya Anda dapat menginstal berbagai modul / paket dengan Python. Oleh karena itu, untuk menginstal Mysql-python mysql-connector-python Anda perlu memastikan bahwa Anda telah menginstal PIP di komputer Anda dan lokasinya ditambahkan ke jalur.
Anda dapat melakukannya, dengan menjalankan perintah pip. Jika Anda tidak memiliki PIP di sistem Anda atau, jika Anda belum menambahkan lokasinya di filePath variabel lingkungan, Anda akan mendapatkan pesan kesalahan sebagai -
D:\Python_MySQL>pip
'pip' is not recognized as an internal or external command,
operable program or batch file.
Untuk menginstal PIP, unduh get-pip.py ke folder yang dibuat di atas dan, dari perintah navigasikan dan instal pip sebagai berikut -
D:\>cd Python_MySQL
D:\Python_MySQL>python get-pip.py
Collecting pip
Downloading
https://files.pythonhosted.org/packages/8d/07/f7d7ced2f97ca3098c16565efbe6b15fafcba53e8d9bdb431e09140514b0/pip-19.2.2-py2.py3-none-any.whl (1.4MB)
|████████████████████████████████| 1.4MB 1.3MB/s
Collecting wheel
Downloading
https://files.pythonhosted.org/packages/00/83/b4a77d044e78ad1a45610eb88f745be2fd2c6d658f9798a15e384b7d57c9/wheel-0.33.6-py2.py3-none-any.whl
Installing collected packages: pip, wheel
Consider adding this directory to PATH or, if you prefer to suppress this warning, use --no-warn-script-location.
Successfully installed pip-19.2.2 wheel-0.33.6
Menginstal mysql-connector-python
Setelah Anda menginstal Python dan PIP, buka command prompt dan tingkatkan pip (opsional) seperti yang ditunjukkan di bawah ini -
C:\Users\Tutorialspoint>python -m pip install --upgrade pip
Collecting pip
Using cached
https://files.pythonhosted.org/packages/8d/07/f7d7ced2f97ca3098c16565efbe6b15fafcba53e8d9bdb431e09140514b0/pip-19.2.2-py2.py3-none-any.whl
Installing collected packages: pip
Found existing installation: pip 19.0.3
Uninstalling pip-19.0.3:
Successfully uninstalled pip-19.0.3
Successfully installed pip-19.2.2
Kemudian buka command prompt dalam mode admin dan instal python MySQL connect sebagai -
C:\WINDOWS\system32>pip install mysql-connector-python
Collecting mysql-connector-python
Using cached
https://files.pythonhosted.org/packages/99/74/f41182e6b7aadc62b038b6939dce784b7f9ec4f89e2ae14f9ba8190dc9ab/mysql_connector_python-8.0.17-py2.py3-none-any.whl
Collecting protobuf>=3.0.0 (from mysql-connector-python)
Using cached
https://files.pythonhosted.org/packages/09/0e/614766ea191e649216b87d331a4179338c623e08c0cca291bcf8638730ce/protobuf-3.9.1-cp37-cp37m-win32.whl
Collecting six>=1.9 (from protobuf>=3.0.0->mysql-connector-python)
Using cached
https://files.pythonhosted.org/packages/73/fb/00a976f728d0d1fecfe898238ce23f502a721c0ac0ecfedb80e0d88c64e9/six-1.12.0-py2.py3-none-any.whl
Requirement already satisfied: setuptools in c:\program files (x86)\python37-32\lib\site-packages (from protobuf>=3.0.0->mysql-connector-python) (40.8.0)
Installing collected packages: six, protobuf, mysql-connector-python
Successfully installed mysql-connector-python-8.0.17 protobuf-3.9.1 six-1.12.0
Verifikasi
Untuk memverifikasi penginstalan, buat contoh skrip python dengan baris berikut di dalamnya.
import mysql.connector
Jika penginstalan berhasil, saat Anda menjalankannya, Anda tidak akan mendapatkan error -
D:\Python_MySQL>python test.py
D:\Python_MySQL>
Menginstal Python Dari Awal
Sederhananya, jika Anda perlu menginstal Python dari awal. Kunjungi Halaman Beranda Python .
Klik pada Downloads tombol, Anda akan diarahkan ke halaman unduhan yang menyediakan tautan untuk versi terbaru python untuk berbagai platform, pilih satu dan unduh.
Misalnya, kami telah mengunduh python-3.7.4.exe (untuk windows). Mulailah proses instalasi dengan mengklik dua kali file .exe yang diunduh.
Centang opsi Add Python 3.7 to Path dan lanjutkan dengan instalasi. Setelah menyelesaikan proses ini, python akan diinstal di sistem Anda.
Untuk terhubung dengan MySQL, (salah satu caranya adalah) buka command prompt MySQL di sistem Anda seperti yang ditunjukkan di bawah ini -
Ini meminta kata sandi di sini; Anda perlu mengetikkan kata sandi yang telah Anda setel ke pengguna default (root) pada saat instalasi.
Kemudian koneksi dibuat dengan MySQL yang menampilkan pesan berikut -
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 4
Server version: 5.7.12-log MySQL Community Server (GPL)
Copyright (c) 2000, 2016, Oracle and/or its affiliates. All rights reserved.
Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
Anda dapat memutuskan koneksi dari database MySQL kapan saja menggunakan exitperintah di mysql> prompt.
mysql> exit
Bye
Membangun Koneksi Dengan MySQL Menggunakan Python
Sebelum membuat koneksi ke database MySQL menggunakan python, asumsikan -
Database yang telah kita buat dengan nama mydb.
Kami telah membuat tabel EMPLOYEE dengan kolom FIRST_NAME, LAST_NAME, AGE, SEX dan INCOME.
Kredensial yang kami gunakan untuk terhubung dengan MySQL adalah nama pengguna - root, kata sandi - password.
Anda bisa membuat koneksi menggunakan konstruktor connect () . Ini menerima nama pengguna, kata sandi, host dan, nama database yang perlu Anda sambungkan (opsional) dan, mengembalikan objek dari kelas MySQLConnection.
Contoh
Berikut adalah contoh koneksi dengan database MySQL "mydb".
import mysql.connector
#establishing the connection
conn = mysql.connector.connect(
user='root', password='password', host='127.0.0.1', database='mydb'
)
#Creating a cursor object using the cursor() method
cursor = conn.cursor()
#Executing an MYSQL function using the execute() method
cursor.execute("SELECT DATABASE()")
#Fetch a single row using fetchone() method.
data = cursor.fetchone()
print("Connection established to: ",data)
#Closing the connection
conn.close()
Keluaran
Saat menjalankan, skrip ini menghasilkan keluaran berikut -
D:\Python_MySQL>python EstablishCon.py
Connection established to: ('mydb',)
Anda juga dapat membuat koneksi ke MySQL dengan meneruskan kredensial (nama pengguna, kata sandi, nama host, dan nama database) ke connection.MySQLConnection() seperti yang ditunjukkan di bawah ini -
from mysql.connector import (connection)
#establishing the connection
conn = connection.MySQLConnection(
user='root', password='password', host='127.0.0.1', database='mydb'
)
#Closing the connection
conn.close()
Anda dapat membuat database di MYSQL menggunakan kueri CREATE DATABASE.
Sintaksis
Berikut ini adalah sintaks dari kueri CREATE DATABASE -
CREATE DATABASE name_of_the_database
Contoh
Pernyataan berikut membuat database dengan nama mydb di MySQL -
mysql> CREATE DATABASE mydb;
Query OK, 1 row affected (0.04 sec)
Jika Anda mengamati daftar database menggunakan pernyataan SHOW DATABASES, Anda dapat mengamati database yang baru dibuat di dalamnya seperti yang ditunjukkan di bawah ini -
mysql> SHOW DATABASES;
+--------------------+
| Database |
+--------------------+
| information_schema |
| logging |
| mydatabase |
| mydb |
| performance_schema |
| students |
| sys |
+--------------------+
26 rows in set (0.15 sec)
Membuat Database di MySQL Menggunakan Python
Setelah membuat koneksi dengan MySQL, untuk memanipulasi data di dalamnya Anda perlu terhubung ke database. Anda bisa menyambungkan ke database yang sudah ada atau, buat sendiri.
Anda memerlukan hak khusus untuk membuat atau menghapus database MySQL. Jadi jika Anda memiliki akses ke pengguna root, Anda dapat membuat database apa pun.
Contoh
Contoh berikut membuat koneksi dengan MYSQL dan membuat database di dalamnya.
import mysql.connector
#establishing the connection
conn = mysql.connector.connect(user='root', password='password', host='127.0.0.1')
#Creating a cursor object using the cursor() method
cursor = conn.cursor()
#Doping database MYDATABASE if already exists.
cursor.execute("DROP database IF EXISTS MyDatabase")
#Preparing query to create a database
sql = "CREATE database MYDATABASE";
#Creating a database
cursor.execute(sql)
#Retrieving the list of databases
print("List of databases: ")
cursor.execute("SHOW DATABASES")
print(cursor.fetchall())
#Closing the connection
conn.close()
Keluaran
List of databases:
[
('information_schema',),
('dbbug61332',),
('details',),
('exampledatabase',),
('mydatabase',),
('mydb',),
('mysql',),
('performance_schema',)
]
Pernyataan CREATE TABLE digunakan untuk membuat tabel di database MYSQL. Di sini, Anda perlu menentukan nama tabel dan, definisi (nama dan tipe data) dari setiap kolom.
Sintaksis
Berikut sintaks untuk membuat tabel di MySQL -
CREATE TABLE table_name(
column1 datatype,
column2 datatype,
column3 datatype,
.....
columnN datatype,
);
Contoh
Kueri berikut membuat tabel bernama EMPLOYEE di MySQL dengan lima kolom yaitu, FIRST_NAME, LAST_NAME, AGE, SEX dan, INCOME.
mysql> CREATE TABLE EMPLOYEE(
FIRST_NAME CHAR(20) NOT NULL,
LAST_NAME CHAR(20),
AGE INT,
SEX CHAR(1),
INCOME FLOAT);
Query OK, 0 rows affected (0.42 sec)
Pernyataan DESC memberi Anda deskripsi dari tabel yang ditentukan. Dengan menggunakan ini, Anda dapat memverifikasi apakah tabel telah dibuat atau tidak seperti yang ditunjukkan di bawah ini -
mysql> Desc Employee;
+------------+----------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+------------+----------+------+-----+---------+-------+
| FIRST_NAME | char(20) | NO | | NULL | |
| LAST_NAME | char(20) | YES | | NULL | |
| AGE | int(11) | YES | | NULL | |
| SEX | char(1) | YES | | NULL | |
| INCOME | float | YES | | NULL | |
+------------+----------+------+-----+---------+-------+
5 rows in set (0.07 sec)
Membuat Tabel di MySQL Menggunakan Python
Metode bernama execute () (dipanggil pada objek kursor) menerima dua variabel−
Nilai String yang mewakili kueri yang akan dieksekusi.
Parameter args opsional yang dapat berupa tuple atau, daftar atau, kamus, mewakili parameter kueri (nilai placeholder).
Ini mengembalikan nilai integer yang mewakili jumlah baris yang dipengaruhi oleh kueri.
Setelah koneksi database dibuat, Anda bisa membuat tabel dengan meneruskan kueri CREATE TABLE ke execute() metode.
Singkatnya, untuk membuat tabel menggunakan python -
Impor mysql.connector paket.
Buat objek koneksi menggunakan mysql.connector.connect() metode, dengan meneruskan nama pengguna, kata sandi, host (opsional default: localhost) dan, database (opsional) sebagai parameter untuk itu.
Buat objek kursor dengan memanggil cursor() metode pada objek koneksi yang dibuat di atas.
Kemudian, jalankan pernyataan CREATE TABLE dengan meneruskannya sebagai parameter keexecute() metode.
Contoh
Contoh berikut membuat tabel bernama Employee di database mydb.
import mysql.connector
#establishing the connection
conn = mysql.connector.connect(
user='root', password='password', host='127.0.0.1', database='mydb'
)
#Creating a cursor object using the cursor() method
cursor = conn.cursor()
#Dropping EMPLOYEE table if already exists.
cursor.execute("DROP TABLE IF EXISTS EMPLOYEE")
#Creating table as per requirement
sql ='''CREATE TABLE EMPLOYEE(
FIRST_NAME CHAR(20) NOT NULL,
LAST_NAME CHAR(20),
AGE INT,
SEX CHAR(1),
INCOME FLOAT
)'''
cursor.execute(sql)
#Closing the connection
conn.close()
Anda dapat menambahkan baris baru ke tabel MySQL yang sudah ada menggunakan INSERT INTOpernyataan. Dalam hal ini, Anda perlu menentukan nama tabel, nama kolom, dan nilai (dalam urutan yang sama seperti nama kolom).
Sintaksis
Berikut ini adalah sintaks dari pernyataan INSERT INTO MySQL.
INSERT INTO TABLE_NAME (column1, column2, column3,...columnN)
VALUES (value1, value2, value3,...valueN);
Contoh
Kueri berikut menyisipkan rekaman ke dalam tabel bernama EMPLOYEE.
INSERT INTO EMPLOYEE(FIRST_NAME, LAST_NAME, AGE, SEX, INCOME)
VALUES ('Mac', 'Mohan', 20, 'M', 2000);
Anda dapat memverifikasi catatan tabel setelah operasi penyisipan menggunakan pernyataan SELECT sebagai -
mysql> select * from Employee;
+------------+-----------+------+------+--------+
| FIRST_NAME | LAST_NAME | AGE | SEX | INCOME |
+------------+-----------+------+------+--------+
| Mac | Mohan | 20| M | 2000 |
+------------+-----------+------+------+--------+
1 row in set (0.00 sec)
Tidak wajib untuk selalu menentukan nama kolom, jika Anda meneruskan nilai record dalam urutan yang sama dari kolom tabel Anda dapat mengeksekusi pernyataan SELECT tanpa nama kolom sebagai berikut -
INSERT INTO EMPLOYEE VALUES ('Mac', 'Mohan', 20, 'M', 2000);
Memasukkan Data di Tabel MySQL Menggunakan Python
Itu execute()metode (dipanggil pada objek kursor) menerima kueri sebagai parameter dan menjalankan kueri yang diberikan. Untuk memasukkan data, Anda harus meneruskan pernyataan MySQL INSERT sebagai parameternya.
cursor.execute("""INSERT INTO EMPLOYEE(FIRST_NAME, LAST_NAME, AGE, SEX, INCOME)
VALUES ('Mac', 'Mohan', 20, 'M', 2000)""")
Untuk memasukkan data ke dalam tabel di MySQL menggunakan python -
impor mysql.connector paket.
Buat objek koneksi menggunakan mysql.connector.connect() metode, dengan meneruskan nama pengguna, kata sandi, host (opsional default: localhost) dan, database (opsional) sebagai parameter untuk itu.
Buat objek kursor dengan memanggil cursor() metode pada objek koneksi yang dibuat di atas.
Kemudian, jalankan INSERT pernyataan dengan meneruskannya sebagai parameter ke execute() metode.
Contoh
Contoh berikut mengeksekusi pernyataan SQL INSERT untuk memasukkan record ke dalam tabel EMPLOYEE -
import mysql.connector
#establishing the connection
conn = mysql.connector.connect(
user='root', password='password', host='127.0.0.1', database='mydb'
)
#Creating a cursor object using the cursor() method
cursor = conn.cursor()
# Preparing SQL query to INSERT a record into the database.
sql = """INSERT INTO EMPLOYEE(FIRST_NAME, LAST_NAME, AGE, SEX, INCOME)
VALUES ('Mac', 'Mohan', 20, 'M', 2000)"""
try:
# Executing the SQL command
cursor.execute(sql)
# Commit your changes in the database
conn.commit()
except:
# Rolling back in case of error
conn.rollback()
# Closing the connection
conn.close()
Memasukkan Nilai Secara Dinamis
Anda juga bisa menggunakan “%s” alih-alih nilai di INSERT query MySQL dan berikan nilai kepada mereka sebagai daftar seperti yang ditunjukkan di bawah ini -
cursor.execute("""INSERT INTO EMPLOYEE VALUES ('Mac', 'Mohan', 20, 'M', 2000)""",
('Ramya', 'Ramapriya', 25, 'F', 5000))
Contoh
Contoh berikut menyisipkan rekaman ke dalam tabel Karyawan secara dinamis.
import mysql.connector
#establishing the connection
conn = mysql.connector.connect(
user='root', password='password', host='127.0.0.1', database='mydb'
)
#Creating a cursor object using the cursor() method
cursor = conn.cursor()
# Preparing SQL query to INSERT a record into the database.
insert_stmt = (
"INSERT INTO EMPLOYEE(FIRST_NAME, LAST_NAME, AGE, SEX, INCOME)"
"VALUES (%s, %s, %s, %s, %s)"
)
data = ('Ramya', 'Ramapriya', 25, 'F', 5000)
try:
# Executing the SQL command
cursor.execute(insert_stmt, data)
# Commit your changes in the database
conn.commit()
except:
# Rolling back in case of error
conn.rollback()
print("Data inserted")
# Closing the connection
conn.close()
Keluaran
Data inserted
Anda dapat mengambil / mengambil data dari tabel di MySQL menggunakan kueri SELECT. Kueri / pernyataan ini mengembalikan konten dari tabel yang ditentukan dalam bentuk tabel dan disebut sebagai kumpulan hasil.
Sintaksis
Berikut ini adalah sintaks dari query SELECT -
SELECT column1, column2, columnN FROM table_name;
Contoh
Asumsikan kita telah membuat tabel di MySQL dengan nama cricketers_data sebagai -
CREATE TABLE cricketers_data(
First_Name VARCHAR(255),
Last_Name VARCHAR(255),
Date_Of_Birth date,
Place_Of_Birth VARCHAR(255),
Country VARCHAR(255)
);
Dan jika kita telah memasukkan 5 record ke dalamnya menggunakan pernyataan INSERT sebagai -
insert into cricketers_data values('Shikhar', 'Dhawan', DATE('1981-12-05'), 'Delhi', 'India');
insert into cricketers_data values('Jonathan', 'Trott', DATE('1981-04-22'), 'CapeTown', 'SouthAfrica');
insert into cricketers_data values('Kumara', 'Sangakkara', DATE('1977-10-27'), 'Matale', 'Srilanka');
insert into cricketers_data values('Virat', 'Kohli', DATE('1988-11-05'), 'Delhi', 'India');
insert into cricketers_data values('Rohit', 'Sharma', DATE('1987-04-30'), 'Nagpur', 'India');
Kueri berikut mengambil nilai FIRST_NAME dan Negara dari tabel.
mysql> select FIRST_NAME, Country from cricketers_data;
+------------+-------------+
| FIRST_NAME | Country |
+------------+-------------+
| Shikhar | India |
| Jonathan | SouthAfrica |
| Kumara | Srilanka |
| Virat | India |
| Rohit | India |
+------------+-------------+
5 rows in set (0.00 sec)
Anda juga dapat mengambil semua nilai dari setiap record menggunakan * nama kolom yang dimasukkan sebagai -
mysql> SELECT * from cricketers_data;
+------------+------------+---------------+----------------+-------------+
| First_Name | Last_Name | Date_Of_Birth | Place_Of_Birth | Country |
+------------+------------+---------------+----------------+-------------+
| Shikhar | Dhawan | 1981-12-05 | Delhi | India |
| Jonathan | Trott | 1981-04-22 | CapeTown | SouthAfrica |
| Kumara | Sangakkara | 1977-10-27 | Matale | Srilanka |
| Virat | Kohli | 1988-11-05 | Delhi | India |
| Rohit | Sharma | 1987-04-30 | Nagpur | India |
+------------+------------+---------------+----------------+-------------+
5 rows in set (0.00 sec)
Membaca Data Dari Tabel MYSQL Menggunakan Python
Operasi BACA pada database apa pun berarti mengambil beberapa informasi berguna dari database. Anda dapat mengambil data dari MYSQL menggunakanfetch() metode yang disediakan oleh mysql-connector-python.
Kelas cursor.MySQLCursor menyediakan tiga metode yaitufetchall(), fetchmany() dan, fetchone() dimana,
Itu fetchall()metode mengambil semua baris dalam kumpulan hasil kueri dan mengembalikannya sebagai daftar tupel. (Jika kita menjalankan ini setelah mengambil beberapa baris, ia mengembalikan yang tersisa).
Itu fetchone() metode mengambil baris berikutnya dalam hasil kueri dan mengembalikannya sebagai tupel.
Itu fetchmany() metode ini mirip dengan fetchone () tetapi, ia mengambil set baris berikutnya dalam set hasil kueri, bukan satu baris.
Note - Kumpulan hasil adalah objek yang dikembalikan saat objek kursor digunakan untuk membuat kueri tabel.
rowcount - Ini adalah atribut hanya-baca dan mengembalikan jumlah baris yang dipengaruhi oleh metode execute ().
Contoh
Contoh berikut mengambil semua baris dari tabel EMPLOYEE menggunakan query SELECT dan dari hasil yang diperoleh set awalnya, kita mengambil baris pertama menggunakan metode fetchone () dan kemudian mengambil baris yang tersisa menggunakan metode fetchall ().
import mysql.connector
#establishing the connection
conn = mysql.connector.connect(
user='root', password='password', host='127.0.0.1', database='mydb'
)
#Creating a cursor object using the cursor() method
cursor = conn.cursor()
#Retrieving single row
sql = '''SELECT * from EMPLOYEE'''
#Executing the query
cursor.execute(sql)
#Fetching 1st row from the table
result = cursor.fetchone();
print(result)
#Fetching 1st row from the table
result = cursor.fetchall();
print(result)
#Closing the connection
conn.close()
Keluaran
('Krishna', 'Sharma', 19, 'M', 2000.0)
[('Raj', 'Kandukuri', 20, 'M', 7000.0), ('Ramya', 'Ramapriya', 25, 'M', 5000.0)]
Contoh berikut mengambil dua baris pertama dari tabel EMPLOYEE menggunakan metode fetchmany ().
Contoh
import mysql.connector
#establishing the connection
conn = mysql.connector.connect(
user='root', password='password', host='127.0.0.1', database='mydb'
)
#Creating a cursor object using the cursor() method
cursor = conn.cursor()
#Retrieving single row
sql = '''SELECT * from EMPLOYEE'''
#Executing the query
cursor.execute(sql)
#Fetching 1st row from the table
result = cursor.fetchmany(size =2);
print(result)
#Closing the connection
conn.close()
Keluaran
[('Krishna', 'Sharma', 19, 'M', 2000.0), ('Raj', 'Kandukuri', 20, 'M', 7000.0)]
Jika Anda ingin mengambil, menghapus, atau memperbarui baris tertentu dari tabel di MySQL, Anda perlu menggunakan klausa where untuk menentukan kondisi guna memfilter baris tabel untuk operasi.
Misalnya, jika Anda memiliki pernyataan SELECT dengan klausa where, hanya baris yang memenuhi kondisi yang ditentukan yang akan diambil.
Sintaksis
Berikut ini adalah sintaks klausa WHERE -
SELECT column1, column2, columnN
FROM table_name
WHERE [condition]
Contoh
Asumsikan kita telah membuat tabel di MySQL dengan nama EMPLOYEES sebagai -
mysql> CREATE TABLE EMPLOYEE(
FIRST_NAME CHAR(20) NOT NULL,
LAST_NAME CHAR(20),
AGE INT,
SEX CHAR(1),
INCOME FLOAT
);
Query OK, 0 rows affected (0.36 sec)
Dan jika kita telah memasukkan 4 record ke dalamnya menggunakan pernyataan INSERT sebagai -
mysql> INSERT INTO EMPLOYEE VALUES
('Krishna', 'Sharma', 19, 'M', 2000),
('Raj', 'Kandukuri', 20, 'M', 7000),
('Ramya', 'Ramapriya', 25, 'F', 5000),
('Mac', 'Mohan', 26, 'M', 2000);
Mengikuti pernyataan MySQL mengambil catatan karyawan yang penghasilannya lebih dari 4000.
mysql> SELECT * FROM EMPLOYEE WHERE INCOME > 4000;
+------------+-----------+------+------+--------+
| FIRST_NAME | LAST_NAME | AGE | SEX | INCOME |
+------------+-----------+------+------+--------+
| Raj | Kandukuri | 20| M | 7000 |
| Ramya | Ramapriya | 25| F | 5000 |
+------------+-----------+------+------+--------+
2 rows in set (0.00 sec)
WHERE Clause Menggunakan Python
Untuk mengambil catatan tertentu dari tabel menggunakan program python -
impor mysql.connector paket.
Buat objek koneksi menggunakan mysql.connector.connect() metode, dengan meneruskan nama pengguna, kata sandi, host (opsional default: localhost) dan, database (opsional) sebagai parameter untuk itu.
Buat objek kursor dengan memanggil cursor() metode pada objek koneksi yang dibuat di atas.
Kemudian, jalankan pernyataan SELECT dengan klausa WHERE , dengan meneruskannya sebagai parameter keexecute() metode.
Contoh
Contoh berikut membuat tabel bernama Karyawan dan mengisinya. Kemudian menggunakan klausa where, ia mengambil rekaman dengan nilai usia kurang dari 23.
import mysql.connector
#establishing the connection
conn = mysql.connector.connect(
user='root', password='password', host='127.0.0.1', database='mydb'
)
#Creating a cursor object using the cursor() method
cursor = conn.cursor()
#Doping EMPLOYEE table if already exists.
cursor.execute("DROP TABLE IF EXISTS EMPLOYEE")
sql = '''CREATE TABLE EMPLOYEE(
FIRST_NAME CHAR(20) NOT NULL,
LAST_NAME CHAR(20),
AGE INT,
SEX CHAR(1),
INCOME FLOAT
)'''
cursor.execute(sql)
#Populating the table
insert_stmt = "INSERT INTO EMPLOYEE (
FIRST_NAME, LAST_NAME, AGE, SEX, INCOME) VALUES (%s, %s, %s, %s, %s
)"
data = [
('Krishna', 'Sharma', 19, 'M', 2000),
('Raj', 'Kandukuri', 20, 'M', 7000),
('Ramya', 'Ramapriya', 25, 'F', 5000),
('Mac', 'Mohan', 26, 'M', 2000)
]
cursor.executemany(insert_stmt, data)
conn.commit()
#Retrieving specific records using the where clause
cursor.execute("SELECT * from EMPLOYEE WHERE AGE <23")
print(cursor.fetchall())
#Closing the connection
conn.close()
Keluaran
[('Krishna', 'Sharma', 19, 'M', 2000.0), ('Raj', 'Kandukuri', 20, 'M', 7000.0)]
Saat mengambil data menggunakan kueri SELECT, Anda dapat mengurutkan hasil dalam urutan yang diinginkan (naik atau turun) menggunakan klausa OrderBy. Secara default, klausa ini mengurutkan hasil dalam urutan menaik, jika Anda perlu mengaturnya dalam urutan menurun Anda perlu menggunakan "DESC" secara eksplisit.
Sintaksis
Berikut ini adalah sintaks SELECT kolom-daftar
FROM table_name
[WHERE condition]
[ORDER BY column1, column2,.. columnN] [ASC | DESC]; of the ORDER BY clause:
Contoh
Asumsikan kita telah membuat tabel di MySQL dengan nama EMPLOYEES sebagai -
mysql> CREATE TABLE EMPLOYEE(
FIRST_NAME CHAR(20) NOT NULL,
LAST_NAME CHAR(20),
AGE INT,
SEX CHAR(1),
INCOME FLOAT);
Query OK, 0 rows affected (0.36 sec)
Dan jika kita telah memasukkan 4 record ke dalamnya menggunakan pernyataan INSERT sebagai -
mysql> INSERT INTO EMPLOYEE VALUES
('Krishna', 'Sharma', 19, 'M', 2000),
('Raj', 'Kandukuri', 20, 'M', 7000),
('Ramya', 'Ramapriya', 25, 'F', 5000),
('Mac', 'Mohan', 26, 'M', 2000);
Pernyataan berikut mengambil isi tabel EMPLOYEE dalam urutan usia.
mysql> SELECT * FROM EMPLOYEE ORDER BY AGE;
+------------+-----------+------+------+--------+
| FIRST_NAME | LAST_NAME | AGE | SEX | INCOME |
+------------+-----------+------+------+--------+
| Krishna | Sharma | 19| M | 2000 |
| Raj | Kandukuri | 20| M | 7000 |
| Ramya | Ramapriya | 25| F | 5000 |
| Mac | Mohan | 26| M | 2000 |
+------------+-----------+------+------+--------+
4 rows in set (0.04 sec)
Anda juga dapat mengambil data dalam urutan menurun menggunakan DESC sebagai -
mysql> SELECT * FROM EMPLOYEE ORDER BY FIRST_NAME, INCOME DESC;
+------------+-----------+------+------+--------+
| FIRST_NAME | LAST_NAME | AGE | SEX | INCOME |
+------------+-----------+------+------+--------+
| Krishna | Sharma | 19| M | 2000 |
| Mac | Mohan | 26| M | 2000 |
| Raj | Kandukuri | 20| M | 7000 |
| Ramya | Ramapriya | 25| F | 5000 |
+------------+-----------+------+------+--------+
4 rows in set (0.00 sec)
ORDER BY Clause Menggunakan Python
Untuk mengambil konten tabel dalam urutan tertentu, panggil execute() metode pada objek kursor dan, berikan pernyataan SELECT bersama dengan klausa ORDER BY, sebagai parameter untuknya.
Contoh
Dalam contoh berikut, kami membuat tabel dengan nama dan Karyawan, mengisinya, dan mengambil kembali rekamannya dalam urutan (menaik) sesuai usianya, menggunakan klausa ORDER BY.
import mysql.connector
#establishing the connection
conn = mysql.connector.connect(
user='root', password='password', host='127.0.0.1', database='mydb'
)
#Creating a cursor object using the cursor() method
cursor = conn.cursor()
#Doping EMPLOYEE table if already exists.
cursor.execute("DROP TABLE IF EXISTS EMPLOYEE")
sql = '''CREATE TABLE EMPLOYEE(
FIRST_NAME CHAR(20) NOT NULL,
LAST_NAME CHAR(20),
AGE INT,
SEX CHAR(1),
INCOME FLOAT
)'''
cursor.execute(sql)
#Populating the table
insert_stmt = "INSERT INTO EMPLOYEE
(FIRST_NAME, LAST_NAME, AGE, SEX, INCOME) VALUES (%s, %s, %s, %s, %s)"
data = [
('Krishna', 'Sharma', 26, 'M', 2000),
('Raj', 'Kandukuri', 20, 'M', 7000),
('Ramya', 'Ramapriya', 29, 'F', 5000),
('Mac', 'Mohan', 26, 'M', 2000)
]
cursor.executemany(insert_stmt, data)
conn.commit()
#Retrieving specific records using the ORDER BY clause
cursor.execute("SELECT * from EMPLOYEE ORDER BY AGE")
print(cursor.fetchall())
#Closing the connection
conn.close()
Keluaran
[
('Raj', 'Kandukuri', 20, 'M', 7000.0),
('Krishna', 'Sharma', 26, 'M', 2000.0),
('Mac', 'Mohan', 26, 'M', 2000.0),
('Ramya', 'Ramapriya', 29, 'F', 5000.0)
]
Dengan cara yang sama Anda bisa mengambil data dari tabel dalam urutan menurun menggunakan klausa ORDER BY.
Contoh
import mysql.connector
#establishing the connection
conn = mysql.connector.connect(
user='root', password='password', host='127.0.0.1', database='mydb'
)
#Creating a cursor object using the cursor() method
cursor = conn.cursor()
#Retrieving specific records using the ORDERBY clause
cursor.execute("SELECT * from EMPLOYEE ORDER BY INCOME DESC")
print(cursor.fetchall())
#Closing the connection
conn.close()
Keluaran
[
('Raj', 'Kandukuri', 20, 'M', 7000.0),
('Ramya', 'Ramapriya', 29, 'F', 5000.0),
('Krishna', 'Sharma', 26, 'M', 2000.0),
('Mac', 'Mohan', 26, 'M', 2000.0)
]
UPDATE Operasi pada setiap pembaruan database satu atau lebih catatan, yang sudah tersedia dalam database. Anda dapat memperbarui nilai catatan yang ada di MySQL menggunakan pernyataan UPDATE. Untuk memperbarui baris tertentu, Anda perlu menggunakan klausa WHERE bersamanya.
Sintaksis
Berikut ini adalah sintaks dari pernyataan UPDATE di MySQL -
UPDATE table_name
SET column1 = value1, column2 = value2...., columnN = valueN
WHERE [condition];
Anda dapat menggabungkan jumlah N kondisi menggunakan operator DAN atau ATAU.
Contoh
Asumsikan kita telah membuat tabel di MySQL dengan nama EMPLOYEES sebagai -
mysql> CREATE TABLE EMPLOYEE(
FIRST_NAME CHAR(20) NOT NULL,
LAST_NAME CHAR(20),
AGE INT,
SEX CHAR(1),
INCOME FLOAT
);
Query OK, 0 rows affected (0.36 sec)
Dan jika kita telah memasukkan 4 record ke dalamnya menggunakan pernyataan INSERT sebagai -
mysql> INSERT INTO EMPLOYEE VALUES
('Krishna', 'Sharma', 19, 'M', 2000),
('Raj', 'Kandukuri', 20, 'M', 7000),
('Ramya', 'Ramapriya', 25, 'F', 5000),
('Mac', 'Mohan', 26, 'M', 2000);
Mengikuti pernyataan MySQL meningkatkan usia semua karyawan pria satu tahun -
mysql> UPDATE EMPLOYEE SET AGE = AGE + 1 WHERE SEX = 'M';
Query OK, 3 rows affected (0.06 sec) 9.
Rows matched: 3 Changed: 3 Warnings: 0
Jika Anda mengambil konten tabel, Anda dapat melihat nilai yang diperbarui sebagai -
mysql> select * from EMPLOYEE;
+------------+-----------+------+------+--------+
| FIRST_NAME | LAST_NAME | AGE | SEX | INCOME |
+------------+-----------+------+------+--------+
| Krishna | Sharma | 20| M | 2000 |
| Raj | Kandukuri | 21| M | 7000 |
| Ramya | Ramapriya | 25| F | 5000 |
| Mac | Mohan | 27| M | 2000 |
+------------+-----------+------+------+--------+
4 rows in set (0.00 sec)
Memperbarui Isi Tabel Menggunakan Python
Untuk memperbarui catatan dalam tabel di MySQL menggunakan python -
impor mysql.connector paket.
Buat objek koneksi menggunakan mysql.connector.connect() metode, dengan meneruskan nama pengguna, kata sandi, host (opsional default: localhost) dan, database (opsional) sebagai parameter untuk itu.
Buat objek kursor dengan memanggil cursor() metode pada objek koneksi yang dibuat di atas.
Kemudian, jalankan pernyataan UPDATE dengan meneruskannya sebagai parameter keexecute() metode.
Contoh
Contoh berikut meningkatkan usia semua laki-laki satu tahun.
import mysql.connector
#establishing the connection
conn = mysql.connector.connect(
user='root', password='password', host='127.0.0.1', database='mydb'
)
#Creating a cursor object using the cursor() method
cursor = conn.cursor()
#Preparing the query to update the records
sql = '''UPDATE EMPLOYEE SET AGE = AGE + 1 WHERE SEX = 'M' '''
try:
# Execute the SQL command
cursor.execute(sql)
# Commit your changes in the database
conn.commit()
except:
# Rollback in case there is any error
conn.rollback()
#Retrieving data
sql = '''SELECT * from EMPLOYEE'''
#Executing the query
cursor.execute(sql)
#Displaying the result
print(cursor.fetchall())
#Closing the connection
conn.close()
Keluaran
[
('Krishna', 'Sharma', 22, 'M', 2000.0),
('Raj', 'Kandukuri', 23, 'M', 7000.0),
('Ramya', 'Ramapriya', 26, 'F', 5000.0)
]
Untuk menghapus record dari tabel MySQL, Anda perlu menggunakan DELETE FROMpernyataan. Untuk menghapus catatan tertentu, Anda perlu menggunakan klausa WHERE bersamanya.
Sintaksis
Berikut ini adalah sintaks dari query DELETE di MYSQL -
DELETE FROM table_name [WHERE Clause]
Contoh
Asumsikan kita telah membuat tabel di MySQL dengan nama EMPLOYEES sebagai -
mysql> CREATE TABLE EMPLOYEE(
FIRST_NAME CHAR(20) NOT NULL,
LAST_NAME CHAR(20),
AGE INT,
SEX CHAR(1),
INCOME FLOAT
);
Query OK, 0 rows affected (0.36 sec)
Dan jika kita telah memasukkan 4 record ke dalamnya menggunakan pernyataan INSERT sebagai -
mysql> INSERT INTO EMPLOYEE VALUES
('Krishna', 'Sharma', 19, 'M', 2000),
('Raj', 'Kandukuri', 20, 'M', 7000),
('Ramya', 'Ramapriya', 25, 'F', 5000),
('Mac', 'Mohan', 26, 'M', 2000);
Mengikuti pernyataan MySQL akan menghapus catatan karyawan dengan "Mac" FIRST_NAME .
mysql> DELETE FROM EMPLOYEE WHERE FIRST_NAME = 'Mac';
Query OK, 1 row affected (0.12 sec)
Jika Anda mengambil kembali isi tabel, Anda hanya dapat melihat 3 catatan karena kami telah menghapus satu.
mysql> select * from EMPLOYEE;
+------------+-----------+------+------+--------+
| FIRST_NAME | LAST_NAME | AGE | SEX | INCOME |
+------------+-----------+------+------+--------+
| Krishna | Sharma | 20| M | 2000 |
| Raj | Kandukuri | 21| M | 7000 |
| Ramya | Ramapriya | 25| F | 5000 |
+------------+-----------+------+------+--------+
3 rows in set (0.00 sec)
Jika Anda menjalankan pernyataan DELETE tanpa klausa WHERE, semua rekaman dari tabel yang ditentukan akan dihapus.
mysql> DELETE FROM EMPLOYEE;
Query OK, 3 rows affected (0.09 sec)
Jika Anda mengambil isi tabel, Anda akan mendapatkan satu set kosong seperti yang ditunjukkan di bawah ini -
mysql> select * from EMPLOYEE;
Empty set (0.00 sec)
Menghapus Record dari Tabel Menggunakan Python
Operasi DELETE diperlukan saat Anda ingin menghapus beberapa rekaman dari database Anda.
Untuk menghapus catatan dalam tabel -
impor mysql.connector paket.
Buat objek koneksi menggunakan mysql.connector.connect() metode, dengan meneruskan nama pengguna, kata sandi, host (opsional default: localhost) dan, database (opsional) sebagai parameter untuk itu.
Buat objek kursor dengan menjalankan metode cursor () pada objek koneksi yang dibuat di atas.
Kemudian, jalankan DELETE pernyataan dengan meneruskannya sebagai parameter ke execute() metode.
Contoh
Program berikut menghapus semua catatan dari KARYAWAN yang AGE-nya lebih dari 20 -
import mysql.connector
#establishing the connection
conn = mysql.connector.connect(
user='root', password='password', host='127.0.0.1', database='mydb'
)
#Creating a cursor object using the cursor() method
cursor = conn.cursor()
#Retrieving single row
print("Contents of the table: ")
cursor.execute("SELECT * from EMPLOYEE")
print(cursor.fetchall())
#Preparing the query to delete records
sql = "DELETE FROM EMPLOYEE WHERE AGE > '%d'" % (25)
try:
# Execute the SQL command
cursor.execute(sql)
# Commit your changes in the database
conn.commit()
except:
# Roll back in case there is any error
conn.rollback()
#Retrieving data
print("Contents of the table after delete operation ")
cursor.execute("SELECT * from EMPLOYEE")
print(cursor.fetchall())
#Closing the connection
conn.close()
Keluaran
Contents of the table:
[
('Krishna', 'Sharma', 22, 'M', 2000.0),
('Raj', 'Kandukuri', 23, 'M', 7000.0),
('Ramya', 'Ramapriya', 26, 'F', 5000.0),
('Mac', 'Mohan', 20, 'M', 2000.0),
('Ramya', 'Rama priya', 27, 'F', 9000.0)
]
Contents of the table after delete operation:
[
('Krishna', 'Sharma', 22, 'M', 2000.0),
('Raj', 'Kandukuri', 23, 'M', 7000.0),
('Mac', 'Mohan', 20, 'M', 2000.0)
]
Anda dapat menghapus seluruh tabel menggunakan DROP TABLEpernyataan. Anda hanya perlu menentukan nama tabel yang perlu Anda hapus.
Sintaksis
Berikut ini adalah sintaks dari pernyataan DROP TABLE di MySQL -
DROP TABLE table_name;
Contoh
Sebelum menghapus tabel, dapatkan daftar tabel menggunakan pernyataan SHOW TABLES sebagai berikut -
mysql> SHOW TABLES;
+-----------------+
| Tables_in_mydb |
+-----------------+
| contact |
| cricketers_data |
| employee |
| sample |
| tutorials |
+-----------------+
5 rows in set (0.00 sec)
Pernyataan berikut menghapus tabel bernama sampel dari database sepenuhnya -
mysql> DROP TABLE sample;
Query OK, 0 rows affected (0.29 sec)
Karena kami telah menghapus tabel bernama sampel dari MySQL, jika Anda mendapatkan daftar tabel lagi, Anda tidak akan menemukan sampel nama tabel di dalamnya.
mysql> SHOW TABLES;
+-----------------+
| Tables_in_mydb |
+-----------------+
| contact |
| cricketers_data |
| employee |
| tutorials |
+-----------------+
4 rows in set (0.00 sec)
Menghapus Tabel Menggunakan Python
Anda dapat meletakkan tabel kapan pun Anda mau, menggunakan pernyataan DROP dari MYSQL, tetapi Anda harus sangat berhati-hati saat menghapus tabel yang ada karena data yang hilang tidak akan dipulihkan setelah menghapus tabel.
Untuk menjatuhkan tabel dari database MYSQL menggunakan python, panggil execute() metode pada objek kursor dan meneruskan pernyataan drop sebagai parameter untuk itu.
Contoh
Tabel berikut menghapus tabel bernama EMPLOYEE dari database.
import mysql.connector
#establishing the connection conn = mysql.connector.connect(
user='root', password='password', host='127.0.0.1', database='mydb'
)
#Creating a cursor object using the cursor() method cursor = conn.cursor()
#Retrieving the list of tables print("List of tables in the database: ")
cursor.execute("SHOW Tables") print(cursor.fetchall())
#Doping EMPLOYEE table if already exists cursor.execute("DROP TABLE EMPLOYEE")
print("Table dropped... ")
#Retrieving the list of tables print(
"List of tables after dropping the EMPLOYEE table: "
)
cursor.execute("SHOW Tables") print(cursor.fetchall())
#Closing the connection
conn.close()
Keluaran
List of tables in the database:
[('employee',), ('employeedata',), ('sample',), ('tutorials',)]
Table dropped...
List of tables after dropping the EMPLOYEE table:
[('employeedata',), ('sample',), ('tutorials',)]
Drop Table Hanya jika Ada
Jika Anda mencoba untuk menjatuhkan tabel yang tidak ada di database, kesalahan terjadi sebagai -
mysql.connector.errors.ProgrammingError: 1051 (42S02): Unknown table 'mydb.employee'
Anda dapat mencegah kesalahan ini dengan memverifikasi apakah tabel ada sebelum menghapus, dengan menambahkan pernyataan IF EXISTS ke DELETE.
Example
import mysql.connector
#establishing the connection
conn = mysql.connector.connect(
user='root', password='password', host='127.0.0.1', database='mydb'
)
#Creating a cursor object using the cursor() method
cursor = conn.cursor()
#Retrieving the list of tables
print("List of tables in the database: ")
cursor.execute("SHOW Tables")
print(cursor.fetchall())
#Doping EMPLOYEE table if already exists
cursor.execute("DROP TABLE IF EXISTS EMPLOYEE")
print("Table dropped... ")
#Retrieving the list of tables
print("List of tables after dropping the EMPLOYEE table: ")
cursor.execute("SHOW Tables")
print(cursor.fetchall())
#Closing the connection
conn.close()
Output
List of tables in the database:
[('employeedata',), ('sample',), ('tutorials',)]
Table dropped...
List of tables after dropping the EMPLOYEE table:
[('employeedata',), ('sample',),
('tutorials',)]
Saat mengambil catatan jika Anda ingin membatasinya dengan nomor tertentu, Anda dapat melakukannya, menggunakan klausa LIMIT MYSQL.
Contoh
Asumsikan kita telah membuat tabel di MySQL dengan nama EMPLOYEES sebagai -
mysql> CREATE TABLE EMPLOYEE(
FIRST_NAME CHAR(20) NOT NULL,
LAST_NAME CHAR(20),
AGE INT,
SEX CHAR(1),
INCOME FLOAT
);
Query OK, 0 rows affected (0.36 sec)
Dan jika kita telah memasukkan 4 record ke dalamnya menggunakan pernyataan INSERT sebagai -
mysql> INSERT INTO EMPLOYEE VALUES
('Krishna', 'Sharma', 19, 'M', 2000),
('Raj', 'Kandukuri', 20, 'M', 7000),
('Ramya', 'Ramapriya', 25, 'F', 5000),
('Mac', 'Mohan', 26, 'M', 2000);
Pernyataan SQL berikut mengambil dua catatan pertama dari tabel Karyawan menggunakan klausa LIMIT.
SELECT * FROM EMPLOYEE LIMIT 2;
+------------+-----------+------+------+--------+
| FIRST_NAME | LAST_NAME | AGE | SEX | INCOME |
+------------+-----------+------+------+--------+
| Krishna | Sharma | 19| M | 2000 |
| Raj | Kandukuri | 20| M | 7000 |
+------------+-----------+------+------+--------+
2 rows in set (0.00 sec)
Batasi Klausul Menggunakan Python
Jika Anda memanggil execute() metode pada objek kursor dengan meneruskan kueri SELECT bersama dengan klausa LIMIT, Anda dapat mengambil jumlah record yang diperlukan.
Contoh
Contoh python berikut membuat dan mengisi tabel dengan nama EMPLOYEE dan, dengan menggunakan klausa LIMIT, ia mengambil dua record pertama darinya.
import mysql.connector
#establishing the connection
conn = mysql.connector.connect(
user='root', password='password', host='127.0.0.1', database='mydb'
)
#Creating a cursor object using the cursor() method
cursor = conn.cursor()
#Retrieving single row
sql = '''SELECT * from EMPLOYEE LIMIT 2'''
#Executing the query
cursor.execute(sql)
#Fetching the data
result = cursor.fetchall();
print(result)
#Closing the connection
conn.close()
Keluaran
[('Krishna', 'Sharma', 26, 'M', 2000.0), ('Raj', 'Kandukuri', 20, 'M', 7000.0)]
LIMIT dengan OFFSET
Jika Anda perlu membatasi record mulai dari record ke-n (bukan record pertama), Anda dapat melakukannya, menggunakan OFFSET bersama dengan LIMIT.
Example
import mysql.connector
#establishing the connection
conn = mysql.connector.connect(
user='root', password='password', host='127.0.0.1', database='mydb'
)
#Creating a cursor object using the cursor() method
cursor = conn.cursor()
#Retrieving single row
sql = '''SELECT * from EMPLOYEE LIMIT 2 OFFSET 2'''
#Executing the query
cursor.execute(sql)
#Fetching the data
result = cursor.fetchall();
print(result)
#Closing the connection
conn.close()
Output
[('Ramya', 'Ramapriya', 29, 'F', 5000.0), ('Mac', 'Mohan', 26, 'M', 2000.0)]
Saat Anda telah membagi data dalam dua tabel, Anda dapat mengambil rekaman gabungan dari dua tabel ini menggunakan Gabungan.
Contoh
Misalkan kita telah membuat tabel dengan nama EMPLOYEE dan memasukkan data ke dalamnya seperti yang ditunjukkan di bawah ini -
mysql> CREATE TABLE EMPLOYEE(
FIRST_NAME CHAR(20) NOT NULL,
LAST_NAME CHAR(20),
AGE INT,
SEX CHAR(1),
INCOME FLOAT,
CONTACT INT
);
Query OK, 0 rows affected (0.36 sec)
INSERT INTO Employee VALUES
('Ramya', 'Rama Priya', 27, 'F', 9000, 101),
('Vinay', 'Bhattacharya', 20, 'M', 6000, 102),
('Sharukh', 'Sheik', 25, 'M', 8300, 103),
('Sarmista', 'Sharma', 26, 'F', 10000, 104),
('Trupthi', 'Mishra', 24, 'F', 6000, 105);
Query OK, 5 rows affected (0.08 sec)
Records: 5 Duplicates: 0 Warnings: 0
Kemudian, jika kita telah membuat tabel lain dan mengisinya sebagai -
CREATE TABLE CONTACT(
ID INT NOT NULL,
EMAIL CHAR(20) NOT NULL,
PHONE LONG,
CITY CHAR(20)
);
Query OK, 0 rows affected (0.49 sec)
INSERT INTO CONTACT (ID, EMAIL, CITY) VALUES
(101, '[email protected]', 'Hyderabad'),
(102, '[email protected]', 'Vishakhapatnam'),
(103, '[email protected]', 'Pune'),
(104, '[email protected]', 'Mumbai');
Query OK, 4 rows affected (0.10 sec)
Records: 4 Duplicates: 0 Warnings: 0
Pernyataan berikut mengambil data yang menggabungkan nilai-nilai dalam dua tabel ini -
mysql> SELECT * from EMPLOYEE INNER JOIN CONTACT ON EMPLOYEE.CONTACT = CONTACT.ID;
+------------+--------------+------+------+--------+---------+-----+--------------------+-------+----------------+
| FIRST_NAME | LAST_NAME | AGE | SEX | INCOME | CONTACT | ID | EMAIL | PHONE | CITY |
+------------+--------------+------+------+--------+---------+-----+--------------------+-------+----------------+
| Ramya | Rama Priya | 27 | F | 9000 | 101 | 101 | [email protected] | NULL | Hyderabad |
| Vinay | Bhattacharya | 20 | M | 6000 | 102 | 102 | [email protected] | NULL | Vishakhapatnam |
| Sharukh | Sheik | 25 | M | 8300 | 103 | 103 | [email protected] | NULL | Pune |
| Sarmista | Sharma | 26 | F | 10000 | 104 | 104 | [email protected] | NULL | Mumbai |
+------------+--------------+------+------+--------+---------+-----+--------------------+-------+----------------+
4 rows in set (0.00 sec)
MYSQL BERGABUNG Menggunakan Python
Contoh berikut mengambil data dari dua tabel di atas yang digabungkan dengan kolom kontak dari tabel KARYAWAN dan kolom ID dari tabel KONTAK.
Contoh
import mysql.connector
#establishing the connection
conn = mysql.connector.connect(
user='root', password='password', host='127.0.0.1', database='mydb'
)
#Creating a cursor object using the cursor() method
cursor = conn.cursor()
#Retrieving single row
sql = '''SELECT * from EMPLOYEE INNER JOIN CONTACT ON EMPLOYEE.CONTACT = CONTACT.ID'''
#Executing the query
cursor.execute(sql)
#Fetching 1st row from the table
result = cursor.fetchall();
print(result)
#Closing the connection
conn.close()
Keluaran
[
('Krishna', 'Sharma', 26, 'M', 2000, 101, 101, '[email protected]', 9848022338, 'Hyderabad'),
('Raj', 'Kandukuri', 20, 'M', 7000, 102, 102, '[email protected]', 9848022339, 'Vishakhapatnam'),
('Ramya', 'Ramapriya', 29, 'F', 5000, 103, 103, '[email protected]', 9848022337, 'Pune'),
('Mac', 'Mohan', 26, 'M', 2000, 104, 104, '[email protected]', 9848022330, 'Mumbai')
]
MySQLCursor mysql-connector-python (dan pustaka serupa) digunakan untuk menjalankan pernyataan untuk berkomunikasi dengan database MySQL.
Dengan menggunakan metodenya, Anda dapat menjalankan pernyataan SQL, mengambil data dari kumpulan hasil, memanggil prosedur.
Anda bisa membuat Cursor objek menggunakan metode cursor () dari objek / kelas Connection.
Contoh
import mysql.connector
#establishing the connection
conn = mysql.connector.connect(
user='root', password='password', host='127.0.0.1', database='mydb'
)
#Creating a cursor object using the cursor() method
cursor = conn.cursor()
Metode
Berikut adalah berbagai metode yang disediakan oleh kelas / objek Cursor.
Sr Tidak | Metode & Deskripsi |
---|---|
1 | callproc() Metode ini digunakan untuk memanggil prosedur yang ada database MySQL. |
2 | close() Metode ini digunakan untuk menutup objek kursor saat ini. |
3 | Info() Metode ini memberikan informasi tentang kueri terakhir. |
4 | executemany() Metode ini menerima serangkaian daftar daftar parameter. Menyiapkan kueri MySQL dan menjalankannya dengan semua parameter. |
5 | execute() Metode ini menerima kueri MySQL sebagai parameter dan menjalankan kueri yang diberikan. |
6 | fetchall() Metode ini mengambil semua baris dalam kumpulan hasil kueri dan mengembalikannya sebagai daftar tupel. (Jika kita menjalankan ini setelah mengambil beberapa baris, ia mengembalikan yang tersisa) |
7 | fetchone() Metode ini mengambil baris berikutnya dalam hasil kueri dan mengembalikannya sebagai tupel. |
8 | fetchmany() Metode ini mirip dengan fetchone () tetapi, metode ini mengambil kumpulan baris berikutnya dalam kumpulan hasil kueri, bukan satu baris. |
9 | fetchwarnings() Metode ini mengembalikan peringatan yang dihasilkan oleh kueri yang terakhir dieksekusi. |
Properti
Berikut ini adalah properti dari kelas Cursor -
Sr Tidak | Deskripsi properti |
---|---|
1 | column_names Ini adalah properti hanya baca yang mengembalikan daftar yang berisi nama kolom dari kumpulan hasil. |
2 | description Ini adalah properti hanya baca yang mengembalikan daftar yang berisi deskripsi kolom dalam kumpulan hasil. |
3 | lastrowid Ini adalah properti hanya baca, jika ada kolom yang bertambah secara otomatis dalam tabel, ini mengembalikan nilai yang dihasilkan untuk kolom tersebut di operasi INSERT atau, UPDATE terakhir. |
4 | rowcount Ini mengembalikan jumlah baris yang dikembalikan / diperbarui dalam kasus operasi SELECT dan UPDATE. |
5 | statement Properti ini mengembalikan pernyataan yang terakhir dieksekusi. |