博客 数据库SQL语句之DML

数据库SQL语句之DML

   数栈君   发表于 2023-08-24 10:19  280  0

前言:

时隔一周,啊苏今天来更新啦,简单说说这周在做些什么吧,上课、看书、放松等,哈哈哈,所以博客就这样被搁了。

今天感觉不错,给大家带来DML操作数据的SQL语句和DQL查询数据的SQL语句,分两篇写,再写这周看书的收获,开整。

一.DML添加数据

前面学习的DDL语句让我们能够创建数据库,创建表,创建字段,这就相当于一个躯壳,本身表里是没有内容的。

学习完DML语句,就可以为表里添加数据,不再是一张空表了。


1.1给指定字段添加数据

insert into 表名(字段名1,字段名2,...) values(值1,值2,...);
我们可以想成一张excel表格,假如现在有一张这样的表格:

http://dtstack-static.oss-cn-hangzhou.aliyuncs.com/2021bbs/files_user1/article/0dce23878282cd4e4f769fcc05b34b48..png
  

表名为员工表,字段有序号、姓名、性别、年龄、身份证号、工号、入职时间。

现在厂里开始招人了,招到了一位叫张三的员工,由于还没入职,所以只需要给除了入职时间以外的其它字段加数据就可以啦。

http://dtstack-static.oss-cn-hangzhou.aliyuncs.com/2021bbs/files_user1/article/d358502b0e73166870657f34118ec570..png
  

上面是在DG这个图形化软件对数据库进行操作。

http://dtstack-static.oss-cn-hangzhou.aliyuncs.com/2021bbs/files_user1/article/d112607b53543b3547d788aa2e09a3f8..png
  

这句代码的意思是,为emp表添加一条记录,除entry_time字段没有添加,效果如下:

http://dtstack-static.oss-cn-hangzhou.aliyuncs.com/2021bbs/files_user1/article/7f919e0243e679de4a9e7bac3479ae0b..png
  

没有图形化界面,用命令行窗口也是可以滴,只是会有点难记,开发效率不高。欢迎私信问我如何下载和链接MySQL噢。

1.2给全部字段添加数据

insert into 表名 values(值1,值2,...);
张三的朋友李四恰好也找到这家厂,发现张三是厂里第一个招的员工,李四说:“那不行,我得第一个入职”,于是:

http://dtstack-static.oss-cn-hangzhou.aliyuncs.com/2021bbs/files_user1/article/28eb2cdc8c4df7ec43d09ac1fe14e4fe..png
  

这句代码中,表名emp后没有加字段,表示为所有字段添加数据,效果如下:

http://dtstack-static.oss-cn-hangzhou.aliyuncs.com/2021bbs/files_user1/article/5eb4ee7345f390839a89f43d1265dcae..png
  

相信看完这两个例子,大家收获了知识点,那就是如何指定字段添加数据,如何为所有字段添加数据。

还有补充的是:在为字符串和日期数据类型添加数据的时候,它的值要加上引号括起来噢;字段和值的顺序一 一对应。

1.3批量添加数据

厂里花了一笔资金做了一次广告,拉来许多想要进厂的人,分别是小明、小红、小蓝由于他们迫不及待想工作。

所以在员工登记的时候,只登记了它们的序号、姓名、性别、工号和入职时间,身份证信息还没来得及录入。

/* 为字段1,字段2等多个指定字段添加多行数值 */
insert into 表名(字段1,字段2,...) values(值1,值2,...),(值1,值2,...);
代码如下:
insert into emp(num,name,gender,age,work_id,entry_time)
                values(3,'小明','男','23','00003','2023-06-05'),
                           (4,'小红','女','22','00004','2023-06-05'),
                           (5,'小蓝','男','25','00005','2023-06-05');
这段代码执行后,表格里一次性添加了三个人除身份证号以外的其它信息:

http://dtstack-static.oss-cn-hangzhou.aliyuncs.com/2021bbs/files_user1/article/3027c3b728e150fd6f608ef6a14be6f4..png
  

我们可以把字段当成一个对象的属性,每一个值括号包起来的数据都是在描述一个对象,多个描述的时候用逗号隔开。

/* 为所有字段添加多行数值 */
insert into 表名 values(值1,值2,...),(值1,值2,...)...;
为所有字段批量添加数据的代码如上,不同的点就是表名后不要添加字段表示为所有字段添加数据。

另外,当表名指定所有字段的时候,和表名后不加字段等效。

二.DML修改数据

现在的表长这样:

http://dtstack-static.oss-cn-hangzhou.aliyuncs.com/2021bbs/files_user1/article/447fdce356a10980d031f59928efdb9c..png
  

管理数据库的人核对了一下,发现张三在6月3号就入职了,现在要把张三那一行的入职时间修改一下。

update 表名 set 字段1 = 数值, 字段2 = 数值,... [where 条件];
这句代码的意思是:update(更新)名为(emp)表中的(某)字段中的值,设为新的数值,符合条件的记录才更改。

修改张三入职时间的代码如下:

update emp set entry_time = '2023-06-03' where num = 1;
where num = 1意即符合num为1的记录进行此次修改操作,它起到一个事前筛选记录的作用。

where条件是可以省略的,此时作用的对象就是整张表,相当于对所有记录的entry_time更改为6月3号。

http://dtstack-static.oss-cn-hangzhou.aliyuncs.com/2021bbs/files_user1/article/6f48cfe2ece8dd1e7febd2447b4e38fe..png
  

工作完后,小明、小红、小蓝过来上报自己的身份证号,现在需要为它们的身份证号加上去。

update emp set id_card = '12345678901234567_' where num = 3 || num = 4 || num = 5;
由于每个人的身份证不一样,这里博主用_象征性的代表一下,哈哈,翻车了,举的例子不是很恰当。

这里的知识点是,条件可以有多个,它们用代表逻辑的符号连接起来,||(or)是或的意思,num为3或4或5都要进行修改。

http://dtstack-static.oss-cn-hangzhou.aliyuncs.com/2021bbs/files_user1/article/9196d55536c754bfab8a2a0eb04c91e3..png
  

三.DML删除数据

李四工作了半个月后,想跳槽了,此时员工信息里需要把李四这一行删除掉。

delete from emp [where 条件]
删除的一个代码如下:

delete from emp where num = 2;
http://dtstack-static.oss-cn-hangzhou.aliyuncs.com/2021bbs/files_user1/article/224493fc248767bf96cbd7828b088f6c..png
  

当数据多的时候,可能查找它的序号是第几需要多进行一步操作,我们可以直接将名字当条件进行删除,比如:

delete from emp where = '李四';
当然重名的另当别论,哈哈。

和上面的使用where指定记录进行修改一样,当删除记录的时候where条件省略了,就会删除表中的所有数据,很危险噢(doge)。

delete from emp;
删除表中的所有数据,和在DDL语句里讲的truncate table 表名; 的效果一模一样。

http://dtstack-static.oss-cn-hangzhou.aliyuncs.com/2021bbs/files_user1/article/be19e92b6de09e99d975c7f3eaa3f329..png
  

此时这张表就回炉重造了:

http://dtstack-static.oss-cn-hangzhou.aliyuncs.com/2021bbs/files_user1/article/89d131f6d0d40f508cc0072edde19dff..png
  

四.结尾
http://dtstack-static.oss-cn-hangzhou.aliyuncs.com/2021bbs/files_user1/article/d80b3600a5d082941a1a911a73dfda6b..png
  

免责申明:


本文系转载,版权归原作者所有,如若侵权请联系我们进行删除!

《数据治理行业实践白皮书》下载地址:https://fs80.cn/4w2atu

《数栈V6.0产品白皮书》下载地址:
https://fs80.cn/cw0iw1

想了解或咨询更多有关袋鼠云大数据产品、行业解决方案、客户案例的朋友,浏览袋鼠云官网:
https://www.dtstack.com/?src=bbs

同时,欢迎对大数据开源项目有兴趣的同学加入「袋鼠云开源框架钉钉技术群」,交流最新开源技术信息,群号码:30537511,项目地址:
https://github.com/DTStack

0条评论
社区公告
  • 大数据领域最专业的产品&技术交流社区,专注于探讨与分享大数据领域有趣又火热的信息,专业又专注的数据人园地

最新活动更多
微信扫码获取数字化转型资料
钉钉扫码加入技术交流群