Python3 MySQL一

Python2中則使用mysqldb

PyMySQL 是在 Python3.x 版本中用於連接 MySQL 服務器的一個庫,遵循 Python 數據庫 API v2.0 規範,幷包含了 pure-Python MySQL 客戶端庫。

看下一篇文章Python3 MySQL二 PyMySQL

數據庫名:atest

表:user

 

目錄

Python2中則使用mysqldb

PyMySQL 是在 Python3.x 版本中用於連接 MySQL 服務器的一個庫,遵循 Python 數據庫 API v2.0 規範,幷包含了 pure-Python MySQL 客戶端庫。

數據庫名:atest

1.連接數據庫

2.創建數據庫、創建表

3.插入表數據

4.查詢數據

5.刪除數據

6.update數據

7.刪除表

8.刪除數據庫


1.連接數據庫

import mysql.connector

anewab = mysql.connector.connect(
    host="localhost",
    user="root",
    passwd=""
)
print(anewab)

2.創建數據庫、創建表

創建數據庫atest

import mysql.connector

anewab = mysql.connector.connect(
    host="localhost",
    user="root",
    passwd="",
    
)

mycursor = anewab.cursor()

# 創建數據庫
mycursor.execute("CREATE DATABASE atest")

在atest數據庫創建表user 

import mysql.connector

anewab = mysql.connector.connect(
    host="localhost",
    user="root",
    passwd="",
    # 指定數據庫
    database="atest"
)

mycursor = anewab.cursor()

# 創建表
mycursor.execute("create table user(name VARCHAR (10), age integer(3) )")

 給已存在的表user設置主鍵

# 設置主鍵
mycursor.execute("alter table user add column id int auto_increment primary key ")

 

 

如果表未存在,創建表的同時設置主鍵

mycursor.execute("CREATE TABLE sites (id INT AUTO_INCREMENT PRIMARY KEY, name VARCHAR(255), url VARCHAR(255))")

 

3.插入表數據

import mysql.connector

anewab = mysql.connector.connect(
    host="localhost",
    user="root",
    passwd="",
    # 指定數據庫
    database="atest"
)

mycursor = anewab.cursor()

# 插入數據
sql = "insert into user(name,age) values (%s, %s)"
val = ("陳奕迅", 18)
mycursor.execute(sql, val)
# 數據表內容有更新,必須使用到該語句提交
anewab.commit()
# rowcount只會記錄未被提交的最後一條SQL語句的影響行數
print(mycursor.rowcount, "插入成功")


 


插入多條數據


# 插入數據
sql = "insert into user(name,age) values (%s, %s)"
val = [
    ("周杰倫", 18),
    ("李宇春", 18),
    ("汪蘇瀧", 18),
    ("許嵩", 18)
]

# 注意這裏用executemany
mycursor.executemany(sql, val)
anewab.commit()
print(mycursor.rowcount, "插入成功")

 

獲取插入的ID

mycursor.lastrowid

4.查詢數據

獲取所有用fetchall()

import mysql.connector

anewab = mysql.connector.connect(
    host="localhost",
    user="root",
    passwd="",
    # 指定數據庫
    database="atest"
)
mycursor = anewab.cursor()

mycursor.execute("select * from user")
myresult = mycursor.fetchall()

for x in myresult:
    print(x)

 

 

獲取一條可以用fetchone()

mycursor.execute("select * from user")
myresult = mycursor.fetchone()
print(myresult)

 

 

 

 爲了防止數據庫查詢發生 SQL 注入的攻擊,我們可以使用 %s 佔位符來轉義查詢

 

升序

降序 用desc

限制查詢數量:

select * from user limit 3

指定起始位置,使用的關鍵字是 OFFSET

 

"select * from user limit 3 offset 2

5.刪除數據

 

注意:要慎重使用刪除語句,刪除語句要確保指定了 WHERE 條件語句,否則會導致整表數據被刪除。 

6.update數據

sql = "update user set name='陳奕迅2' where name = '陳奕迅'"
mycursor.execute(sql)
anewab.commit()

UPDATE 語句要確保指定了 WHERE 條件語句,否則會導致整表數據被更新。

7.刪除表

mycursor.execute("drop table if exists user")

8.刪除數據庫

mycursor.execute("drop database if exists atest")

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章