1. 連接數據庫
一般python3可以使用mysql.connector和pymysql來連接mysql數據庫。
這里使用的是pymysql。
- 首先導入pymysql庫
import pymysql
- 然后加載導入的庫
%load_ext sql
- 第一種方式:魔術語句。這種方式的缺點在於沒有顯式的獲取到數據庫的conn
%sql mysql+pymysql://你的數據庫用戶:你的數據庫用戶@localhost/你要使用的數據庫名
- 獲取到conn的數據庫連接方式
conn = pymysql.connect(
host='127.0.0.1',
user='你的數據庫用戶t',
password='你的數據庫用戶',
database='你要使用的數據庫名',
charset="utf8"
)
這樣就獲取到了數據庫的連接了,接下來就可以對數據庫的表進行操作。
2. 對表的一些常用操作
2.1 創建表
%%sql
CREATE TABLE IF NOT EXISTS customers(
cust_id int NOT NULL AUTO_INCREMENT,
cust_name varchar(50) NOT NULL,
cust_email varchar(50) NULL,
cust_city varchar(50) NULL,
cust_country varchar(50) NULL,
PRIMARY KEY (cust_id)
);
2.2 刪除表
%%sql
DROP TABLE customers;
3. 對表中的數據進行操作
3.1 插入操作
3.1.1 插入完整的一行
同時數據直接寫在代碼中
%%sql
INSERT INTO customers
VALUES(NULL,
'Animy',
'000',
'Los Angeles',
'America');
3.1.2 插入一行的一部分
%%sql
INSERT INTO customers(
cust_name,
cust_email,
cust_city,
cust_country)
VALUES(
'Bob',
'001',
'New York',
'America');
3.1.3 插入多行
- 假如是數據包含在代碼中,則可以提交多個單獨insert語句,也可以組合insert語句,VALUES后的參數之間通過逗號連接
%%sql
INSERT INTO customers(
cust_name,
cust_email,
cust_city,
cust_country)
VALUES(
'Bob',
'001',
'New York',
'America'),
(
'Animy',
'000',
'Los Angeles',
'America');
-
如果數據在表格中,要進行批量插入
-
數據量小時,可以像插入多行數據那樣,用insert語句一條條插入
-
數據量大時,可以通過loaddata方法導入
-
load data的詳解可以看
https://blog.csdn.net/longzhoufeng/article/details/112377942
LOAD DATA LOCAL INFILE '文件的絕對路徑/cust_order_test.csv'
REPLACE INTO TABLE customers
FIELDS TERMINATED BY ','
LINES TERMINATED BY '\r\n'
IGNORE 1 LINES
(cust_name,cust_email,cust_city,cust_country);
3.1.4 插入select查詢的結果
假設custnew具有和customer一樣的表結構
%%sql
insert into customers(
cust_name,
cust_email,
cust_city,
cust_country
)select cust_name,
cust_email,
cust_city,
cust_country
from custnew
3.2 查詢操作
%sql select * from customers
3.3 更改操作
%%sql
UPDATE customers SET cust_email = 'xxx@email.com'
WHERE cust_name = 'xxx';
3.4 刪除操作
- 刪除所有行
%sql DELETE FROM customers
這種沒有where子句的update和delete語句很危險,稍不注意,就會錯誤的刪除表中所有行,所以不要省略WHERE子句
- 刪除特定的行
選出cust_id大於1的
%sql DELETE FROM customers WHERE cust_id >= 1;