第五課 資料庫之mysql

第五課 資料庫之mysql

來自專欄 3個月python學習筆記

資料庫簡介

  • 資料庫系統解決的問題:持久化存儲,優化讀寫,保證數據的有效性
  • 當前使用的資料庫,主要分為兩類
    • 文檔型,如sqlite,就是一個文件,通過對文件的複製完成資料庫的複製
    • 服務型,如mysql、postgre,數據存儲在一個物理文件中,但是需要使用終端以tcp/ip協議連接,進行資料庫的讀寫操作

E-R模型

三範式

它粗略地理解為一張數據表的表結構所符合的某種設計標準的級別

1NF的定義為:符合1NF的關係中的每個屬性都不可再分。

規範被稱為範式

  • 第一範式(1NF):列不可拆分
  • 第二範式(2NF):唯一標識
  • 第三範式(3NF):引用主鍵
  • 說明:後一個範式,都是在前一個範式的基礎上建立的

安裝及密碼問題

ubuntu 解決「無法獲得鎖 /var/lib/dpkg/lock -open (11:資源暫時不可用)」的方法

強制解鎖,命令

sudo rm /var/cache/apt/archives/lock

sudo rm /var/lib/dpkg/lock

mysql 啟動了才能登陸mysql伺服器哈,資料庫都是這樣

root root

啟動 service mysql start 停止 service mysql stop 重啟service mysql restart

外面 mysql -hip地址 -uroot -p

如下命令進入MySQL服務:

mysql -uroot -p root

安裝配置:Ubuntu 16.04下安裝MySQL

密碼問題:ubuntu安裝mysql 時未提示輸入密碼 - CSDN博客

mysql與python交互

在文件中引入模塊 import Mysqldb

以後代碼全轉linux,終於知道windows為何不方便了。

封裝代碼

#encoding=utf8import MySQLdbclass MysqlHelper(): def __init__(self,host,port,db,user,passwd,charset=utf8): self.host=host self.port=port self.db=db self.user=user self.passwd=passwd self.charset=charset def connect(self): self.conn=MySQLdb.connect(host=self.host,port=self.port,db=self.db,user=self.user,passwd=self.passwd,charset=self.charset) self.cursor=self.conn.cursor() def close(self): self.cursor.close() self.conn.close() def get_one(self,sql,params=()): result=None try: self.connect() self.cursor.execute(sql, params) result = self.cursor.fetchone() self.close() except Exception, e: print e.message return result def get_all(self,sql,params=()): list=() try: self.connect() self.cursor.execute(sql,params) list=self.cursor.fetchall() self.close() except Exception,e: print e.message return list def insert(self,sql,params=()): return self.__edit(sql,params) def update(self, sql, params=()): return self.__edit(sql, params) def delete(self, sql, params=()): return self.__edit(sql, params) def __edit(self,sql,params): count=0 try: self.connect() count=self.cursor.execute(sql,params) self.conn.commit() self.close() except Exception,e: print e.message return count

實例:用戶登錄

創建用戶表userinfos

  • 表結構如下
    • id
    • uname
    • upwd
    • isdelete
  • 注意:需要對密碼進行加密

推薦閱讀:

Sqli labs系列-less-11&12 post注入篇
SQL筆記
什麼是最好的oracle sql 開發工具?

TAG:MySQL | SQL | 資料庫 |