当前位置: 首页 > article >正文

pycharm 创建数据库 以及增删改查

一,数据库

1,介绍:

数据库(Database)是一个有组织的数据集合,它通常用于存储和管理电子化的信息。这些数据可以是结构化的,如表格中的行和列,也可以是非结构化的,如文本、图像或音频文件。数据库的主要目的是允许高效地存储、检索、更新和删除数据,以满足各种业务需求和应用场景。

数据库是我们后端经常用到的工具之一,我们所用到的是:SQLlite数据库

优点:无需下载安装,无需单独的服务器进程,SALlite数据库就是一个文件,内存占用低。

其他的数据库如:MySQL等

2,创建数据库文件(pycharm)

(1)导入sqlite             import sqlite3            sqlite3 是python自带的,无需额外安装

在python文件夹里面先创建我们的python文件,然后输入上面的代码.

(2)创建数据库文件     con =sqlite3.connect('数据库名称.db')

connect的作用:没有数据库文件时会自动创建,有数据库是会自动连接使用对应数据库文件。所以这串代码,我们一般不动,

(3)提交               con.commit()                   将创建的数据库文件保存起来,后续才能使用。

类似保存的作用。

(4)关闭链接           con.close()                  不用时,释放内存

运行后,我们的数据库创建好了。

二,表

就像是成绩表单一样,我们的表就是把各种信息,存放在我们的数据库文件里面,而表就是我们数据库里面存放数据的容器。好比我们的excell表。

注意:

必须要先建表才能存储数据,一个数据库文件可以创建多张表,表名不能重复。

1,创建表:

先导入我们的sqlite3 然后连接数据库文件,

再创建游标:         yb = con.cursor()

游标:执行sql语句的工具,让用户可以对数据进行访问。因为sql语句我们python本身不能执行,所以我们就需要借助游标来帮助我们执行相关sql语句。

(1)执行sql语句,创建表:

yb.execute(''' create table 表名(列名1 数据类型,列名2 数据类型,……)''')

游标用完也要关闭,释放资源:

yb.close()

一些数据类型:

integer ----整数类型

varchar   ----可变长字符串

real   ----小数

date   ----日期类型数据

text   -----文本类型(通常文字较多,超过255个字符)


注意:创建表必须得有表名和起码一个列。

(2)pycharm看到我们的表:

pycharm配置sqlite驱动:

然后将我们的文件sqlite-jdbc-3.31.1jar文件放在该路径下。如下:

然后我们再选择后,点确认:

因为我们的表一般无法展示,我们的插件就是来帮我们直观的看见我们的表用的。

然后,我们就可以直观地看到我们的表了:

2,表元素操作

(1)列的修改

1,添加列的sql语法:

yb.execute('''alter table 表名 add 新的列名 数据类型''')

运行后:

2,删除列。

yb.execute('''alter table 表名 drop 列名 ''')

注意:删除不需要数据类型,否则会报错。

3,修改表名。

yb.execute('''alter table 旧表名 rename to 新表名 ''')

这个只需对yb.execute内部内容做修改,所以不做展示了。

(2)主键与自增长

主键:

类似我们的身份证,可以完全区分我们与其他人的代号。而我们的添加数据,我们的id可以当作主键,我们每次加入后,我们可以让我们的主键id自增长,这样就不会有重复的id出现,以便于我们不会弄混其他数据。

注意:主键列必须为整数类型(文本不能增长),一个表只能设置一个列为主键,主键列不能为空

语法:primary key

操作:
将id设置为主键 并且自增长

语法:yb.execute('''create table 表名(id integer primary key autoincrement,name varchar,address varcahr)''')

创建完表后,我们的视图如下:

注意:我们一般建立表都会先把主键设好,尽量不再后期更改。

3,数据操作

(1)添加数据

添加一行

yb.execute('''insert into 表名(列名1,列名2,……) values(数据1,数据2)''')

 

这里,我们需要设置主键和自增加后,我们的id才会显示(这里没有设置),否则需要自行填入。

添加多行数据:

yb.execute('''insert into 表名(列名1,列名2,……) values(数据1,数据2),(数据1,数据2)''')

                                                                                               第一行的            第二行的

(2)修改数据

yb.execute('''update 表名 set 列=新的数据 where 条件(通过主键或其他)''')

其实where条件也可以写 name='小张' ,但是如果有相同的名称,我们就会把符合条件的数据全部修改,不能唯一确定,这就是我们设置主键的原因之一。

(3)删除数据

yb.execute('''delete from 表名 where 条件''')

注意:sql特性:每一行数据的id是唯一值,不会因为删除某行数据而改变。

(4)查询数据

yb.execute('''select * from 表名 where 条件''') 

where 不写表示查全部

观察查询数据:

变量名=yb.fetchall()

print(变量名)

fetchall是我们查找的内容,没有查找,print为空

返还类型:列表嵌套元组。


http://www.kler.cn/a/563940.html

相关文章:

  • Java中的缓存技术:Guava Cache vs Caffeine vs Redis
  • 火狐浏览器多开指南:独立窗口独立IP教程
  • 蓝桥杯备赛-拔河
  • Brave 132 编译指南 Android 篇 - 项目结构 (二)
  • Java 大视界 -- 基于 Java 的大数据机器学习模型压缩与部署优化(99)
  • Redis Lua Script 溢出漏洞(CVE-2024-31449)
  • AI数字人开发,引领科技新潮流
  • 防火墙各项指标代表什么意思
  • CCNP知识笔记
  • Web网页开发——水果忍者
  • Python高并发原理与实战解决方案指南
  • Oracle23版本 创建用户 报 00959和65096错误解决办法
  • 【mysql中mvcc的含义和作用及原理】
  • k8s中pod的调度策略之pod的亲和性调度与反亲和性调度 一文搞懂 k8s中创建的pod如何调度?
  • Protobuf
  • 取topN不同算法的实现的性能差别
  • 记录一下在k3s快速创建gitlab
  • C++ Qt常见面试题(2):QT中的文件流(QTextStream)和数据流(QDataStream)的区别
  • kotlin 知识点三 扩展函数和运算符重载
  • java后端开发day21--面向对象进阶(二)--继承进阶