开启掘金成长之旅!这是我参与「掘金日新计划 · 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;
可以看到表中有两个字段,name和email;
省略field参数
接下来我们尝试省略field参数来插入数据
INSERT INTO Users VALUES('jym', 'xxx@jym.com')
执行之后可以看到,表中插入了一行数据;
但是,这种省略field的插入方式是很不安全的,它和表中的字段顺序强耦合在一起了,非常的依赖表结构,万一那天表结构修改了,有同学在中间插入了新字段,这个语句就会得到错误的结果;
假设某天某位同学像这样在表中插入新的字段
再次运行上面的插入语句,就会出错
所以最好不要省略field参数
写入field参数
INSERT INTO Users (email, name) VALUES('jym', 'xxx');
这个和省略field的写法效果一样,但是哪怕我们修改了插入列名顺序,把email放在前面,省略的test字段,也可以正确的匹配插入,应为声明了field之后,数据库会按照列名去匹配具体的值,哪怕表结构修改,只要匹配成功也是可以正确插入的,jym可以按照这个sql语句试试看效果
其他文章
什么?在React中也可以使用vue响应式状态管理
clean-js | 自从写了这个辅助库,我已经很久没有加过班了…
clean-js | 在hooks的时代下,使用class管理你的状态
clean-js | 手把手教你写一个羊了个羊麻将版
写给前端的数据库入门 | 序
写给前端的数据库入门 | docker & 数据库
有没有一种可能,你从来都没有真正理解async
三分钟实现前端写JAVA这件事——装环境
三分钟实现前端写JAVA这件事——VS code