MySQL的CURD 增删改查

发布时间:2024-01-19 07:23:26

添加 insert

语法:

  • 单条:insert into 表名('字段1', '字段2', ...) values('值1', '值2', ...)
  • 多条:insert into 表名('字段1', '字段2') values('值1', '值2'), ('值1', '值2');
-- 插入语句 (添加)
-- insert into 表名('字段1', '字段2', ...) values('值1', '值2', ...)
INSERT INTO `grade`(`gradename`) VALUES('大一');
-- 插入语句数据和字段要一一对应
INSERT INTO `grade` VALUES('大一');

-- 插入多个字段
-- insert into 表名('字段1') values('值'), ('值');
INSERT INTO `grade`(`gradename`) VALUES ('大二'), ('大三');

INSERT INTO `student`(`name`) VALUES('张三');

INSERT INTO `student`(`name`, `pwd`, `sex`) VALUES('张三', 'aaaa', '男');

INSERT INTO `student`(`name`, `pwd`, `sex`)
VALUES('李四', 'aaaa', '女'), ('王五', 'aaaa', '男'), ('张大妈', 'aaaa', '女');


修改 update

语法:

  • 单个:UPDATE 表名 SET 字段名='值' WHERE [条件]
  • 多个:UPDATE 表名 SET 字段名1='值', 字段名2='值' WHERE [条件]
-- 修改名字, 带条件
-- UPDATE `表名` SET `字段名`='值' WHERE [条件]
UPDATE `student` SET `name`='大哥' WHERE id=1;
-- 不带条件, 会改动所有
UPDATE `student` SET `name`='长江七号';

-- 修改多个属性
-- UPDATE `表名` SET `字段名1`='值', `字段名2`='值' WHERE [条件]
UPDATE `student` SET `name`='长江1号', `email`='7854@qq.com' WHERE id!=1;
UPDATE `student` SET `name`='长江18号', `email`='7854@qq.com' WHERE id BETWEEN 3 AND 6;

条件:where字句 运算符 id等于某个值, 大于某个值, 在某个值区间

操作符含义范围结果
=等于5=6false
<>或者!=不等于5<>6true
>大于
<小于
>=大于等于
<=小于等于
BETWEEN 值 AND 值在某个范围内
AND逻辑与 &&5 > 1 and 1 > 2false
OR逻辑或 ||5 > 1 or 1 > 2true
-- 多个条件
UPDATE `student` SET `name`='大哥' WHERE `name`='长江18号' AND sex='女';
-- 变量
UPDATE `student` SET birthday=CURRENT_TIME WHERE `id`=1;


删除 delete

delete

语法:-- delete from表名where [条件]

-- 删除数据
DELETE FROM `student` WHERE id=1;

TRUNCATE 命令

  • 作用:完全清空一个数据库表, 表的结构和索引不会变
-- 清空 student 表
TRUNCATE `student`;

delete 和 TRUNCATE 区别

  • 相同点:都能删除数据
  • 不同点:
    • TRUNCATE 重新设置 自增列 计数器归零
    • TRUNCATE 不会影响事务
-- 测试 delete 和 TRUNCATE 区别
CREATE TABLE `test`(
  `id` INT(11) NOT NULL AUTO_INCREMENT COMMENT 'id',
  `name` VARCHAR(255) COMMENT '姓名',
  
  PRIMARY KEY(`id`)
)ENGINE=INNODB DEFAULT CHARSET=utf8

INSERT INTO `test`(`name`) VALUES('1'),('2'),('13'),('14');

DELETE FROM `test` -- 不会影响自增

TRUNCATE TABLE `test` -- 清空自增, 计数器归零

delete 删除的问题, 重启数据库

  • InnoDB:自增列会从1开始(存在内存中, 断电即失)
  • MyISAM:继续从上一个开始(存在文件中的, 不会丢失)



查询 select

链接:https://blog.csdn.net/weixin_44953227/article/details/108737622

文章来源:https://blog.csdn.net/weixin_44953227/article/details/108738332
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。