前言:
时隔一周,啊苏今天来更新啦,简单说说这周在做些什么吧,上课、看书、放松等,哈哈哈,所以博客就这样被搁了。
今天感觉不错,给大家带来DML操作数据的SQL语句和DQL查询数据的SQL语句,分两篇写,再写这周看书的收获,开整。
一.DML添加数据
前面学习的DDL语句让我们能够创建数据库,创建表,创建字段,这就相当于一个躯壳,本身表里是没有内容的。
学习完DML语句,就可以为表里添加数据,不再是一张空表了。
1.1给指定字段添加数据
insert into 表名(字段名1,字段名2,...) values(值1,值2,...);
我们可以想成一张excel表格,假如现在有一张这样的表格:
表名为员工表,字段有序号、姓名、性别、年龄、身份证号、工号、入职时间。
现在厂里开始招人了,招到了一位叫张三的员工,由于还没入职,所以只需要给除了入职时间以外的其它字段加数据就可以啦。
上面是在DG这个图形化软件对数据库进行操作。
这句代码的意思是,为emp表添加一条记录,除entry_time字段没有添加,效果如下:
没有图形化界面,用命令行窗口也是可以滴,只是会有点难记,开发效率不高。欢迎私信问我如何下载和链接MySQL噢。
1.2给全部字段添加数据
insert into 表名 values(值1,值2,...);
张三的朋友李四恰好也找到这家厂,发现张三是厂里第一个招的员工,李四说:“那不行,我得第一个入职”,于是:
这句代码中,表名emp后没有加字段,表示为所有字段添加数据,效果如下:
相信看完这两个例子,大家收获了知识点,那就是如何指定字段添加数据,如何为所有字段添加数据。
还有补充的是:在为字符串和日期数据类型添加数据的时候,它的值要加上引号括起来噢;字段和值的顺序一 一对应。
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');
这段代码执行后,表格里一次性添加了三个人除身份证号以外的其它信息:
我们可以把字段当成一个对象的属性,每一个值括号包起来的数据都是在描述一个对象,多个描述的时候用逗号隔开。
/* 为所有字段添加多行数值 */
insert into 表名 values(值1,值2,...),(值1,值2,...)...;
为所有字段批量添加数据的代码如上,不同的点就是表名后不要添加字段表示为所有字段添加数据。
另外,当表名指定所有字段的时候,和表名后不加字段等效。
二.DML修改数据
现在的表长这样:
管理数据库的人核对了一下,发现张三在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号。
工作完后,小明、小红、小蓝过来上报自己的身份证号,现在需要为它们的身份证号加上去。
update emp set id_card = '12345678901234567_' where num = 3 || num = 4 || num = 5;
由于每个人的身份证不一样,这里博主用_象征性的代表一下,哈哈,翻车了,举的例子不是很恰当。
这里的知识点是,条件可以有多个,它们用代表逻辑的符号连接起来,||(or)是或的意思,num为3或4或5都要进行修改。
三.DML删除数据
李四工作了半个月后,想跳槽了,此时员工信息里需要把李四这一行删除掉。
delete from emp [where 条件]
删除的一个代码如下:
delete from emp where num = 2;
当数据多的时候,可能查找它的序号是第几需要多进行一步操作,我们可以直接将名字当条件进行删除,比如:
delete from emp where = '李四';
当然重名的另当别论,哈哈。
和上面的使用where指定记录进行修改一样,当删除记录的时候where条件省略了,就会删除表中的所有数据,很危险噢(doge)。
delete from emp;
删除表中的所有数据,和在DDL语句里讲的truncate table 表名; 的效果一模一样。
此时这张表就回炉重造了:
四.结尾
免责申明:
本文系转载,版权归原作者所有,如若侵权请联系我们进行删除!
《数据治理行业实践白皮书》下载地址:https://fs80.cn/4w2atu
《数栈V6.0产品白皮书》下载地址:https://fs80.cn/cw0iw1
想了解或咨询更多有关袋鼠云大数据产品、行业解决方案、客户案例的朋友,浏览袋鼠云官网:https://www.dtstack.com/?src=bbs
同时,欢迎对大数据开源项目有兴趣的同学加入「袋鼠云开源框架钉钉技术群」,交流最新开源技术信息,群号码:30537511,项目地址:https://github.com/DTStack