**​​数据库​​******是按照数据结构来组织、存储和管理数据的建立在计算机存储设备上的仓库。 数据库的连接是不需要掌握的。换句话来说,只要你想做动态页面、数据存储、账号密码验证等,数据库连接都是一个很不错的选择

数据库安装+环境配置

Mysql安装包下载

python+Pycharm+annoconda安装包

python+Pycharm+annoconda安装教程


上面的准备工作完成了,ok,下面我们来进行数据库的连接。

数据库连接,上手零基础_mysql

出师不利,先安装pymysql这个包

数据库连接,上手零基础_java_02

打开安装好的pycharm(python可视化工具),找到Terminal,输入命令pip install pymysql​ ,之后所有的、只要是你需要的包你都可以在这里进行安装。可能你的安装非常慢,那是因为这些包在国外网站,搭梯子(翻墙)当然可行,但是不是所有人都可以翻出去的。话有一种方法就是你需要添加下载的镜像,例如豆瓣镜像下载

pip install pymysql -i https://pypi.douban.com/simple/​ ,其他镜像


下载好了,接下来,下一步,走你~

import pymysql  #  python 连接数据库的包

db=pymysql.connect(host="localhost",user="root",passwd="123456",port=3306)

# TODO 操作游标
cursor=db.cursor()
cursor.execute("select version()") #execute执行SQL语句
data=cursor.fetchall() # fetchall()获取数据
print(data) # 打印数据


# 关闭数据库
db.close()

结果:

(('5.7.37-log',),)

查看数据库版本号,要是你也出现了版本号,那ok,目前你是连接成功的下面进行下一步


首先,在数据库中建立一个数据库。

数据库连接,上手零基础_mysql_03

# TODO                鸟欲高飞,必先展翅
# TODO 向前的人 :Jhon
import pymysql # python 连接数据库的包

# TODO host主机名(127.0.0.1也可以) user:用户名,一般都是root passwd mysql连接的密码
# TODO port 端口号 database 数据库名称
db=pymysql.connect(host="localhost",user="root",passwd="123456",port=3306,database="tswtest")

# TODO 操作游标,获取游标
cursor=db.cursor()

# TODO 创建数据库(SQL语句, 后面Java 连接数据库 执行 增删改查操作 也仅仅是SQL语句的改变)
sql='create table students(id varchar(255) not null,name varchar(255) not null,age int not null)'

cursor.execute(sql)
db.close()

单击右键运行上面代码,你会发现数据库中创建了一个students表,你面有学号id,姓名 name 以及年龄 age三个属性。这时候表明数据库连接完成,可以通过游标王数据库中写入表(table)和属性。 连都连上了,操作还难吗-- -- -- --

数据库连接,上手零基础_java_04


创建表之后还是空的,而且还没有主键,先不管,让我们先来插入点数据玩玩​SQL插入语句 insert**​

insert into students(id,name,age) values(id,user,age);

# TODO                鸟欲高飞,必先展翅
# TODO 向前的人 :Jhon

import pymysql # python 连接数据库的包

id="31910302011"
user="tsw"
age="18"


# TODO host主机名(127.0.0.1也可以) user:用户名,一般都是root passwd mysql连接的密码
# TODO port 端口号 database 数据库名称
db=pymysql.connect(host="localhost",user="root",passwd="123456",port=3306,database="tswtest")

# TODO 操作游标,获取游标
cursor=db.cursor()

# TODO 插入语句
sql="insert into students(id,name,age) values(%s,%s,%s)"


# # TODO 创建数据库(SQL语句, 后面Java 连接数据库 执行 增删改查操作 也仅仅是SQL语句的改变)
# sql='create table students(id varchar(255) not null,name varchar(255) not null,age int not null)'
try: #插入成功 , 执行
cursor.execute(sql,(id,user,age))
db.commit() #对于数据的增删改查都必须要调用 事务提供保证,保证数据的一致性
except: #没插入成功 , 回调 相当于什么都没有发生
db.rollback()

db.close()

下图可以发现数据插入成功,但是如果插入的数据有误应该怎么办呢

下面让我们来看一看

数据库连接,上手零基础_数据_05


数据插入错误需要修改数据怎么办,update出场。我们修改一下学号,18岁的tsw学好错了怎么能行。

update的sql语句

update students set id=“12332133” name="tsw"

import pymysql  # python 连接数据库的包

# TODO host主机名(127.0.0.1也可以) user:用户名,一般都是root passwd mysql连接的密码
# TODO port 端口号 database 数据库名称
db = pymysql.connect(host="localhost", user="root", passwd="123456", port=3306, database="tswtest")

# TODO 操作游标,获取游标
cursor = db.cursor()

# TODO 插入语句
sql = "update students set id=%s name=%s"

try: # 插入成功 , 执行
cursor.execute(sql, ("1234567890", "tsw"))
db.commit() # 对于数据的增删改查都必须要调用 事务提供保证,保证数据的一致性
except: # 没插入成功 , 回调 相当于什么都没有发生
db.rollback()

db.close()

数据库连接,上手零基础_python_06


ok,看了上面的增改,应该了解了,因为时间原因删除就不写了,python最数据库的操作就是对数据库语句的操作,所以只要学好数据库的操作,其他都不是问题

连接数据库==》SQL语句进行操作===》查看数据库数据是否变化====》数据变化,成功操作

# TODO                鸟欲高飞,必先展翅
# TODO 向前的人 :Jhon
import pymysql # python 连接数据库的包


# TODO host主机名(127.0.0.1也可以) user:用户名,一般都是root passwd mysql连接的密码
# TODO port 端口号 database 数据库名称
db = pymysql.connect(host="localhost", user="root", passwd="123456", port=3306, database="tswtest")

# TODO 操作游标,获取游标
cursor = db.cursor()

data={
"id":246810,
"name":"牛人陶",
"age":19
}

table="students"
keys=",".join(data.keys())
values=",".join(["%s"*len(data)]) #这段等价于insert

sql=f"insert into{table}{keys} values({values}) on duplicate key update"
update=",".join([f"{key}=%s".format(key=key) for key in keys])
sql+=update

try: # 插入成功 , 执行
if cursor.execute(sql,tuple(data.values())*2):
print("执行成功")
db.commit() # 对于数据的增删改查都必须要调用 事务提供保证,保证数据的一致性
except: # 没插入成功 , 回调 相当于什么都没有发生
print("执行失败")
db.rollback()

db.close()

这个你们懵不懵,反正我懵了建议收藏慢慢研读,会有很大的提高







注意:

TODO  用法
 TODO 在注释后面,使用会使注释不再是黑白的,而是黄色的,用于标注一些重要而不明显的注释。方便代码调试。不仅仅在python 中适用,在java 、C、C++中都是用,是个很牛的语句