顯示具有 mysql 標籤的文章。 顯示所有文章
顯示具有 mysql 標籤的文章。 顯示所有文章

2023年12月23日 星期六

使用pymysql套件來操作MySQL資料庫

 參考資料如下:

  1. 黃建庭,"Python程式設計從入門到進階應用",全華,第13章,第13-16頁。
  2. [2020鐵人賽Day17]糊裡糊塗Python就上手-MySQL操作探險歷程(上),https://ithelp.ithome.com.tw/articles/10246378
  3. [2020鐵人賽Day18]糊裡糊塗Python就上手-MySQL操作探險歷程(下),https://ithelp.ithome.com.tw/articles/10246379

本篇文章是將參考資料的第一篇文章的範例,用參考資料第二、三篇的套件改寫。

程式如下:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
import pymysql

# 連接到 MySQL 資料庫
connect_db = pymysql.connect(host='localhost', port=3306, user='root', passwd='', charset='utf8')

# 使用 with 來確保資源的正確釋放
with connect_db.cursor() as cursor:
    # 建立一個名為 'school' 的資料庫
    cursor.execute('CREATE DATABASE school')

    # 選擇 'school' 資料庫
    cursor.execute('USE school')

    # 建立一個名為 'stu' 的表格
    sql = """CREATE TABLE stu (
        stuid INTEGER PRIMARY KEY,
        name VARCHAR(50) NOT NULL,
        pid VARCHAR(20) NOT NULL,
        phone VARCHAR(20) NOT NULL )"""
    cursor.execute(sql)

    # 插入一條記錄到 'stu' 表格
    sql = "INSERT INTO stu VALUES (104001, 'Claire', 'B342222', '1245667')"
    cursor.execute(sql)

    # 查詢 'stu' 表格的所有記錄
    result = cursor.execute("SELECT * FROM stu")
    rows = cursor.fetchall()
    print(rows)

    # 刪除 'stu' 表格
    cursor.execute('DROP TABLE stu')

    # 刪除 'school' 資料庫
    cursor.execute('DROP DATABASE school')

執行結果:
((104001, 'Claire', 'B342222', '1245667'),)

2018年2月20日 星期二

Google表單存入自己的資料庫Mysql

google表單很好用,界面很完整,不只能存入google的試算表文件,能存入自己的mysql就可以用來其他的用途,很棒吧。
請在表單中,選擇指令碼編輯器,便可以開啟google app script。

在script中重要的指令如下
function myFunction() {
  // 建立jdbc連線
  var conn = Jdbc.getConnection("jdbc:mysql://host ip:port/databasename", "username", "password");
  var stmt = conn.createStatement();
  //綁定工作表
  var sheet = SpreadsheetApp.getActiveSpreadsheet();
  var ss = SpreadsheetApp.getActive();
  //設定資料範圍
  var data = sheet.getDataRange().getValues();

  //存入mysql
  var row_del = new Array();
  for (var i = 0; i < data.length; i++)
  {
      var sql = "INSERT INTO test (test, num) VALUES ('" + data[i][1] + "'," + data[i][2] + ")";
      var count = stmt.executeUpdate(sql,1);
      //紀錄等等要刪除範圍
      row_del.push(i+2);
  }
   // 刪除資料
  for (var i = row_del.length - 1; i>=0; i--)
  {
      sheet.deleteRow(row_del[i]);
  }
    stmt.close();
    conn.close();
}

原文發表於:夜市小霸王(google表單存入Mysql