Python程式設計入門學習筆記(六)
阿新 • • 發佈:2018-12-25
## Python第三課 ### 推薦一個python資料結構視覺化工具 http://www.pythontutor.com/ ### 課表 - Mysql資料庫的基本操作 - 用python操作資料庫 - 編寫python爬蟲並儲存到資料庫 ### 資料庫 我們平時說的資料庫,指的是資料庫管理系統 ### Mysql資料庫 MariaDB:MariaDB的目的是完全相容MySQL,包括API和命令列,使之能輕鬆成為MySQL的代替品 ### 關係型資料庫 另外一種型別的資料庫是:非關係型資料庫。比較流行的是:Mongodb,redis ```python dict = { 'a' = 100, 'b' = 200 } ``` json格式 資料交換語言 ```python import json with open('K:/Code/jupyter-notebook/Python Study/test.json') as f: # json.load(f) print(f.readlines()) ``` ["{'a' : 100,'b' : 200,'c' : 300}"] ```python #錯誤 data_1 = "{'a': 1,'b': 2,'c': 3}" #正確,單引號在外 data_2 = '{"a": 1,"b": 2,"b": 3}' j_data = json.loads(data_2) type(j_data) with open('K:/Code/jupyter-notebook/Python Study/test.json', 'r') as f: json.load(f) print(j_data) ``` {'a': 1, 'b': 3} ### MySQL資料庫基本操作 ```python # 連結資料庫 mysql -u root -p # u 是使用者名稱 p 是需要用密碼登入 # 檢視資料庫 show databases; # 選擇資料庫 use database_name; # 檢視資料庫中的table表 show tables; # 檢視table表的資料結構 desc tables; # 查看錶中的資料 select * from table_name; # 檢視資料並限制數量 select * from table_name limit 10; ``` ### 資料庫管理工具 sequelpro(mac) 連結: http://www.sequelpro.com/ Navicat(Win) #### 命令列操作資料庫 #### 建立資料庫 creat database database_name; #### 刪除資料庫 drop database database_name; #### 指定字符集和校對集,建立資料庫 creat database database_name default charset utf8mb4 collate utf8mb4_general_ci; #### 建立表格 create table table_name{ id int(11) unsigned not null default null auto_increment, name varchar(80) not null, primary key('id') }; #### 插入資料 insert into column_name ('id','name') values(1,'value_name'); #### 修改資料 update column_name set name = 'value_name2'; where name = 'value_name1'; #### 刪除資料 delete from column where id = 6; #### mysql資料型別: http://www.runoob.com/mysql/mysql-data-types.html ### 使用Python操作資料庫 #### python安裝第三方庫 1、pip : 舉例:pip install pymysql 2、conda : 舉例:conda install pymysql #### python安裝MySQL資料庫支援 pip install MySQL-python pip install pymysql ```python import pymysql ``` ```python DATABASE = { 'host': 'localhost', #如果是遠端資料庫,此處為遠端伺服器的ip地址 'database': 'db_library', 'user' : 'root', 'password': 'toor', # 字符集編碼,防止資料亂碼 'charset' : 'utf8' } # db = pymysql.connect(host = 'localhost',user = 'root',password = 'toor',database = 'goods',charset = 'utf8') # 等價於 # db = pymysql.connect('localhost','root','toor','goods',) # 等價於 db = pymysql.connect(**DATABASE) ``` ### 遊標 ```python cursor = db.cursor() ``` ### 查詢 ```python sql = "SELECT * FROM tb_booktype limit 5" cursor.execute(sql) results = cursor.fetchall() for row in results: print(row) ``` (1, '文學作品', 5, 5.0) (2, '武俠小說', 3, 0.0) (3, '計算機類', 10, 1.0) (4, '微型小說', 6, 1.0) (5, '邏輯推理', 13, 10.0) ### 插入操作 ```python sql = "INSERT INTO tb_booktype(typename) VALUES('英語閱讀');" cursor = db.cursor() cursor.execute(sql) db.commit() ``` ### 刪除操作 ```python sql = "delete from tb_booktype where typename='英語閱讀';" cursor = db.cursor() cursor.execute(sql) db.commit() ``` ### 更新操作 ```python sql = "update tb_booktype set typename='英語文學' where typename='英語閱讀';" cursor = db.cursor() cursor.execute(sql) db.commit() ``` ### 捕捉異常 ```python try: do something except Exception as e: print(e) ```