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万+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章