python 報價資料庫 python資料庫

2021-10-22 11:19:52 字數 3658 閱讀 1650

任何應用都需要持久化儲存。一般有三種基礎的儲存機制:檔案、資料庫系統及混合型別。

1. 資料庫基本操作和sql

資料庫使用檔案系統作為基本的持久化儲存,可以是普通的作業系統檔案、專用的作業系統檔案、原始的磁碟分割槽等。多數資料庫系統提供命令列工具,可執行sql語句或查詢。

關係型資料庫管理系統(rdbms)可管理多個資料庫。mysql是基於服務的rdbms,其有乙個伺服器程序始終執行等待命令列輸入。

1.1 sql

資料庫命令和查詢操作通過sql語句進行。大部分資料庫不區分大小寫,一般來說資料庫關鍵字使用大寫,命令結尾使用分號表示結束。

sql是結構化查詢語言,是一種用來操作rdbms的資料庫語言。當前關係型資料庫都支援使用sql語言進行操作,也就是說可以通過 sql 操作 oracle,sql server,mysql,sqlite 等等所有的關係型的資料庫。

sql語句主要分為:

dql:資料查詢語言,用於對資料進行查詢,如select

dml:資料操作語言,對資料進行增加、修改、刪除,如insert、udpate、delete

tpl:事務處理語言,對事務進行處理,包括begin transaction、commit、rollback

dcl:資料控制語言,進行授權與許可權**,如grant、revoke

ddl:資料定義語言,進行資料庫、表的管理等,如create、drop

ccl:指標控制語言,通過控制指標完成表的操作,如declare cursor

1.2 python的db-api

2. 資料庫連線

① 使用db-api的connect()函式傳入相關引數連線資料庫並返回connection物件

② 建立cursor()物件呼叫execute()方法用來執行相關sql語句,並進行事務提交(增刪改等)

③ 關閉cursor()和connection()物件(一般使用try…except…finally實現)

2.1 mysql連線

connection 物件

用於建立與資料庫的連線

建立物件:呼叫connect()方法,conn=connect(引數列表)

引數host:連線的mysql主機,如果本機是』localhost』

引數port:連線的mysql主機的埠,預設是3306

引數database:資料庫的名稱

引數user:連線的使用者名稱

引數password:連線的密碼

connection物件的方法

close()關閉連線

commit()提交,用於修改資料後進行事務提交(增刪改)

cursor()返回cursor物件,用於執行sql語句並獲得結果

cursor物件

用於執行sql語句,使用頻度最高的語句為select、insert、update、delete。

獲取cursor物件:呼叫connection物件的cursor()方法,cs1=conn.cursor()

注意將sql語句引數化,避免sql注入。引數化後,執行時要給args傳入引數。

cursor物件的方法

close()關閉

execute(operation [, parameters ])執行語句,返回受影響的行數,主要用於執行insert、update、delete語句,也可以執行create、alter、drop等語句

fetchone()執行查詢語句時,獲取查詢結果集的第乙個行資料,返回乙個元組

fetchall()執行查詢時,獲取結果集的所有行,一行構成乙個元組,再將這些元組裝入乙個元組返回

物件的屬性

rowcount唯讀屬性,表示最近一次execute()執行後受影響的行數

connection獲得當前連線物件

# mysql資料庫

import pymysql

# 建立connection物件

conn = pymysql.connect(host="localhost", port=3306, database="python_test",

user="yuxi", password="199618", charset="utf8")

if conn:

print("連線資料庫成功!")

# 建立cursor物件

cursor = conn.cursor()

# 定義sql執行語句

select_sql = """select * from students;"""

# 使用游標物件執行sql語句,返回受影響的行數

count = cursor.execute(select_sql)

print("查出%d條資料,資料如下:" % count)

for info in range(count):

print(cursor.fetchone())

# 關閉游標物件

cursor.close()

# 關閉connection物件

conn.close()

2.2 postgresql連線

import psycopg2

# 建立connection物件連線資料庫

conn = psycopg2.connect(database='testdb', host='localhost', user='fengdi', password='199618', port=5432)

# 建立游標物件

cursor = conn.cursor()

# 使用游標物件執行操作:建立資料表

cursor.execute('''create table company

(id int primary key not null,

name text not null,

age int not null,

address char(50),

salary real);''')

print('資料表建立成功!')

# 事務提交

conn.commit()

# 關閉連線

conn.close()

2.3 sqlite3連線

import sqlite3

# python連線sqlite3

# 建立connection物件連線資料庫,檔案不存在則會在當前目錄新建

conn = sqlite3.connect('sqlite-test.db')

# 建立游標物件

cursor = conn.cursor()

# 執行sql語句,建立user表

cursor.execute('create table user (id varchar(20) primary key, name varchar(20))')

# 執行sql語句,插入一條記錄

cursor.execute('insert into user (id, name) values (\'1\', \'fengdi\')')

data = cursor.rowcount

print('插入記錄:%d條' % data)

# 關閉游標

cursor.close()

# 事務提交:對資料庫、資料表進行更改後需要提交

conn.commit()

# 關閉資料庫連線

conn.close()

標籤:語句,python,資料庫,cursor,物件,sql,conn

pymysql 模組快速插入資料庫(python)

先建立database資料庫 建立表字段 再帶入 插入資料 檔名order2.py import random def order1 sql for s in range 1,10 name random.choice 趙錢孫李周吳鄭王 random.choice 紅明嬌瑞睿蕊星三 age rand...

python資料庫模組 python 資料庫模組

python 資料庫介面模組 swordsp 2007 01 16 13 36 01 本條目收集了 python 中的常用資料庫介面模組,包括各種主流關聯式資料庫和一些通用介面 如無特別註明,均實現 或部分實現 了 db api 標準。更廣泛的 python 資料庫技術參見 python 資料庫開發...

python資料庫命令 Python資料庫操作

前言 連線資料庫 獲得當前工作目錄 import os current folder os.getcwd 生成資料庫檔案路徑 path current folder output test.mdb 資料庫連線 def init self,path self.conn pyodbc.connect r...