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