python SQL基礎與python互動

Skander820發表於2018-04-27

SQL基礎語句

  1. 進入資料庫
mysql -u[username] -p[passward]
  1. 資料庫操作
CREATE DATABASE [db_name];   #建立資料庫
DROP DATABASE [db_name];     #刪除資料庫
SHOW DATABASES;                 #檢視資料庫
USE DATABASE;                #使用資料庫  
  1. 表格操作
#建立表格
CREATE TABLE [table_name] ([column_name datatype],[column_name datatype],...);
#例如我們要建立一個學生表 欄位有  [id int型別 主鍵 自動增長 非空 ],[姓名 字串最大長度20 非空]
CREATE TABLE students(id int primary key auto_increment not null,name varchar[20] not null);

#檢視錶格欄位
DESC [table_name];

#修改表格欄位
ALTER TABLE table_name ADD column_name datatype; #增加一列
ALTER TABLE table_name DROP COLUMN column_name;  #刪除一列
ALTER TABLE table_name CHANGE column_name column_name2 datatype; #將列column_name修改為column_name2 包括型別及屬性

#檢視錶格資料
SELECT * FROM table_name;
# *可以為任意列名,多個列名用逗號連線 *代表全部列 
# * 可以以為函式 比如 avg(column_name) sum(column_name) 
#count(column_name) max(column_name) min(column_name)等等

#去重
SELECT DISTINCT * FROM table_name;

#往表格內插入資料
INSERT INTO table_name VALUES([DATA1],[DATA2],[DATA3],[DATA4]); #資料與表格內的列一一對應

#刪除資料
DELETE FROM table_name WHERE condition; 
# eg: DELETE FROM student WHERE id=1 刪除student表內id為1的記錄;

#修改資料
UPDATE table_name SET column_name = new_value WHERE condition;

  1. 其他技巧
#以組的形式檢視
SELECT * FROM table_name GROUP BY column_name;

#以某一列排序 降序/升序
SELECT * FROM table_name ORDER BY column_name DESC/ASC;

#子查詢(select 語句的巢狀使用)
select * from table_name where column_name in (select column_name  from table_name where condition)

與python互動

# -*- coding: UTF-8 -*-

import pymysql

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

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

# 使用execute方法執行SQL語句
cursor.execute("SELECT VERSION()")

# 使用 fetchone() 方法獲取一條資料
data = cursor.fetchone()
# 使用 fetchall() 方法獲取所有資料
data = cursor.fetchall()

print "Database version : %s " % data

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

相關文章