Select statement
استفاده از SELECT
برای انتخاب داده ها از یک جدول خاص می توانید از عبارت select استفاده کنید. اگر می خواهید تمام ستون های داده را از یک جدول انتخاب کنید ، می توانید از ستاره (*) استفاده کنید. نحو این امر به شرح زیر است:
SELECT * FROM table_name
در SQLite3 ، دستور SELECT در روش اجرای شی c مکان نما اجرا می شود. به عنوان مثال ، تمام ستون های جدول کارمندان را انتخاب کنید ، کد زیر را اجرا کنید:
cursorObj.execute('SELECT * FROM employees ')
اگر می خواهید چند ستون از جدول انتخاب کنید ، ستون ها را مانند موارد زیر مشخص کنید:
SELECT column1, column2 FROM tables_name
مثلا:
cursorObj.execute('SELECT id, name FROM employees')
عبارت Select داده های مورد نیاز را از جدول پایگاه داده انتخاب می کند ، و اگر می خواهید داده های انتخاب شده را واکشی کنید ، از روش () fetchall شی مکان نما استفاده می شود.
Fetch all data
برای واکشی داده ها از یک پایگاه داده ، دستور SELECT را اجرا می کنیم و سپس از روش fetchall () شی c مکان نما برای ذخیره مقادیر در یک متغیر استفاده خواهیم کرد. پس از آن ، ما متغیر را حلقه می کنیم و تمام مقادیر را چاپ می کنیم.
کد به صورت زیر خواهد بود:
import sqlite3
con = sqlite3.connect('mydatabase.db')
def sql_fetch(con):
cursorObj = con.cursor()
cursorObj.execute('SELECT * FROM employees')
rows = cursorObj.fetchall()
for row in rows:
print(row)
sql_fetch(con)
کد بالا سوابق موجود در پایگاه داده ما را به شرح زیر چاپ می کند:
همچنین می توانید از fetchall () در یک خط به شرح زیر استفاده کنید که با استفاده از list comprehensions نوشته شده است:
[print(row) for row in cursorObj.fetchall()]
اگر می خواهید داده های خاصی را از پایگاه داده دریافت کنید ، می توانید از بند WHERE استفاده کنید. به عنوان مثال ، ما می خواهیم شناسه و نام کارمندانی را که حقوق آنها بیشتر از 800 است ، واکشی کنیم. برای این منظور ، بیایید جدول خود را با سطرهای بیشتری پر کنیم ، سپس پرس و جو خود را اجرا کنیم.
می توانید از دستور insert برای پر کردن داده ها استفاده کنید ، یا می توانید آنها را به صورت دستی در برنامه مرورگر DB وارد کنید.
اکنون ، برای گرفتن شناسه و نام کسانی که حقوق بیشتری از 800 دارند:
import sqlite3
con = sqlite3.connect('mydatabase.db')
def sql_fetch(con):
cursorObj = con.cursor()
cursorObj.execute('SELECT id, name FROM employees WHERE salary > 800.0')
rows = cursorObj.fetchall()
for row in rows:
print(row)
sql_fetch(con)
در عبارت SELECT فوق ، به جای استفاده از ستاره (*) ، مشخصات id و name را مشخص کردیم. نتیجه مانند زیر خواهد بود:
سلام به مشکل برخوردم
فارسی پیدا نمیکنه توsqlite
مثلا اگر دنبال اسم مریم بگردم نمیتونه پیدا کنه
راه حلش چیه؟