数据库学习记录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;
相关推荐
jingyu飞鸟几秒前
linux系统二进制安装MySQL 8.4、8.0版本数据库,配置crontab和xtrabackup数据库热备份脚本
linux·数据库·mysql
小江的记录本6 分钟前
【MySQL】《MySQL日志面试背诵版+思维导图》(核心考点 + MySQL 8.0最新优化)
java·数据库·后端·python·sql·mysql·面试
北山有鸟6 分钟前
常用的快捷键
linux·前端·chrome·单片机·学习
BD_Marathon8 分钟前
SQL学习指南——创建和填充数据库
数据库·sql
TDengine (老段)8 分钟前
TDengine RPC 通信层深度解析 — 协议格式、连接管理与重试机制
大数据·数据库·rpc·架构·时序数据库·tdengine·涛思数据
KaMeidebaby9 分钟前
卡梅德生物技术快报|噬菌体筛选全流程技术方案:弧菌抑菌菌株筛选、特性鉴定与效果测试
前端·数据库·其他·百度·新浪微博
蜀道山老天师9 分钟前
从零搭建 Prometheus 监控 MySQL:含二进制安装、授权、exporter 配置全流程
运维·数据库·mysql·adb·云原生·prometheus
yubin128557092311 分钟前
mysql正则函数REGEXP
android·数据库·mysql
qcx2319 分钟前
【AI Daily】每日Arxiv论文研读Top5-2026-05-16
人工智能·学习·ai·agent·aris
我命由我1234524 分钟前
Android Framework P1 - 低配学习 Framework 方案、开机启动 Init 进程
android·c语言·c++·学习·android jetpack·android-studio·android runtime