在jupyter中連接和使用mysql的一些基本操作


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;


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM