数据库学习记录03

DML【数据操作语言】

DQL是对数据的查操作,DML就是操作:增、删、改。数据库的基础操作就是:增删改查(CRUD);

1.插入(增)

sql 复制代码
#语法1
insert into 表名(字段名1,...) values(值1,...);

#语法2
insert into 表名(字段名1,...) 子查询;

#语法3
insert into 表名 set 列名=值, 列名=值, ...

注意点

  • 字段个数和值的个数必须一致
  • 字段类型和值类型一致或兼容,而且一一对应
  • 可以为空的字段,可以不用插入值,或者用null填充
  • 不可以为空的字段,必须插入值
  • 字段可以省略,但默认所有字段,并且顺序和表中的存储顺序一致
sql 复制代码
#方式一:经典插入
1.插入的值的类型要与类的类型一致或兼容
insert into beauty(id, name, sex, borndate, phone ,photo) values (13, '陈明','男','1990-4-23', '1898888888', null , 2);

#2.不可以为null的列必须插入值。可以为null的列可省略。
    #方式一:显式
insert into beauty(id, name, sex, borndate, phone, photo) values(14,'于瑶莉', '1980-5-23', '1898888888', null);
    #方式二:隐式
insert into beauty(id, name, sex, phone) values(15, '明镜珏', '女', '138888888');

#3.列的顺序可以调换,但要与值对应
insert into beauty(name, sex, id, phone) values ('清影媂', '女', 16, '11001');

#4.列数和值的个数必须一致
#5.可以省略列名,默认所有列,而且列的顺序和表中的顺序一致
insert into beauty values (17, '剑钦天', '男', null, '111', null);

#方式二
insert into beauty set id=18, name='炽雨', phone='887';


#区别
#方式一支持插入多行,方式二不支持
insert into beauty values (17, '剑钦天1', '男', null, '111', null)
,(17, '剑钦天2', '男', null, '111', null)
,(17, '剑钦天3', '男', null, '111', null);
#方式一支持子查询,方式二不支持
insert into beauty(id, name, phone) select 26, '顾明竹', '11809841';

insert into beauty(id, name, phone) select id, name, '1234567' from people where id <3;

2.删除(删)

sql 复制代码
#单表的删除
delete from 表名 where 筛选条件;

#sql语法
delete 别名1, 别名2 from 表1 别名1 inner|left|right join 表2 别名2 on 连接条件 where 筛选条件 limit 条目数

#truncate 清空全表(慎用), 包括自增序列也清除
truncate table 表名;

注意点

  • delete可以加where条件,truncate不能加where
  • truncate删除,效率高一丢丢。
  • 假如要删除的表中有自增长列,如果用delete删除后,再插入数据,自增长列的值从断点开始,二truncate删除后,再插入数据,自增长列的值从1开始。
  • truncate删除没有返回值,delete删除后返回删除的行数。
  • truncate删除不能回滚,delete删除可以回滚。
sql 复制代码
#方式一:delete
#1.单表的删除
#案例:删除手机号以9结尾的美的信息
delete from beauty where phone like '%9';

#2.多表的删除
#案例:删除人为张无忌的美的信息
delete b from beauty b inner join people po on b.people.id = po.id
where po.peoleName = '张无忌';

#方式二:truncate 语句
truncate table people;

3.修改(改)

语法

sql 复制代码
update 表名 set 列=新值, ... where 筛选条件;
sql 复制代码
#1.修改单表的记录
#案例1:修改beauty表中姓唐的电话为1389999
update beauty set phone = '1389999' where name like '唐%';

#案例2:修改people表中id为2的名称为翼铭,魅力值10
update boys set boyname = '翼铭', usercp = 10 where id = 2;

#2.修改多表的记录
#修改没有人的 美的人的编号都为2号
update people po right join beauty b on po.id = b.id set b.people.id = 2
where po.id is null;
相关推荐
zhcong_2 分钟前
MySQL数据库操作
数据库·mysql
Clockwiseee25 分钟前
文件上传总结
运维·服务器·学习·文件上传
苜柠1 小时前
Wpf学习片段
学习
欢乐熊嵌入式编程2 小时前
智能手表固件升级 OTA 策略文档初稿
嵌入式硬件·学习·智能手表
起床学FPGA2 小时前
异步FIFO的学习
学习·fpga开发
极小狐2 小时前
极狐GitLab 容器镜像仓库功能介绍
java·前端·数据库·npm·gitlab
极小狐2 小时前
如何构建容器镜像并将其推送到极狐GitLab容器镜像库?
开发语言·数据库·机器学习·gitlab·ruby
依年南台2 小时前
搭建大数据学习的平台
大数据·学习
阿四啊2 小时前
【Redis实战篇】分布式锁-Redisson
数据库·redis·分布式
小虎卫远程打卡app2 小时前
视频编解码学习10之成像技术原理
学习·计算机视觉·视频编解码