在Python中执行数据库查询语句,通常需要使用数据库连接库,例如`cx_Oracle`用于Oracle数据库,`mysql.connector`用于MySQL数据库,`pymysql`用于MySQL数据库,`sqlite3`用于SQLite数据库等。以下是使用不同数据库连接库执行查询语句的示例:
Oracle数据库查询示例
```python
import cx_Oracle
class handleDataBase:
def __init__(self, user, passwd, server, sql):
self.user = user
self.passwd = passwd
self.server = server
self.sql = sql
self.conn = cx_Oracle.connect('%s/%s@%s' % (self.user, self.passwd, self.server))
def selectDB(self):
cursor = self.conn.cursor()
cursor.execute(self.sql)
ret = cursor.fetchall()
cursor.close()
return ret
def closeDB(self):
self.conn.close()
if __name__ == '__main__':
user = 'username'
passwd = 'password'
server = 'server_address'
sql = 'SELECT count(1) FROM table_name'
db = handleDataBase(user, passwd, server, sql)
result = db.selectDB()
print(result)
db.closeDB()
MySQL数据库查询示例
```python
import mysql.connector
def main():
conn = mysql.connector.connect(
host='localhost',
port=3306,
user='root',
password='password',
database='database_name',
charset='utf8'
)
cs1 = conn.cursor()
count = cs1.execute('SELECT id, name FROM goods WHERE id >= 4')
print('查询到%d条数据:' % count)
for i in range(count):
result = cs1.fetchone()
print(result)
cs1.close()
conn.close()
if __name__ == '__main__':
main()
SQLite数据库查询示例
```python
import sqlite3
conn = sqlite3.connect('example.db')
c = conn.cursor()
c.execute('SELECT * FROM user_tb WHERE user_id > ?', (2,))
for col in c.description:
print(col, end='\t')
print('\n')
for row in c:
print(row)
c.close()
conn.close()
注意事项
使用`execute`方法执行查询语句,并可以通过参数化查询来防止SQL注入。
使用`fetchone`获取单个结果,`fetchall`获取所有结果。
使用`rowcount`获取受影响的行数。
请根据您使用的数据库类型选择合适的库和示例代码。