python增删改查mysql_python之mysql的增删改查
一、数据库基础
表 table:数据是保存在表内,保存在一个表内的数据,应该具有相同的数据格式
行:行用于记录数据
记录:行内的数据
列:列用于规定数据格式
字段:数据的某个列
主键:唯一地标识表中的某一条记录,不能空,不能重复
二、数据库的数据类型
1、数字类型
整数: tinyint、smallint、mediumint、int、bigint
浮点数: float、double、real、decimal
日期和时间: date、time、datetime、timestamp、year
2、字符串类型
字符串: char、varchar
文本: tinytext、text、mediumtext、longtext
3、二进制
(可用来存储图片、音乐等): tinyblob、blob、mediumblob、longblob
三、Python之MySQL数据库操作
1、连接myaql创建新的数据库
import pymysql
# 打开数据库连接(ip/端口/数据库用户名/登录密码/数据库名)
conn = pymysql.connect(host='localhost',port=3306,user='root',passwd='123456')
# 使用 cursor() 方法创建一个游标对象 cursor
cursor = conn.cursor()
# 编写sql语句创建数据库
sql1 = 'CREATE DATABASE test1 DEFAULT CHARACTER SET utf8'
# 执行sql语句
cursor.execute(sql1)
conn.close()
2、创建表
import pymysql
# 打开数据库连接(ip/端口/数据库用户名/登录密码/数据库名)
conn = pymysql.connect(host='localhost',port=3306,user='root',passwd='123456',db = 'test1')
# 使用 cursor() 方法创建一个游标对象 cursor
cursor = conn.cursor()
# 编写sql语句创建表test_student_table
sql2 = 'CREATE TABLE IF NOT EXISTS test_student_table (id VARCHAR(255) NOT NULL,name VARCHAR(255) NOT NULL,age VARCHAR(255) NOT NULL,PRIMARY KEY (id))'
# 执行sql语句
cursor.execute(sql2)
conn.close()
3、往表中插入数据
import pymysql
def get_conn():
conn = pymysql.connect(host='localhost',port=3306,user='root',passwd='123456',db='test1') # db:表示数据库名称
return conn
def insert(sql):
conn = get_conn()
cur = conn.cursor()
result = cur.execute(sql)
print(result)
# commit方法才可以实现数据的插入,是真正将语句提交到数据库执行的方法。
conn.commit()
cur.close()
conn.close()
if __name__ == '__main__':
sql = 'INSERT INTO test_student_table VALUES(1,\'zhang\',12);''
insert(sql)
sql占位符形式实现:
import pymysql
def get_conn():
conn = pymysql.connect(host='localhost', port=3306, user='root', passwd='123456', db='test1')
return conn
def insert(sql, args):
conn = get_conn()
cur = conn.cursor()
result = cur.execute(sql, args)
print(result)
conn.commit()
cur.close()
conn.close()
if __name__ == '__main__':
sql = 'INSERT INTO test_student_table VALUES(%s,%s,%s);'
insert(sql, (2, 'wang', 13))
下面代码均以占位符的形式实现sql语句。
插入多条语句实现:
import pymysql
def get_conn():
conn = pymysql.connect(host='localhost', port=3306, user='root', passwd='123456', db='test1')
return conn
def insert_many(sql, args):
conn = get_conn()
cur = conn.cursor()
result = cur.executemany(query=sql, args=args)
print(result)
conn.commit()
cur.close()
conn.close()
if __name__ == '__main__':
sql = 'insert into test_student_table VALUES (%s,%s,%s)'
args = [(3, 'li', 11), (4, 'sun', 12), (5, 'zhao', 13)]
insert_many(sql=sql, args=args)
4、Python之更新操作
import pymysql
def get_conn():
conn = pymysql.connect(host='localhost',port=3306,user='root',passwd='root',db='test1') # db:表示数据库名称
return conn
def update(sql,args):
conn = get_conn()
cur = conn.cursor()
result = cur.execute(sql,args)
print(result)
conn.commit()
cur.close()
conn.close()
if __name__ == '__main__':
sql = 'UPDATE test_student_table SET NAME=%s WHERE id = %s;'
args = ('zhangsan', 1)
update(sql, args)
5、Python之删除操作
import pymysql
def get_conn():
conn = pymysql.connect(host='localhost',port=3306,user='root',passwd='root',db='test1') # db:表示数据库名称
return conn
def delete(sql,args):
conn = get_conn()
cur = conn.cursor()
result = cur.execute(sql,args)
print(result)
conn.commit()
cur.close()
conn.close()
if __name__ == '__main__':
sql = 'DELETE FROM test_student_table WHERE id = %s;'
args = (1,) # 单个元素的tuple写法
delete(sql,args)
6、Python之查询操作
import pymysql
def get_conn():
conn = pymysql.connect(host='localhost', port=3306, user='root', passwd='root', db='test1')
return conn
def query(sql,args):
conn = get_conn()
cur = conn.cursor()
cur.execute(sql,args)
results = cur.fetchall()
print(type(results)) # 返回 tuple元组类型
for row in results:
print(row)
id = row[0]
name = row[1]
age = row[2]
print('id: ' + str(id) + ' name: ' + name + ' age: ' + str(age))
pass
conn.commit()
cur.close()
conn.close()
if __name__ == '__main__':
sql = 'SELECT * FROM test_student_table;'
query(sql,None)
输出:
(2, 'wang', 13)
id: 2 name: wang age: 13
(3, 'li', 11)
id: 3 name: li age: 11
(4, 'sun', 12)
id: 4 name: sun age: 12
(5, 'zhao', 13)
id: 5 name: zhao age: 13
四、总结
1、创建数据库
create database 数据库名 charset=utf8;
2、删除数据库
drop database 数据库名;
3、切换数据库
use 数据库名;
4、查看当前选择的数据库
select database();
5、查看目前所有的数据库
show databases;
五、表操作
1、查看当前数据库中所有表
show tables;
2、创建表
create table 表名(列及类型);
列名:id
类型:int unsigned
约束1:not null
约束2:primary key
约束3:auto_increment
列的格式:列的名称 类型 约束
例如:
create table hero(h_id int auto_increment primary key,h_name varchar(10) not null);
3、修改表
语法:
alter table 表名 add(添加)|modify(修改)|drop(删除) 列名 类型;
添加列:h_skill 为字符类型
alter table hero add h_skill varchar(10);
修改列:h_skill修改本属性不能为空
alter table hero modify h_skill varchar(10) not null;
4、删除表
drop table 表名;
5、查看表结构
desc 表名;
6、更改表名称
rename table 原表名 to 新表名;
7、查看边的创建语句
show create table 表名
六、数据操作
1、增加数据
insert into 表名(列1,...) values(值1,...);
例如:
insert into hero(h_id,h_name,h_skill) values(1,'韩信','裂天爆斩');
主键列是自动增长,但是在全列插入时需要占位,通常使用0,插入成功后以实际数据为准
2、简单查询数据
select * from 表名
3、修改数据
update 表名 set 列1=值1,... where 条件
4、删除数据
delete from 表名 where 条件
python增删改查mysql_python之mysql的增删改查相关推荐
- python增删改查mysql_Python操作MySQL(增删改查)
Python操作MySQL数据库方法.方式总结 import pandas as pd import pymysql import sqlalchemy from sqlalchemy import ...
- python操作Oracle、PostgreSQL,MySql数据库增删改查
python操作Oracle.PostgreSQL,MySql数据库增删改查,工作中可运行案例,直接上代码,供大家参考. # _*_ coding:UTF-8 _*_#import ServerCon ...
- php对mysql进行增删改查,php对mysql进行增删改查
php对mysql进行增删改查 /* 用户名 : MYSQL_USER 密 码 : MYSQL_PASS 域 名 : MYSQL_HOST 端 口 : MYSQL_PORT 数据库名 : MYSQL_ ...
- mfc连接mysql增删改查_java实现mysql数据库增删改查
1.连接数据库: import java.sql.Connection; import java.sql.DriverManager; public class DBConnection { stat ...
- nodejs mysql 增删改查_nodejs操作mysql实现增删改查的实例
首先需要安装mysql模块:npm install mysql --save 然后创建user数据表: 接着使用nodejs对数据库进行增删改查: .[活动]2017 CSDN博客专栏评选 [评论送书 ...
- mysql自增id原理_《MySQL自增ID》告诉你不为人知的“秘密”......
原标题:<MySQL自增ID>告诉你不为人知的"秘密"...... 作者:Sunshine Koo 1.概述 " MySQL数据库是最常使用的数据库之一,我们 ...
- java连接mysql数据库增删改查_java连接mysql数据库增删改查操作记录
1. 连接数据库.得到数据库连接变量 注意连接数据库的时候 (1)打开DB Browser 新建一个Database Driver,注意加入Driver JARs的时候加入的包,我的是mysql-co ...
- python在线包安装mysql_python安装mysql的依赖包mysql-python操作
一般情况下,使用pip命令安装即可: [root@dthost27 ~]# pip install mysql-python 但是在实际工作环境中,往往会安装失败,这是因为系统缺少mysql的相关依赖 ...
- sqlalchemy 对 mysql 进行增删改查
我其实还是喜欢原生的 sql 语句,sqlalchemy是对pymysql的封装,用的时候经常出各种错误.但是orm操作较简单,可以实现外键的关联操作. 视频 https://www.bilibili ...
最新文章
- 判断一个string是否可以为数字
- android学习从模仿开始 —— 模仿UI 导航帖
- 中兴执行副总裁熊辉回母校谈目标:相信总有路可走
- java语言模拟_Java语言模拟操作系统.doc
- 程序员面试金典 - 面试题 01.05. 一次编辑(编辑距离,DP)
- android8 通知呼吸灯_正在消失的功能,为什么越来越多的手机没有呼吸灯?你知道原因吗...
- OpenPose 升级,CMU提出首个单网络全人体姿态估计网络,速度大幅提高
- Net窗体程序设计总结
- 使用hessian+protocol buffer+easyUI综合案例--登陆
- html标签--使用
- 游戏开发中一些常用的数学知识
- 大厂工作3年,我决定把大学到现在7年所有珍藏的书籍都分享一遍
- 全能扫描王(一款识别率超高的OCR识别APP)
- 离散作业--求左陪集
- Win11系统一些功能修改并不令人满意,盘点不尽人意之处
- 如何删除【我的电脑】之【设备和驱动器】中的 爱奇艺、百度网盘或者WPS网盘图标
- 英特尔Haswell处理器已出货 预计6月推出
- oracle avg() 绝对平均值
- 为什么outlook不能改成HTML格式,如何解决Outlook 2016中的HTML格式问题
- 在BIOS中设置U盘启动
热门文章
- AI工程师应聘要具备哪些能力?
- 解决ECharts中使用tooltip时鼠标移入抖动问题
- 传统语音识别介绍【五】—— 单音素和三音素
- 创新物联网方案引导生活更美好
- 计算机网络丢包排查,ping命令图文教程,电脑测试网络丢包延迟,检测网络故障通不通...
- 小米OJ12月常规赛“数数字”题目详解与SG函数SG定理个人理解
- PyTorch随机生成一个布尔型张量
- 女性吃什么食物会导致不孕?
- 阿里云部署vmware报错
- 飞桨火力全开,重磅上线3D模型:PointNet++、PointRCNN!