MySQL + Python

創建表格:

CREATE TABLE Users(
  id INTEGER blabla
  name VARCHAR(128),
  email VARCHAR(128)
)


CREATE TABLE Course(
  id INTEGER blabla, %主鍵
  cname TEXT
)


CREATE TABLE Member(
  Users_id INTEGER,
  Course_id INTEGER,
  role INTEGER,
  PRIMARY KEY (Users_id,Course_id)
)    % many-many

 

插入和刪除數據:
INSERT OR IGNORE (REPLACE 忽略或代替) INTO Users(name,email)VALUES('bobo','[email protected]') 
DELETE FROM Users WHERE name='bobo'
DROP TABLE IF EXISTS Users %如果存在名爲Users的表格則刪除它


更新數據:
UPDATE Users SET name='bob' WHERE email='[email protected]' %email爲指定內容的名字換成bob


調出數據:
SELECT * FROM Users % 調出所有數據
SELECT * FROM Users WHERE name='bob' %調出名字爲bob的數據
SELECT email FROM Users WHERE name='bob'
SELECT * FROM Users ORDER BY email %根據email排序
SELECT * FROM Users ORDER BY email DESC LIMIT 10 %取出排序後前十個數據






基於Python
import sqlite3
a = sqlite3.connect('xxx.sqlite')
cur = a.cursor() #光標移
cur.execute('xxxx') #執行XXX命令
cur.fetchone() /  cur.fetchall() 取結果第一行/所有行
a.commit() #對數據庫數據的操作會在實現分配的緩存中進行,commit後數據庫數據才發生改變


合併數據:
SELECT A1,B1 FROM A,B WHERE A0=B1(主-外鍵) %A表外鍵對應有B表的話取出數據構成[A1,A2,B1]
SELECT A1,B1 FROM A JOIN B ON A2=B0(外-主鍵)%A2順序查找構成[A1,B1]
SELECT A1,A2,B0,B1 FROM A JOIN B ON A2=B0(外-主鍵)%可以看到A2,B0連接情況


SELECT A1,B1,C1,D1 FROM A JOIN B JOIN C JOIN D ON A.xxx_id = xxx.id AND blabla(三對外-主鍵) ORDER BY A1,B1,C1 (根據A1,B1,C1優先程度進行排列%多聯合情況,重點還是選取主表才能以此爲基礎與其他表連接

 

 

音樂數據庫模型和學生成績數據庫模型:


 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 
發佈了39 篇原創文章 · 獲贊 20 · 訪問量 7萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章