對mysql中的某個資料庫的表進行新增操作

2021-08-27 13:45:13 字數 3477 閱讀 7265

import pymysql # 匯入對資料庫mysql操作的包

class insertinfo:

'''資料初始化'''

def __init__(self):

# 資料庫的鏈結

self.con = pymysql.connect(host='localhost', user='root', password='mysql',

database='second_hand_cars', port=3306, charset='utf8')

# 操作物件

self.cur = self.con.cursor()

self.flag = 1 # 外面大迴圈標誌位

self.stop = 0 # 內部小迴圈標誌位

# 選單展示

def show_menu(self):

print('*'*50)

print('1:為customer_info新增內容')

print('2:為car_info新增內容')

print('3:顯示所有')

print('4:退出')

# 執行,與選單展示中的數字相對應

def run(self):

while self.flag == 1: # 只要flag = 1 就一直迴圈

self.show_menu()

num = int(input('請輸入操作**'))

if num == 1:

self.insert_customer_info()

elif num == 2:

self.insert_car_info()

elif num == 3:

self.show_all()

elif num == 4:

self.exit_this()

else:

print('輸入有誤')

'''輸入對應的數字,呼叫對應的函式進行執行,在input中進行了強制資料型別轉換,所以可以直接等於數字,而不必要新增引號,如果不轉換,則需要引號,因為從鍵盤獲取到的都是字串型別'''

# 為其中乙個表新增資訊

def insert_customer_info(self):

while self.stop == 0: # stop的初始值為0,只要為0就一直迴圈

a_name = input('請輸入使用者名稱')

a_password = input('請輸入密碼')

a_gender = input('請輸入性別')

a_age = input('請輸入年齡')

a_active = input('請輸入使用者等級')

a_tel = input('請輸入使用者**號碼')

a_email = input('請輸入郵箱')

a_addrs = input('請輸入位址')

'''以上這些要與資料庫中的字段相同,且最好一一對應,方便下面填寫'''

sql = 'insert into customer_info values(%s,%s,%s,%s,%s,%s,%s,%s,%s)' # 將要傳入操作函式cursor()中的對資料庫操作的指令

self.cur.execute(sql, [0, a_name, a_password, a_gender, a_age, a_active, a_tel, a_email, a_addrs]) # 上面的佔位符要與上面的佔位符一一對應,那個0也是佔位符,代表我資料庫的id,這個是自增型別,所以不需要我手動寫入

self.con.commit() # 提交操作

print('新增成功')

'''這裡判斷是否退出新增資訊操作,為方便起見,直接按enter鍵繼續新增,輸入任意字元退出新增操作'''

op = input('輸入任意字元返回上一層')

if op == '':

self.stop = 0

else:

self.stop = 1

'''下同,就不做注釋了'''

# 為另乙個表新增資訊

def insert_car_info(self):

while self.stop == 0:

a_brand = input('請輸入車輛品牌')

a_series = input('請輸入車輛型號')

a_age = input('請輸入車齡')

a_model = input('請輸入車型')

a_mileage = input('請輸入已行駛公里數')

a_displacement = input('請輸入排量')

a_color = input('請輸入車輛顏色')

a_addrs = input('請輸入車牌所在地')

sql = 'insert into car_info values(%s,%s,%s,%s,%s,%s,%s,%s,%s)'

self.cur.execute(sql, [0, a_brand, a_series, a_age, a_model, a_mileage, a_displacement, a_color, a_addrs])

self.con.commit()

print('新增成功')

op = input('輸入任意字元返回上一層')

if op == '':

self.stop = 0

else:

self.stop = 1

# 展示表中的所有資訊

def show_all(self):

op = int(input('請輸入操作:1展示customer_info, 2展示car_info'))

if op == 1:

sql = 'select * from customer_info'

self.cur.execute(sql) # 將指令傳入操作函式cursor()的excute執行

print(self.cur.fetchall()) # 上面引數返回的是乙個數值,代表有幾條資訊,這裡用fetchall將資訊全部展示

elif op == 2:

sql = 'select * from car_info'

self.cur.execute(sql)

print(self.cur.fetchall())

else:

print('輸入有誤')

# 外面的大迴圈退出操作

def exit_this(self):

self.flag = 0

#資料庫關閉操作

def __del__(self):

self.cur.close()

self.con.close()

if __name__ == '__main__':

option = insertinfo() # 建立物件,執行操作

option.run()

程式有點長了,然後執行的操作比較多,就不上圖了,都可以執行,如果有看不懂的或者有更好的建議都可以來找我

mysql5 7遷移某個資料庫

使用root管理員登陸c1伺服器的mysql資料庫 mysql uroot p 查詢c1伺服器cm庫的建庫字符集等資訊 在c2伺服器,登陸root管理員,並按照c1伺服器mysql資料庫字符集建立目標資料庫 檢視mysql資料庫資訊,便於資料匯出 ps ef grep mysql.sock grep...

檢視mysql某個資料庫多少張表以及占用的空間

mysql資料庫占用的空間 表記錄的行數在mysql的 information schema 資料庫。在該庫中有乙個 tables 表,這個表主要字段分別是 table schema 資料庫名 table name 表名 engine 所使用的儲存引擎 tables rows 記錄數 data le...

檢視 MySQL 資料庫中某個表占用的空間大小

開啟mysql的 information schema 資料庫,在該庫中有乙個 tables 表,這個表主要字段分別是 table schema 資料庫名 table name 表名 engine 所使用的儲存引擎 tables rows 記錄數 data length 資料大小 index len...