MySQL添加、修改和删除数据
1.向MySQL数据表插入数据
语法:insert into 表名(字段1,字段2......) values(值1,值2.....);
insert into 表名 values(值1,值2.....);
insert into 表名(字段3,字段4) values(值3,值4);
insert into 表名[(字段1,字段2......)] values(值1,值2.....),(值1,值2.....),(值1,值2.....);
insert into 表名 set 列名=值1,set 列名=值2.......;
注意:(1)数据和要插入值的字段一一对应。
(2)给部分字段添加数据,表里未赋值的字段必须是可以为空,自动增长的字段不能添加数据。
(3)只有插入全部字段的数据(自动增长字段不用写),才能省略表名后面的字段列表。
易错点:(1)字段和字段之间、值与值之间要用英文逗号隔开。
(2)字段和后面的值没有一一对应。
(3)字符类型要使用双引号或者单引号括起来。
如果数据是字符型,必须使用单引号或者双引号,如:"值1"。
新建一个数据库students和名为student的表如下:
create database if not EXISTS students character set utf8 collate utf8_general_ci;
use students; create table student ( stuID int(5) not null primary key, stuName varchar(50) not null, stuSex CHAR(10), stuAge smallint );
例1:向student表添加一行记录。
insert into student(stuID,stuName,stuSex,stuAge) values(1001,'张三','男',19); select * from student;
insert into student values(1002,'李四','男',19); select * from student;
例2:向student表添加一行记录,添加学号为1003,姓名为“小丽”的记录。
insert into student(stuID,stuName) values(1003,'小丽'); select * from student;
例3:向student表添加三行记录,学号为1004,姓名为“小明”;学号为1005,姓名为“王五”;学号为1006,姓名为“张晓明”。
insert into student(stuID,stuName) values(1004,'小明'),(1005,'王五'),(1006,'张晓明'); select * from student;
例3-1.向student表添加一行记录,学号为1006,姓名为“李小萌”,性别为女,年龄为19。
insert into student set stuID=1006,stuName='李小萌',stuSex='女',stuAge=19; select * from student;
例3-2.向student表添加一行记录,替换学号为1004,姓名为“小明”,性别为男,年龄为19。
REPLACE into student set stuID=1004,stuName='小明',stuSex='男',stuAge=19; select * from student;
以下内容转自:https://blog.csdn.net/qq_62731133/article/details/125861630
REPLACE语句用VALUES()的值替换已经存在的记录。若在INSERT语句中使用IGNORE关键字,MySQL不会尝试去执行该语句,原有记录保持不变,但INSERT语句也不会提示出错。
另外,MySQL还支持图片的存储,存储图片的字段类型为blob,是一个二进制大对象,可以容纳可变数量的数据。有多种blob类型,分别为tinyblob和blob、mediumblob和longblob,它们只是可容纳值的最大长度不同。
图片一般可以以路径的形式来存储,即插入图片可以采用直接插入图片的存储路径,也可以直接插入图片本身,其用LOAD_FILE(file_name)函数读取文件。用LOAD_FILE(file_name)函数来读取文件时,图片文件的位置必须在服务器上,file_name必须指定路径全名,而且还必须拥有FILE特许权,文件必须可读取,文件容量必须小于max_allowed_packet字节。若文件不存在,或因不满足上述条件而不能被读取,则函数返回值为NULL。将图片直接存储在数据库中,会造成数据库文件很大,影响数据的检索速度,且读取程序繁琐,应尽量避免。
2.MySQL中修改表数据,语法如下:
update 表名 set 字段1=值1,字段2=值2....... where 条件
例4:修改student表学号为1004的记录,性别为女,年龄18。
update student set stuSex='女',stuAge=18 where stuID=1004; select * from student;
例5:修改student表学号为1004和1005的记录,性别为男,年龄19。
update student set stuSex='男',stuAge=19 where stuID in(1004,1005); select * from student;
UPDATE student set stuSex='男',stuAge=19 where stuID=1004 or stuID=1005 ; select * from student;
上面两种写法选一种运行即可。
条件:where 运算符 转自:https://www.cnblogs.com/yufei12/p/14897047.html
操作符 | 含义 | 范围 | 结果 |
---|---|---|---|
= | 等于 | 5=6 | false |
<>或者 != | 不等于 | 5<>6 | true |
> | 大于 | 5>6 | false |
< | 小于 | 5<6 | true |
>= | 大于等于 | 5>=6 | false |
<= | 小于等于 | 5<=6 | true |
between A and B | 在A和B之间 | between 1 and 10 | 在1~10之间,不包括10 |
AND | 连接条件&& | 条件1 和条件2都成立 | 都是true 才是true |
OR | 或者|| | 条件1 和条件2有一个成立即可 | 有一个true才是true |
注意:(1)如果不写where条件,那么整张表的对应字段都将被修改。
UPDATE student set stuSex='男'; select * from student;
(2)“值”是一个具体的值,也可以是一个变量,如birthday
= CURRENT_TIME current_time是当前时间。
alter table student add COLUMN stuBirth timestamp; update student set stuBirth=CURRENT_TIME where stuID=1004; select * from student;
(3)多个设置的属性之间,使用英文逗号隔开
例6:修改student表所有性别为女且学号在学号在1001~1003的记录,将年龄+1。
update student set stuAge=stuAge+1 where stuSex='女' and stuID BETWEEN 1001 and 1004; select * from student;
3.MySQL中删除表中的数据,语法:
delete from 表名 where 条件
例7:删除student表学号为1006的记录。
delete from student where stuID=1006; select * from student;
例8:删除student表中的所有记录。
delete from student; select * from student;
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 全程不用写代码,我用AI程序员写了一个飞机大战
· DeepSeek 开源周回顾「GitHub 热点速览」
· 记一次.NET内存居高不下排查解决与启示
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!