1. 程式人生 > 其它 >python MySQL的一些基本操作

python MySQL的一些基本操作

一、基本操作

1、登入MySQL:

  win+R 進入cmd:

    輸入:mysql -uroot -p

    再輸入自己設定的密碼:

    就可以進入:

2、檢視mysql中所有資料庫(Database) : show databases; (以分號結尾)

3、建立資料庫(前面兩個單詞固定,後面一個為自己要建立的資料庫的名字):create database aaaaaa_bbbbbbb;

  有這個說明建立成功

  再次查詢,可以看到確實成功

4、刪除資料庫:drop databaseaaaaaa_bbbbbbb;

  刪除成功:

5、切換進某個資料庫(第二個引數為要進入的資料庫):use pythondb;

  切換成功:

6、可以檢視資料庫中所有表:show tables;

  可以看到有一個表(剛開始沒有需要自己建立,下面會講):

7、刪除表格:drop table data;

  刪除之後變成空的了。

建立一個表格並制定表頭(這裡先不講):

CREATE TABLE excel(
`province` varchar(40),
`city` varchar(30),
`nowConfirm` int ,
`newAdd` int ,
`total` int ,
`heal` int ,
`dead` int ,
`healRate` varchar(20) ,
`deadRate` varchar(20) ,
`time` varchar(20),
PRIMARY KEY (`province`,`time`)) DEFAULT CHARSET=utf8;

成功

8、查看錶格標表頭 :desc excel;

二、開始用python操作

為了方便講解我用了一個視覺化MySQL的軟體:Navicat

1、首先肯定是先建立一個

# 建立資料庫表

import pymysql
# 如果是本機的話
host = 'localhost' #'127.0.0.1'
# 下面兩個引數是自己安裝配置時的名字和密碼
user = 'root'
passwd = 'root'
# 開啟資料庫連線,不需要指定資料庫,因為需要建立資料庫
conn = pymysql.connect(host=host,user = user,passwd = passwd)
#獲取遊標 cursor=conn.cursor() # 建立資料庫的語句 sql = 'CREATE DATABASE IF NOT EXISTS test_db DEFAULT CHARSET utf8 COLLATE utf8_general_ci;' #建立一個名為test_db資料庫 # 執行建立語句 cursor.execute(sql) # 下面的兩條語句不能反了 #先關閉遊標 cursor.close() #再關閉資料庫連線 conn.close() print('建立資料庫成功')

結果圖:




解釋一下某些引數:

# DEFAULT CHARACTER SET utf8 :   代表的是將該庫的預設編碼格式設定為utf8格式。
# COLLATE utf8_general_ci :    代表的是資料庫校對規則,utf8_bin將字串中的每一個字元用二進位制資料儲存,區分大小寫。
# utf8_genera_ci不區分大小寫,ci為case insensitive的縮寫,即大小寫不敏感。

2、接下來當然就是連結資料庫;

import pymysql

#
開啟資料庫連線,比上面多了兩個引數(為最後兩個),一個為要開啟的資料庫,一個為指定編碼格式 db = pymysql.connect("localhost", "root", "root", 'test_db', charset='utf8' ) # 使用cursor()方法獲取操作遊標 cursor = db.cursor() sql = "SELECT VERSION()" # 使用execute方法執行SQL語句,# 獲取到版本號 cursor.execute(sql) # 使用 fetchone() 方法獲取一條資料 data = cursor.fetchone() # 獲取到版本號 print("Database version : %s " % data) # 關閉游標 cursor.close() # 關閉資料庫連線 db.close()

執行結果:

3、建立一個數據表(table):create table (大小寫都行)

import pymysql

# 建立tables,與表頭
# 開啟資料庫連線
db = pymysql.connect("localhost", "root", "root", "test_db", charset='utf8' )

# 使用cursor()方法獲取操作遊標
cursor = db.cursor()

# 若excel的資料表已經存 則。
cursor.execute("DROP TABLE IF EXISTS excel")

# 建立資料表SQL語句
sql = """create table excel (
         id  CHAR(20) NOT NULL,
         name  CHAR(20),
         age INT,
         sex CHAR(1),
         number FLOAT )"""

# 執行sql語句
cursor.execute(sql)
# 關閉遊標
cursor.close()
# 關閉資料庫連線
db.close()

建立成功:

4、插入資料:

import pymysql

# 資料庫插入操作
# 開啟資料庫連線
db = pymysql.connect("localhost", "root", "root", "test_db", charset='utf8' )

# 使用cursor()方法獲取操作遊標
cursor = db.cursor()

# SQL 插入語句
sql = """INSERT INTO excel(id,
         name, age, sex, number)
         VALUES ('1114444', 'Mohan', 20, 'M', 2000)"""
try:
    # 執行sql語句
    cursor.execute(sql)
    # 提交到資料庫執行
    db.commit()
    print('成功')
except Exception as e:
    print('出錯')
    # Rollback in case there is any error
    db.rollback()

# 關閉資料庫連線
db.close()

效果:

這個程式沒有去重,所以沒執行一次都會加入,不管重複不。

# 記住%s 必須再兩邊加上''否則會出錯

也可以用這樣:後面的只可以用變數代替:

sql = "INSERT INTO EMPLOYEE(id,name, age, sex, number)VALUES ('%s', '%s', '%s', '%s', '%s' )" % ('1314', 'hahaha', 34, 'm', 2400)

5、表的查詢:

import pymysql
# 資料庫查詢操作

# 開啟資料庫連線
db = pymysql.connect("localhost", "root", "root", "test_db", charset='utf8' )

# 使用cursor()方法獲取操作遊標
cursor = db.cursor()

# SQL 查詢語句, 當其number大於1500時
sql = "SELECT * FROM excel \
       WHERE number > %s" % (1500)
try:
    # 執行SQL語句
    cursor.execute(sql)
    # cursor.fetchone() 獲取紀錄列表,返回一條,讀完一條會往下

    # 獲取所有記錄列表,返回全部
    results = cursor.fetchall()
    for row in results:
        id = row[0]
        name = row[1]
        age = row[2]
        sex = row[3]
        number = row[4]
        # 列印結果
        print("id=%s,name=%s,age=%s,sex=%s,number=%s" % \
              (id, name, age, sex, number ))
except Exception as e:
    print(e)
    print("Error: unable to fecth data")

# 關閉遊標
cursor.close()
# 關閉資料庫連線
db.close()

我自己加了一條

6、更新資料

import pymysql


# 開啟資料庫連線
db = pymysql.connect("localhost", "root", "root", "test_db", charset='utf8' )

# 使用cursor()方法獲取操作遊標
cursor = db.cursor()

# SQL 更新語句, 給女性的number加300
sql = "UPDATE excel SET number = number + 300 WHERE sex = '%c'" % ('w')
try:
   # 執行SQL語句
   cursor.execute(sql)
   # 提交到資料庫執行
   db.commit()
except:
   # 發生錯誤時回滾
   db.rollback()

# 關閉遊標
cursor.close()
# 關閉資料庫連線
db.close()

7、刪除

import pymysql

# 刪除操作
# 開啟資料庫連線
db = pymysql.connect("localhost", "root", "root", "test_db", charset='utf8' )
#
# 使用cursor()方法獲取操作遊標
cursor = db.cursor()

# SQL 刪除number<2100資料的語句
sql = "DELETE FROM excel WHERE number < %s" % (2100)
try:
   # 執行SQL語句
   cursor.execute(sql)
   # 提交修改
   db.commit()
except:
   # 發生錯誤時回滾
   db.rollback()

# 關閉遊標
cursor.close()
# 關閉連線
db.close()