Python 数据库操作SQL基础
SQL 基础
SQL 主要分为以下几类操作:
- 数据定义语言(DDL,Data Definition Language):用于定义数据库结构的操作,如创建、修改、删除表结构等。常用语句包括
CREATE
、ALTER
、DROP
等。 - 数据操作语言(DML,Data Manipulation Language):用于操作数据库中的数据,如插入、更新、删除数据等。常用语句包括
INSERT
、UPDATE
、DELETE
等。 - 数据查询语言(DQL,Data Query Language):用于查询数据库中的数据。常用语句为
SELECT
。 - 数据控制语言(DCL,Data Control Language):用于控制数据库访问权限和事务处理,如授权、撤销权限等。常用语句包括
GRANT
、REVOKE
、COMMIT
、ROLLBACK
等。
接下来,我们将学习 SQL 的基本语法和操作。
数据库和表的创建
创建一个数据库:
CREATE DATABASE mydb;
创建一个表:
CREATE TABLE users ( id INT PRIMARY KEY AUTO_INCREMENT, name VARCHAR(50) NOT NULL, age INT NOT NULL, email VARCHAR(100) );
数据的插入、查询、更新和删除
插入数据:
INSERT INTO users (name, age, email) VALUES ('Alice', 30, 'alice@example.com');
查询数据:
SELECT * FROM users; -- 查询所有数据 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; -- 按年龄分组,统计每个年龄段的用户数量 SELECT AVG(age) FROM users; -- 计算平均年龄
更新数据:
UPDATE users SET age = 31 WHERE name = 'Alice'; -- 将名为 Alice 的用户年龄更新为 31
删除数据:
DELETE FROM users WHERE id = 1; -- 删除 id 为 1 的用户
索引、连接和子查询
创建索引:
CREATE INDEX idx_users_email ON users (email); -- 为 email 列创建索引
连接表(以 INNER JOIN 为例):
-- 假设有另一个表 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 中的数据库操作
为了在 Python 中操作数据库,我们需要使用相应的数据库适配器。以 MySQL 为例,我们可以使用 mysql-connector-python
库。首先,安装该库:
pip install mysql-connector-python
然后,你可以使用以下代码连接到 MySQL 数据库并执行 SQL 语句:
import mysql.connector # 连接数据库 cnx = mysql.connector.connect( host='localhost', user='your_username', password='your_password', database='mydb' ) # 创建游标 cursor = cnx.cursor() # 执行 SQL 语句 cursor.execute('SELECT * FROM users') # 获取查询结果 result = cursor.fetchall() for row in result: print(row) # 关闭游标和连接 cursor.close() cnx.close()
以上就是 Python 数据库操作及 SQL 基础的相关内容。为了更好地学习和理解这些知识点,建议你在实际项目中亲自动手操作,逐渐积累经验
更多关于Python操作SQL的资料请关注脚本之家其它相关文章!
相关文章
Python数据分析之 Pandas Dataframe合并和去重操作
这篇文章主要介绍了Python数据分析之 Pandas Dataframe合并和去重操作,文章基于python的相关资料展开详细的内容介绍,需要的小伙伴可以参考一下2022-05-05详谈在flask中使用jsonify和json.dumps的区别
下面小编就为大家分享一篇详谈在flask中使用jsonify和json.dumps的区别,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧2018-03-03Python 操作mysql数据库查询之fetchone(), fetchmany(), fetchall()用法示例
这篇文章主要介绍了Python 操作mysql数据库查询之fetchone(), fetchmany(), fetchall()用法,结合实例形式分析了Python使用pymysql模块的fetchone(), fetchmany(), fetchall()方法进行mysql数据库查询的操作技巧,需要的朋友可以参考下2019-10-10python+selenium 脚本实现每天自动登记的思路详解
这篇文章主要介绍了python+selenium 脚本实现每天自动登记,本文你给大家分享基本的思路,通过实例代码截图的形式给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下2020-03-03python selenium 对浏览器标签页进行关闭和切换的方法
今天小编就为大家分享一篇python selenium 对浏览器标签页进行关闭和切换的方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧2018-05-05
最新评论