一IDE 可視化工具mysql
二 數據庫備份sql
三pymysql的使用數據庫
一IDE 可視化工具服務器
生產環境仍是推薦使用mysql命令行,但爲了方便咱們測試,能夠使用IDE工具ide
下載連接:https://pan.baidu.com/s/1bpo5mqj工具
掌握: #1. 測試+連接數據庫 #2. 新建庫 #3. 新建表,新增字段+類型+約束 #4. 設計表:外鍵 #5. 新建查詢 #6. 備份庫/表 #注意: 批量加註釋:ctrl+?鍵 批量去註釋:ctrl+shift+?鍵
二數據庫備份測試
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()