开发与项目经理之间的打情骂俏——数据库篇

阿里云国内75折 回扣 微信号:monov8
阿里云国际,腾讯云国际,低至75折。AWS 93折 免费开户实名账号 代冲值 优惠多多 微信号:monov8 飞机:@monov6

👦👦一个帅气的boy你可以叫我Love And Program
🖱 ⌨个人主页Love And Program的个人主页
💖💖如果对你有帮助的话希望三连💨💨支持一下博主

由数据库引发的一系列探索

前言

       作为刚步入社会的小同学来说对代码有热情是很好但是也极其嫌麻烦明明都做完了还要被要求一遍又一遍的更改相信大多数人都是嫌麻烦然后就是两人之间的打情骂俏。

项目经理你改一改嘛🤤
我哎呀好麻烦啊不给你写了一个么😭
项目经理你那个我数据库不能维护啊快改改乖o()o
我😣我不我不为啥不能维护我不理解
项目经理你去试试😣球球了你去试试😭
当然没我写的这么肉麻嘞🤣如有雷同纯属巧合


       好了数据库维护他从前端页面进入后向页面输入肯定要调用sql问题来了以下这种形式sql可以是实现随意添加么没有主键
在这里插入图片描述
       我写python的第一反应这有啥问题么数据库我会个简单的增删改查但是我感觉应该有函数可以直接往后加吧于是乎我开始了漫漫搜索之路因为回家连不上内网mysql以下用Oracle代替

insert函数

  • 数据库基本增加操作insert into table_name (column1, column2, ...) VALUES (value1, value2, ...)这里直接跳过全字段添加选取单字段添加本以为他会如下图
INSERT into wang.gjc_data (a1) values ('a');

在这里插入图片描述

  • 实际上如下图哪怕是选取单字段也是默认增加一行
    在这里插入图片描述

       我确实懵了以前从来没有想过这件事因为从数据库读取下来很多时候数据第一步就是先转置感觉有点麻烦吧因为转置完会出现很多意料之外的情况但是人家数据库就是这么存的现在轮到自己建数据库才发现数据库规则可太多了而且自己上传数据也都是一次上传一行没遇见过也就没有真正想过数据库在没有主键的情况下可以单单只改一个数据么但是吧我头铁啊python能做到为啥数据库不行我还是不信我继续搜

  • 多条一次性插入:INSERT ALL INTO table_name (column1, column2, ...) VALUES (value1_1, value1_2, ...) into table_namecolumn_name1,column_name2 values (value1,value2)...select * from dual;
INSERT ALL 
INTO table_name  (A1,A2) values ('a','b')  
INTO table_name  (B2,C1) VALUES ('c','d')
select * from dual;

       结果显而易见肯定不是我所期望的那个场面如下图
在这里插入图片描述

       说实话我就是杠啊找不到想要的答案就全试一遍所以我决定从update语句下手


update函数

       我想想update好像无法新增一列好像还没开始就结束了但是实际页面肯定需要这个条件那试试能不能达到自己想要的画面

       因为没有主键所以我选择直接用update最后结果与预料的一样一列全部改变图下图

update  GJC_DATA set GJC_DATA.c2= 'c2'

在这里插入图片描述
       也是没有主键连第二范式都不满足但是好像就算我加上一列自增主键也无法用insert插入一个指定位置但是update是可以实现的如下图重新创建一个数据库表

CREATE TABLE WANG.gjc_data(
id int NOT NULL,
a1 varchar(128),
a2 varchar(128),
a3 varchar(128),
a4 varchar(128),
a5 varchar(128),
b1 varchar(128),
b2 varchar(128),
c1 varchar(128),
c2 varchar(128),
c3 varchar(128),
c4 varchar(128),
c5 varchar(128),
c6 varchar(128),
c7 varchar(128),
PRIMARY KEY(id)
);
create sequence id_zeng_1
start with 1          --以1开始
increment by 1;  
insert into wang.gjc_data  (id,A1,b1) values(id_zeng_1.nextval,'a','d');
insert into wang.gjc_data  (id,A1,b1) values(id_zeng_1.nextval,'b','e');
insert into wang.gjc_data  (id,A1,b1) values(id_zeng_1.nextval,'c','f');

在这里插入图片描述

update wang.gjc_data set A1='B'  WHERE id=1;

在这里插入图片描述

       好吧认清现实了不过insert一次插入一行下面直接插一行我python使用的时候早就可以用pandas清空空值他也无法接受可能他觉得客户看起来不好看吧得那凑活给他改改

  • Oracle数据库

在这里插入图片描述

  • Jupyter读取Oracle

在这里插入图片描述

总结

       到这算是结束了总结一下我原以为是我数据库学的不精通做不到指定位置添加经过这么一番探索后才发现真的没有这种操作果然实践才是检验真理的唯一标准不遇上这事我还真一直有这个误区算了这次被自家人嘲笑就嘲笑了那也比到时候出差去外面丢人强。

       谨以此文提醒自己不再犯相同错误数据库并不可以向excel那样用语句向指定位置插入指定值更新也是需要设置主键或是一列唯一值去做一个指引。

阿里云国内75折 回扣 微信号:monov8
阿里云国际,腾讯云国际,低至75折。AWS 93折 免费开户实名账号 代冲值 优惠多多 微信号:monov8 飞机:@monov6
标签: 数据库