pymysql

一IDE 可視化工具mysql

二 數據庫備份sql

三pymysql的使用數據庫

一IDE 可視化工具服務器

生產環境仍是推薦使用mysql命令行,但爲了方便咱們測試,能夠使用IDE工具ide

下載連接:https://pan.baidu.com/s/1bpo5mqj工具

掌握:
#1. 測試+連接數據庫
#2. 新建庫
#3. 新建表,新增字段+類型+約束
#4. 設計表:外鍵
#5. 新建查詢
#6. 備份庫/表

#注意:
批量加註釋:ctrl+?鍵
批量去註釋:ctrl+shift+?鍵
View Code

二數據庫備份測試

1.物理備份:直接複製數據庫文件,適用於大型數據庫環境,但不能恢復到異構系統中。fetch

2.邏輯備份:備份的是建表、建庫、出入等操做所執行的SQL 語句,適用於中小型數據庫,效率相對比較低。spa

3.導出表:將表導入到文本文件中。命令行

使用mysqldump實現邏輯備份:

 mysqldump -h 服務器 -u用戶名 -p密碼 數據庫名 > 備份文件.sql
# 備份單個數據庫:
# mysqldump -uroot -p123456. day47 > D:\47.sql
# 備份多個數據庫
# mysqldump -uroot -p123456. --databases day47 db43 db42 > D:\47_43_42.sql
#備份全部數據庫
# mysqldump -uroot -p123456. --all-databases > D:\all.sql

# 把數據引入數據庫內
# (方法一)mysql -uroot -p123456. day47< D:\47.sql
# (方法二)use database day47
SET SQL_LOG_BIN=0;#中止使用日誌文件
# source 須要導入數據庫的地址
#導入不少數據庫 # mysql -uroot -p123456. < D:\47_43_42.sql
 注:這些都是在終端的界面上使用

數據庫裏面的表操做:

# 關於表的操做(把表導出來須要配置下:在 secure_file_priv='E:\\')
# 導出表
# select * from  user into outfile'E:\userinfo.txi' fields terminated by ',' lines terminated by '\n';
# 導入表
load data infile '文件的地址'
into table school.student1
fields terminated by ','#定義字段分隔符
optionally enclosed by '"'#定義字符串使用什麼符號括起來
lines terminated by '\n'; #定義換行符

三 pymysql 的使用

1 基本使用

#1 基本使用
# import pymysql
# conn=pymysql.connect(host='localhost',user='root',password='',database='day47')#連接導數據庫
# cursor=conn.cursor() #拿到遊標,即mysql >
#
# sql='select * from user where id>1;'
# rows=cursor.execute(sql) #拿到受影響的行數
# print('%s rows in set (0.00 sec)' %rows)
#
# cursor.close()
# conn.close()

2 小練習(判斷是否登陸成功)

 

# import pymysql
# user=input('用戶名>>: ').strip()
# pwd=input('密碼>>: ').strip()
#
# #連接,拿到遊標
# conn=pymysql.connect(host='localhost',user='root',password='',database='day47')
# cursor=conn.cursor() #拿到遊標,即mysql >
#
# #執行sql
# sql='select * from user where user="%s" and password="%s";' %(user,pwd)
# print(sql)
# rows=cursor.execute(sql) #拿到受影響的行數
# # print('%s rows in set (0.00 sec)' %rows)
# cursor.close()
# conn.close()
#
# if rows:
#     print('登陸成功')
# else:
#     print('登陸失敗')

3 sql 注入及解決方案

#sql注入
# import pymysql
# user=input('用戶名>>: ').strip()
# pwd=input('密碼>>: ').strip()
# conn=pymysql.connect(host='localhost',user='root',password='',database='day47')
# cursor=conn.cursor()
#
# sql='select * from user where user="%s" and password="%s";' %(user,pwd)
# print(sql)
# rows=cursor.execute(sql)
# cursor.close()
# conn.close()
# if rows:
#     print('登陸成功')
# else:
#     print('登陸失敗')
#解決sql注入
# import pymysql
# user=input('用戶名>>: ').strip()
# pwd=input('密碼>>: ').strip()
# conn=pymysql.connect(host='localhost',user='root',password='',database='day47')
# cursor=conn.cursor()
#
# sql='select * from user where user=%s and password=%s;'
# rows=cursor.execute(sql,[user,pwd])
# print(rows)
# cursor.close()
# conn.close()
# if rows:
#     print('登陸成功')
# else:
#     print('登陸失敗')

4 增刪改語句

# import pymysql
# conn=pymysql.connect(host='localhost',user='root',password='',database='day47',charset='utf8')#設置charset後能夠輸入中文
# cursor=conn.cursor()
# sql='insert into user(user,password) values(%s,%s);'
# rows=cursor.execute(sql,('alex','123'))#插入單條數據
# rows=cursor.executemany(sql,[('yuanhao','123'),('laowu','123'),('kgf','12323')])#插入多個數據
# print('%s row in set (0.00 sec)' %rows)
# conn.commit()#這個是把數據從內存放到數據庫裏
# cursor.close()
# conn.close()

5查數據

# 查:fetchone,fetchmany,fetchall

# import pymysql
# conn=pymysql.connect(host='localhost',user='root',password='',database='day47',charset='utf8')
# cursor=conn.cursor()
# sql='select * from user;'
# rows=cursor.execute(sql)
#查單條
# res1=cursor.fetchone()
# res2=cursor.fetchone()
# res3=cursor.fetchone()
# print(res1[0])
# print(res2)
# print(res3)

#查多條
# print(cursor.fetchmany(3))
# print(cursor.fetchone())

#查全部
# print(cursor.fetchall())
# print(cursor.fetchone())

#光標的移動
# print(cursor.fetchall())
# cursor.scroll(1,mode='absolute')#光標移動絕對位置
# print(cursor.fetchone())
# cursor.scroll(3,mode='absolute')
# print(cursor.fetchone())

# print(cursor.fetchone())
# print(cursor.fetchone())
# cursor.scroll(-2,mode='relative')#光標移動相對位置
# print(cursor.fetchone())

# print('%s row in set (0.00 sec)' %rows)
# cursor.close()
# conn.close()

6 最後一個id號

import pymysql
conn=pymysql.connect(host='localhost',user='root',password='',database='day47',charset='utf8')
cursor=conn.cursor()
sql='insert into user(user,password) values(%s,%s);'
rows=cursor.execute(sql,('alex','123'))
# rows=cursor.executemany(sql,[('yuanhao','123'),('laowu','123'),('kgf','12323')])
conn.commit()
print(cursor.lastrowid)#查看最後一個的id號
cursor.close()
conn.close()
相關文章
相關標籤/搜索
本站公眾號
   歡迎關注本站公眾號,獲取更多信息