您好,登錄后才能下訂單哦!
下面講講關于MySQL與pymysql相關知識,文字的奧妙在于貼近主題相關。所以,閑話就不談了,我們直接看下文吧,相信看完MySQL與pymysql相關知識這篇文章你一定會有所受益。
一、概述
MySQL是一種關聯數據庫管理系統,關聯數據庫將數據保存在不同的表中。Python操作MySQL主要使用pymsql模塊和ORM框架 SQLAchemy。
二、MySQL安裝
MySQL官方下載地址:點這里
1、下載 MySQL Community Server 5.7.23 2、解壓 解壓至D:\mysql-5.7.23-winx64目錄中 3、初始化(默認不給root用戶設置密碼) D:\>cd mysql-5.7.23-winx64 D:\mysql-5.7.23-winx64>cd bin D:\mysql-5.7.23-winx64\bin>mysqld --initialize-insecure 4、啟動服務 D:\mysql-5.7.23-winx64\bin>mysqld.exe 5、客戶端連接云服務器端 d:\mysql-5.7.23-winx64\bin>mysql.exe -u root -p Enter password: Welcome to the MySQL monitor. Commands end with ; or \g. Your MySQL connection id is 2 Server version: 5.7.23 MySQL Community Server (GPL) Copyright (c) 2000, 2018, Oracle and/or its affiliates. All rights reserved. Oracle is a registered trademark of Oracle Corporation and/or its affiliates. Other names may be trademarks of their respective owners. Type 'help;' or '\h' for help. Type '\c' to clear the current input statement. mysql> 6、添加環境變量 【右鍵此電腦】--》【屬性】--》【高級系統設置】--》【高級】--》【環境變量】--》【在第二個內容框中找到 變量名為Path 的一行,雙擊】 --> 【新建】-->【將MySQL的bin目錄路徑復制進去】 7、注冊windows服務 D:\mysql-5.7.23-winx64\bin>mysqld.exe --install Service successfully installed. 如想移除服務可跟參數--remove 8、使用net管理mysql服務 # 啟動MySQL服務 net start mysql # 關閉MySQL服務 net stop mysql
安裝: yum install mariadb-server -y yum install mariadb -y 服務端啟動 systemctl start mariadb-server
三、數據庫基礎知識
1、顯示數據庫 mysql> SHOW DATABASES; +--------------------+ | Database | +--------------------+ | information_schema | | mysql | | performance_schema | | sys | +--------------------+ 4 rows in set (0.00 sec) 2、用戶管理 如果你需要添加 MySQL 用戶,你只需要在 mysql 數據庫中的 user 表添加新用戶即可。 創建用戶 create user '用戶名'@'IP地址' identified by '密碼'; 刪除用戶 drop user '用戶名'@'IP地址'; 修改用戶 rename user '用戶名'@'IP地址'; to '新用戶名'@'IP地址';; 修改密碼 set password for '用戶名'@'IP地址' = Password('新密碼') 重載:在注意需要執行 FLUSH PRIVILEGES 語句。 這個命令執行后會重新載入授權表。 FLUSH PRIVILEGES 用戶名@IP地址 表示用戶只能在該IP下才能訪問 用戶名@192.168.1.% 表示用戶只能在該IP段下才能訪問(通配符%表示任意) 用戶名@% 表示用戶可以再任意IP下訪問(默認IP地址為%) 3、授權管理 授權jym用戶用于所有數據庫的所有權限 grant all privileges on *.* to 'jym'@'192.168.%.%'; 查看權限 show grants for 'jym'@'192.168.%.%'; 權限列表 all privileges :除grant外的所有權限 select :僅查權限 select,insert :查和插入權限 ... 對于目標數據庫 數據庫名.* 數據庫中的所有 數據庫名.表 指定數據庫中的某張表 數據庫名.存儲過程 指定數據庫中的存儲過程 *.* 所有數據庫
1、創建數據庫 mysql> CREATE DATABASE pydb; 2、刪除數據庫 mysql> DROP DATABASE pydb; 3、使用數據庫 mysql> use pydb; 4、創建表 mysql> CREATE TABLE IF NOT EXISTS `py_tbl`( -> `py_id` INT UNSIGNED AUTO_INCREMENT, -> `py_title` VARCHAR(100) NOT NULL, -> `py_author` VARCHAR(40) NOT NULL, -> `submission_date` DATE, -> PRIMARY KEY ( `py_id` ) -> )ENGINE=InnoDB DEFAULT CHARSET=utf8; Query OK, 0 rows affected (0.02 sec) 解析: 1.null表示空,非字符串,not null表示不可空。 2.AUTO_INCREMENT定義列為自增的屬性,一般用于主鍵,數值會自動加1。 3.PRIMARY KEY關鍵字用于定義列為主鍵。主鍵是一種特殊的唯一索引,不允許有空值,如果主鍵使用單個列,則它的值必須唯一,如果是多列,則其組合必須唯一。 4.ENGINE 設置存儲引擎,CHARSET 設置編碼。 5、刪除表 mysql> DROP TABLE py_tb1; 6、增 mysql> CREATE TABLE py_tb1(nid INT,name VARCHAR(20),password VARCHAR(64)); mysql> INSERT INTO py_tb1(nid,name,password) VALUES(1,'aaa','123'); mysql> INSERT INTO py_tb1(nid,name,password) VALUES(2,'bbb','123'); 7、查 mysql> SELECT * FROM py_tb1; +------+------+----------+ | nid | name | password | +------+------+----------+ | 1 | aaa | 123 | | 2 | bbb | 123 | +------+------+----------+ 2 rows in set (0.00 sec) 8、刪 mysql> delete from py_tb1 where nid=2 and name='bbb'; 9、改 mysql> update py_tb1 set name='newaaa' where nid=1;
四、pymysql
pymysql是python中操作mysql的模塊。
pip3 install pymysql
import pymysql # 創建連接 conn = pymysql.connect(host='127.0.0.1', port=3306, user='root', passwd='', db='pydb') # 創建游標 cursor = conn.cursor() # 執行SQL,并返回受影響行數 ret = cursor.execute("INSERT INTO py_tbl (py_title, py_author, submission_date) VALUES ('python', 'admin', NOW());") # 提交,不然無法保存新建或者修改的數據 conn.commit() # 關閉游標 cursor.close() # 關閉連接 conn.close()
import pymysql.cursors # 創建連接 conn = pymysql.connect(host='127.0.0.1', port=3306, user='root', passwd='', db='pydb') # 創建游標 cursor = conn.cursor() sql = "SELECT * FROM py_tbl;" # 執行SQL cursor.execute(sql) # 查詢數據庫單條數據 #ret = cursor.fetchone() #print(ret) # 查詢數據庫多條數據 ret = cursor.fetchall() for data in ret: print(data) # 關閉數據連接 conn.close()
查詢結果
(1, 'MySQL', 'root', datetime.date(2018, 8, 3)) (2, 'python', 'admin', datetime.date(2018, 8, 3))
cursor():創建數據庫游標。 execute():執行SQL語句。 commit():將數據庫的操作真正的提交到數據。 fetchone() :查詢單條數據。 fetchall() :查詢多條數據。close() :關閉數據連接。
對于以上MySQL與pymysql相關知識,大家還有什么不明白的地方嗎?或者想要了解更多相關,可以繼續關注我們的行業資訊板塊。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。