插入操作是數據庫中最常用的操作之一,也是最基礎的操作,在實際的應用開發中很少會有不涉及插入操作的情況。在數據表中插入數據可以使用insert into語句,而在插入多條數據時,就需要使用insert into多條數據的語法了。
一、insert多條數據
當需要插入多條數據時,可以使用insert into語句加上多個value值,其中每個value值表示一條記錄。
INSERT INTO 表名 (列1, 列2, 列3, ...) VALUES (值1, 值2, 值3, ...), (值1, 值2, 值3, ...), (值1, 值2, 值3, ...), ...
例如,插入一個學生表,其中包含學生的姓名、年齡、性別和班級信息:
INSERT INTO student (name, age, sex, class_id) VALUES ('張三', 18, '男', 1), ('李四', 19, '女', 2), ('王五', 20, '男', 3), ('趙六', 21, '女', 4), ('錢七', 22, '男', 5);
上述SQL命令中,插入了5條學生記錄。
二、insert into多條記錄
在實際應用中,當需要一次性把多條記錄插入到數據庫表中時,insert into多條記錄是非常實用的方法,它可以大幅提升插入數據的效率。同時,insert into語法還可以避免因為插入多條記錄帶來的連接數據庫多次的額外負擔。
使用insert into多條記錄的語法如下:
INSERT INTO 表名 (列1, 列2, 列3, ...) SELECT 值1, 值2, 值3, ... UNION ALL SELECT 值1, 值2, 值3, ... UNION ALL SELECT 值1, 值2, 值3, ... ... UNION ALL SELECT 值1, 值2, 值3, ...;
例如,插入一個學生成績表,其中包含學生的姓名、學科、成績:
INSERT INTO score (name, subject, score) SELECT '張三', '數學', 80 UNION ALL SELECT '張三', '語文', 90 UNION ALL SELECT '李四', '數學', 70 UNION ALL SELECT '李四', '語文', 85 UNION ALL SELECT '王五', '數學', 75 UNION ALL SELECT '王五', '語文', 95 UNION ALL SELECT '趙六', '數學', 85 UNION ALL SELECT '趙六', '語文', 80 UNION ALL SELECT '錢七', '數學', 90 UNION ALL SELECT '錢七', '語文', 88;
上述SQL命令中,插入了10條學生成績記錄。
三、insert into條件
當需要插入的記錄需要滿足某些條件時,可以使用insert into和select語句聯合使用,如下所示:
INSERT INTO 表名 (列1, 列2, 列3, ...) SELECT 值1, 值2, 值3, ... FROM 表名 WHERE 條件;
其中,WHERE子句是可選的,如果沒有條件,就直接從SELECT語句中選取數據插入到目標表中。
例如,我們需要從學生成績表中,篩選出數學成績大於80分的記錄,插入到新的表格scorenew中:
INSERT INTO scorenew (name, subject, score) SELECT name, subject, score FROM score WHERE subject = '數學' and score > 80;
上述SQL命令中,插入了3條學生成績記錄到新表格scorenew中。
四、insert數據庫
在實際的應用中,很多時候需要向已有的數據庫中插入數據,這時需要使用insert數據庫相關的命令。在Python中,有一個非常實用的方法是使用pandas庫來實現數據庫的操作。
首先,需要安裝pandas庫,在命令行中執行pip install pandas或者conda install pandas就可以了。
接下來,需要連接數據庫,使用pandas庫的read_sql方法可以方便地從數據庫中讀取數據。
例如,從MySQL數據庫中讀取數據:
import pandas as pd import pymysql # 連接MySQL數據庫 engine = create_engine("mysql+pymysql://username:password@host:port/database") # 讀取數據 df = pd.read_sql("SELECT * FROM table_name", engine) # 插入數據 df.to_sql("table_name", engine, if_exists='append', index=None)
上述代碼中,首先使用create_engine方法連接MySQL數據庫,然後使用read_sql方法讀取數據。將要插入的數據df使用to_sql方法插入到數據庫中,其中if_exists的參數設置為’append’表示追加插入。
五、insert數據庫語句
使用Python中的MySQLdb庫也可以實現insert into數據庫的操作。
首先需要連接MySQL數據庫,然後使用游標(cursor)對象來執行insert語句,如下所示:
import MySQLdb # 鏈接數據庫 conn = MySQLdb.connect(host="localhost", user="root", passwd="password", db="test", charset="utf8") # 獲取游標 cur = conn.cursor() # insert語句 sql = "insert into table_name (name, age, sex) values ('小明', 18, '男')" # 執行insert語句 cur.execute(sql) # 提交事務 conn.commit() # 關閉游標和鏈接 cur.close() conn.close()
上述代碼演示了如何使用Python中的MySQLdb庫來插入數據。
六、insert函數Python
使用Python的insert函數,可以方便地將數據插入到列表中。
具體方法是使用insert函數,指定要插入的位置和值,如下所示:
# 定義一個列表 data = ['apple', 'banana', 'orange'] # 將'pear'插入到第2個位置 data.insert(1, 'pear') # 輸出結果 print(data)
輸出結果為[‘apple’, ‘pear’, ‘banana’, ‘orange’],其中’pear’被插入到第2個位置。
七、小結
本文介紹了使用insert into多條數據的語法、insert into多條記錄的語法、insert into條件、insert數據庫、insert數據庫語句、insert函數Python等內容。插入操作是數據庫常用的基礎操作,掌握insert into多條數據的語法及相關應用,對數據庫的操作是非常有幫助的。
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/199346.html