MySQL--增,删,改

2023-10-25 14:14:48 浏览数 (1)

1、增加

语法: insert into 表名(字段1,字段2,字段3,...,字段n) values(值1,值2,值3,...,值n);

案例:

代码语言:javascript复制
insert into grade(gradeid,gradename) values(null,'一年级');
insert into grade(gradename) values('二年级');
insert into student(studentname,loginpwd,gender,phone,address,email,gradeid,identitycard,images)
                        values('张四','112233','女','13311112222','重庆市江北区','123@qq.com',1,'5001112222222222','1.jpg');
                        ### 这里列名的顺序与定义表时的列名的顺序无关,只要值能对得上上面列名的顺序就行

第二种形式:

省略列名的列举时,值的顺序要与表定义时的列的顺序一致。

语法: insert into 表名 values(值1,值2,...,值n);

代码语言:javascript复制
insert into student values(null,'111111','张王','男',2,'13312344321','重庆市南岸区','123@qq.com','55654','123.png');

第三种形式:

添加多条记录

代码语言:javascript复制
insert into grade values(null,'四年级'),
                                    (null,'三年级'),
                                    (null,'七年级');

第四种,生成一张新的表(新表不带主外键关系)

create table newGrade select * from grade; 将查询出来的数据存入到新建的表中。

第五种,将查询结果添加到另一张表中

代码语言:javascript复制
insert into newGrade 
select * from grade;
2、删除

语法: delete from 表名 删除表中所有的记录

(使用delete删除的数据可以恢复,得开事务,删除时一定要带条件,不然就是删除所有记录)

delete from newgrade newgrade表中所有的数据都被删除了

语法: delete from 表名 where 条件

delete from newgrade where gradeid>=5 and gradeid<=7

delete from newgrade where gradename='二年级'

程序中最为常见的用法就是根据主键进行删除数据

语法: truncate table 表名; 彻底删除数据不可恢复,不使用, truncate 删除之后会将自增也还原

无论是执行truncate删除还是delete删除,主外键关系检查打开的时候,子表中有引用主表的数据时,删除操作都会报错

先查看foreign_key_checks系统变量的值,show VARIABLES like 'foreign_key_checks' 结果是ON 打开状态 执行前SET foreign_key_checks=0;关闭主外键关系检查 再执行删除指令 truncate table grade; set foreign_key_checks=1; 删除完成之后又设置回打开检查的状态

3、修改

语法: update 表名 set 字段名1=值1,字段名2=值2,...,字段名n=值n where 条件

update student set gender='男' where studentno%2=0 学号是偶数的记录变成男

0 人点赞