Python入门篇【连接数据库】

Python【连接数据库】


文章目录


提示:以下是本篇文章正文内容,下面案例可供参考

一、数据库定义

MySQLS是一个中小型的数据库,数据库简单来说数据库就是存储数据的库,通过借助SQL语言按照库->表->数据来进行数据组织并存储,完成对数据的CRUD操作。


二、MySQL安装

网上自行搜索,教程很多,安装简单便捷。


三、基础语法

3.1 特征

  • 大小写不敏感
  • 语句可以单行可以多行,最后以英文分号(;)结束。
  • 支持单行/多行注释

3.2 注释

sql 复制代码
-- 单行注释:--后面要有空格
# 单行注释,空格可有可无,建议加上
/* 多行注释 */

3.3 SQL执行顺序

sql 复制代码
FROM 表名 -> WHERE 条件 -> GROUP BY和聚合函数 -> SELECT查询 ->ORDER BY排序 -> LIMIT限制

四、SQL语言分类

数据库不仅仅是存储数据,还有数据的管理,表的管理,库的管理,账户管理,权限管理等等。

4.1 DDL(数据定义语言)

  • 库/表的创建删除
sql 复制代码
/* 库操作 */
SHOW DATABASES; -- 查看所有数据库
USE codebase;-- 使用数据库
CREATE DATABASE demo CHARSET utf8;-- 创建数据库
DROP DATABASE demo;-- 删除数据库
SELECT DATABASE();-- 查看当前使用的数据库

/* 表操作 */
SHOW TABLES;-- 查看有哪些表,查看钱要先USE数据库。

CREATE TABLE demo1( -- 创建表
id int,
name varchar(255),
score float
);

DROP TABLE demo1; -- 删除表
DROP TABLE  IF EXISTS demo1; -- 如果demo1存在,则删除表

4.2 DML(数据操作语言)

  • 用来对数据库中的表数据进行更新
sql 复制代码
-- 插入数据[单行插入]
INSERT INTO 数据库表名[字段1,字段2,字段3,...] VALUES (1,'张三',48.2);
-- 插入数据[多行插入]
INSERT INTO 数据库表名[字段1,字段2,字段3,...] VALUES (1,'张三',48.2)[,(2,'李四',98.5),(3,'王五',49.6)];
-- 删除数据[数据库操作符:=,>,<,>=,<=,!=]
-- 注意:不加WHERE判断会清空表中所有数据!!!
DELETE FROM 表名 [WHERE 条件判断];
-- 注意:字符串的值要用单引号包裹起来!!!
-- 更新数据
UPDATE 表名 SET 列 = 值 [WHERE 条件判断];

4.2 DQL(数据查询语言)

  • 用来对数据库中的表数据进行查询
sql 复制代码
-- 查询
SELECT *| 字段列表 FROM 表名 [WHERE 条件判断];
-- 分组聚合
-- 注意:GROUP BY中写谁,SELECT后才能写谁!!!
-- 聚合函数:[SUM(),AVG(),MAX(),MIN(),COUNT()]
SELECT 字段|聚合函数 FROM 表名 [WHERE 条件判断] GROUP BY 列;
-- 排序查询
-- ASC升序,DESC降序,默认ASC
SELECT 字段|聚合函数 FROM 表名 [WHERE 条件判断] GROUP BY 列 ORDER BY 字段 [ASC|DESC];
-- 分页查询
-- N表示从第N+1条查询,M表示一页显示几行数据!!!
-- 只写N时,表示从第一条数据开始,一共查询N条数据。
SELECT 字段|聚合函数 FROM 表名 [WHERE 条件判断] GROUP BY 列 ORDER BY 字段 [ASC|DESC] LIMIT N[,M];

五、Python连接数据库

5.1 安装pymysql包

bash 复制代码
pip install pymysql

5.2 创建/查询数据

python 复制代码
# 1.导入pymysql导包
from pymysql import Connection

# 2.获取链接
conn = Connection(
    host="localhost",  # 主机名
    port=3306,  # 端口号
    user="root",  # 账户
    passwd="123456",  # 密码
)
cursor = conn.cursor()  # 3.获取游标对象
conn.select_db("codebase")  # 4.选择数据库
# cursor.execute("CREATE TABLE IF NOT EXISTS code (id int, name varchar(255), code varchar(255))")  # 5.执行数据库语句
cursor.execute("SELECT * FROM demo1")
# 6.获取查询结果
results: tuple = cursor.fetchall()
print(results)
for row in results:
    print(row)
conn.close()  # 6.关闭数据库连接

5.3 添加数据

插入数据或者更新数据时,通过代码确认提交的方式来确认是否执行!!!

python 复制代码
from pymysql import Connection  # 1.导入包

# 2.连接数据库
connection = Connection(
    host="127.0.0.1",
    port=3306,
    user="root",
    passwd="123456",
)

cursor = connection.cursor()  # 3.获取游标对象
connection.select_db("codebase")  # 4.选择数据库
cursor.execute("INSERT INTO demo1 VALUES (6,'张三6',49.5)")  # 5.执行语句
connection.commit() # 5.1 插入数据或者更新数据时,通过代码确认提交的方式来确认是否执行!!!
connection.close()  # 6.关闭数据库

5.4 自动提交commit

可以设置自动提交commit

python 复制代码
# 2.连接数据库
connection = Connection(
    host="127.0.0.1",
    port=3306,
    user="root",
    passwd="123456",
    autocommit=True # 自动提交commit
)
相关推荐
笃行35015 分钟前
数据库性能优化的五处内核改造,KingbaseES 配了四件诊断工具
数据库
非优秀程序员2 小时前
第02章 杭电的英语老师与一台服务器|《互联网产品恩仇录》
数据库·node.js·代码规范
用户956256254297 小时前
跟做:Firecrawl 单页转 Markdown 再丢进沙箱总结
python·api
SelectDB7 小时前
SelectDB 是哪个公司的?是国产数据库吗?一篇讲清飞轮科技与 Apache Doris 的关系
数据库
威哥爱编程7 小时前
模拟面试智能体开发实战 02:回答等半分钟,谁还愿意练?把服务端和流式输出搭起来
python·agent·harmonyos
这个DBA有点耶7 小时前
库内计算推理:一条SQL背后的算子融合,和外挂方案差了几次网络往返
数据库·人工智能·sql
威哥爱编程7 小时前
模拟面试智能体开发实战 01:面试挂了都不知道挂在哪?用 Python 给自己造一个随叫随到的 AI 面试官
python·agent·harmonyos
2601_967980118 小时前
Python行情API量化 02:顺序拉 20 要 2 秒?并发批量把时间压到 0.5 秒
python·api·限流·并发·量化
伞伞悦读8 小时前
【第81期】特征缩放怎么选:标准化、MinMax 与 Robust 的原理、泄漏对照和完整实验
人工智能·python·深度学习·机器学习
新*8 小时前
从一段 WebSocket 代码聊开:bytes 不是 zlib、binaryType 决定一切,15MB 大消息的零拷贝优化
javascript·python·websocket·性能优化·blob·zlib·arraybuffer