数据库连接,上手零基础

举报
不良使 发表于 2022/04/16 20:10:37 2022/04/16
【摘要】 数据库连接,上手零基础

**数据库******是按照数据结构来组织、存储和管理数据的建立在计算机存储设备上的仓库。 数据库的连接是不需要掌握的。换句话来说,只要你想做动态页面、数据存储、账号密码验证等,数据库连接都是一个很不错的选择
数据库安装+环境配置
Mysql安装包下载
python+Pycharm+annoconda安装包
python+Pycharm+annoconda安装教程


上面的准备工作完成了,ok,下面我们来进行数据库的连接。
在这里插入图片描述
出师不利,先安装pymysql这个包
在这里插入图片描述
打开安装好的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,目前你是连接成功的下面进行下一步


首先,在数据库中建立一个数据库。
在这里插入图片描述

# 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)和属性。 连都连上了,操作还难吗-- -- -- --
在这里插入图片描述


创建表之后还是空的,而且还没有主键,先不管,让我们先来插入点数据玩玩 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()

下图可以发现数据插入成功,但是如果插入的数据有误应该怎么办呢
下面让我们来看一看

在这里插入图片描述


数据插入错误需要修改数据怎么办,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()

在这里插入图片描述


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++中都是用,是个很牛的语句

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。