Python?數(shù)據(jù)庫操作SQL基礎(chǔ)
SQL 基礎(chǔ)
SQL 主要分為以下幾類操作:
- 數(shù)據(jù)定義語言(DDL,Data Definition Language):用于定義數(shù)據(jù)庫結(jié)構(gòu)的操作,如創(chuàng)建、修改、刪除表結(jié)構(gòu)等。常用語句包括
CREATE、ALTER、DROP等。 - 數(shù)據(jù)操作語言(DML,Data Manipulation Language):用于操作數(shù)據(jù)庫中的數(shù)據(jù),如插入、更新、刪除數(shù)據(jù)等。常用語句包括
INSERT、UPDATE、DELETE等。 - 數(shù)據(jù)查詢語言(DQL,Data Query Language):用于查詢數(shù)據(jù)庫中的數(shù)據(jù)。常用語句為
SELECT。 - 數(shù)據(jù)控制語言(DCL,Data Control Language):用于控制數(shù)據(jù)庫訪問權(quán)限和事務(wù)處理,如授權(quán)、撤銷權(quán)限等。常用語句包括
GRANT、REVOKE、COMMIT、ROLLBACK等。
接下來,我們將學(xué)習(xí) SQL 的基本語法和操作。
數(shù)據(jù)庫和表的創(chuàng)建
創(chuàng)建一個(gè)數(shù)據(jù)庫:
CREATE DATABASE mydb;
創(chuàng)建一個(gè)表:
CREATE TABLE users (
id INT PRIMARY KEY AUTO_INCREMENT,
name VARCHAR(50) NOT NULL,
age INT NOT NULL,
email VARCHAR(100)
);數(shù)據(jù)的插入、查詢、更新和刪除
插入數(shù)據(jù):
INSERT INTO users (name, age, email) VALUES ('Alice', 30, 'alice@example.com');查詢數(shù)據(jù):
SELECT * FROM users; -- 查詢所有數(shù)據(jù) SELECT * FROM users WHERE age > 25; -- 查詢年齡大于 25 的用戶 SELECT name, email FROM users; -- 只查詢用戶名和電子郵件
排序、分組和聚合:
SELECT * FROM users ORDER BY age DESC; -- 按年齡降序排序 SELECT age, COUNT(*) FROM users GROUP BY age; -- 按年齡分組,統(tǒng)計(jì)每個(gè)年齡段的用戶數(shù)量 SELECT AVG(age) FROM users; -- 計(jì)算平均年齡
更新數(shù)據(jù):
UPDATE users SET age = 31 WHERE name = 'Alice'; -- 將名為 Alice 的用戶年齡更新為 31
刪除數(shù)據(jù):
DELETE FROM users WHERE id = 1; -- 刪除 id 為 1 的用戶
索引、連接和子查詢
創(chuàng)建索引:
CREATE INDEX idx_users_email ON users (email); -- 為 email 列創(chuàng)建索引
連接表(以 INNER JOIN 為例):
-- 假設(shè)有另一個(gè)表 orders,包含 user_id 和 order_date 列 SELECT users.name, orders.order_date FROM users INNER JOIN orders ON users.id = orders.user_id;
子查詢:
SELECT * FROM users WHERE age > (SELECT AVG(age) FROM users); -- 查詢年齡大于平均年齡的用戶
Python 中的數(shù)據(jù)庫操作
為了在 Python 中操作數(shù)據(jù)庫,我們需要使用相應(yīng)的數(shù)據(jù)庫適配器。以 MySQL 為例,我們可以使用 mysql-connector-python 庫。首先,安裝該庫:
pip install mysql-connector-python
然后,你可以使用以下代碼連接到 MySQL 數(shù)據(jù)庫并執(zhí)行 SQL 語句:
import mysql.connector
# 連接數(shù)據(jù)庫
cnx = mysql.connector.connect(
host='localhost',
user='your_username',
password='your_password',
database='mydb'
)
# 創(chuàng)建游標(biāo)
cursor = cnx.cursor()
# 執(zhí)行 SQL 語句
cursor.execute('SELECT * FROM users')
# 獲取查詢結(jié)果
result = cursor.fetchall()
for row in result:
print(row)
# 關(guān)閉游標(biāo)和連接
cursor.close()
cnx.close()以上就是 Python 數(shù)據(jù)庫操作及 SQL 基礎(chǔ)的相關(guān)內(nèi)容。為了更好地學(xué)習(xí)和理解這些知識點(diǎn),建議你在實(shí)際項(xiàng)目中親自動手操作,逐漸積累經(jīng)驗(yàn)
更多關(guān)于Python操作SQL的資料請關(guān)注腳本之家其它相關(guān)文章!
相關(guān)文章
python進(jìn)階collections標(biāo)準(zhǔn)庫使用示例詳解
這篇文章主要為大家介紹了python進(jìn)階collections標(biāo)準(zhǔn)庫使用示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-11-11
python copy模塊中的函數(shù)實(shí)例用法
在本篇內(nèi)容里小編給大家整理了關(guān)于python copy模塊的基礎(chǔ)知識點(diǎn)及實(shí)例用法,有需要的朋友們可以跟著學(xué)習(xí)下。2021-09-09
Python基于字典實(shí)現(xiàn)switch case函數(shù)調(diào)用
這篇文章主要介紹了Python基于字典實(shí)現(xiàn)switch case函數(shù)調(diào)用,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-07-07
Python?字符串使用多個(gè)分隔符分割成列表的2種方法
本文主要介紹了Python?字符串使用多個(gè)分隔符分割成列表,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2023-04-04
keras 讀取多標(biāo)簽圖像數(shù)據(jù)方式
這篇文章主要介紹了keras 讀取多標(biāo)簽圖像數(shù)據(jù)方式,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-06-06
基于SQLAlchemy實(shí)現(xiàn)操作MySQL并執(zhí)行原生sql語句
這篇文章主要介紹了基于SQLAlchemy實(shí)現(xiàn)操作MySQL并執(zhí)行原生sql語句,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-06-06
PyTorch零基礎(chǔ)入門之構(gòu)建模型基礎(chǔ)
PyTorch是一個(gè)開源的Python機(jī)器學(xué)習(xí)庫,基于Torch,用于自然語言處理等應(yīng)用程序,它是一個(gè)可續(xù)計(jì)算包,提供兩個(gè)高級功能:1、具有強(qiáng)大的GPU加速的張量計(jì)算(如NumPy)。2、包含自動求導(dǎo)系統(tǒng)的深度神經(jīng)網(wǎng)絡(luò)2021-10-10

