写给前端的数据库入门 | 插入数据

120 阅读2分钟

开启掘金成长之旅!这是我参与「掘金日新计划 · 12 月更文挑战」的第1天,点击查看活动详情

上文中我们一步步使用docker安装了数据库并且创建了库和表,接下来我们学习一下如何插入数据

语法

首先来了解一下插入数据的语法,在sql中使用insert into来插入数据,具体语法如下,其中field可以省略

INSERT INTO table_name ( field1, field2,...fieldN )
                       VALUES
                       ( value1, value2,...valueN );

在上文中我们建立了数据库jym,表Users,接下来我们在这个表中插入第一条数据;

首先运行mysql容器,然后连接到容器

docker exec -it testsql mysql -u root -p

use jym;

show tables;

desc Users;

image.png 可以看到表中有两个字段,name和email; image.png

省略field参数

接下来我们尝试省略field参数来插入数据

INSERT INTO Users VALUES('jym', 'xxx@jym.com')

执行之后可以看到,表中插入了一行数据;

image.png 但是,这种省略field的插入方式是很不安全的,它和表中的字段顺序强耦合在一起了,非常的依赖表结构,万一那天表结构修改了,有同学在中间插入了新字段,这个语句就会得到错误的结果;

假设某天某位同学像这样在表中插入新的字段

image.png

再次运行上面的插入语句,就会出错

所以最好不要省略field参数

写入field参数

INSERT INTO Users (email, name) VALUES('jym', 'xxx');

这个和省略field的写法效果一样,但是哪怕我们修改了插入列名顺序,把email放在前面,省略的test字段,也可以正确的匹配插入,应为声明了field之后,数据库会按照列名去匹配具体的值,哪怕表结构修改,只要匹配成功也是可以正确插入的,jym可以按照这个sql语句试试看效果 image.png


其他文章
什么?在React中也可以使用vue响应式状态管理
clean-js | 自从写了这个辅助库,我已经很久没有加过班了…
clean-js | 在hooks的时代下,使用class管理你的状态
clean-js | 手把手教你写一个羊了个羊麻将版
写给前端的数据库入门 | 序
写给前端的数据库入门 | docker & 数据库
有没有一种可能,你从来都没有真正理解async
三分钟实现前端写JAVA这件事——装环境
三分钟实现前端写JAVA这件事——VS code