MySQL的CURD 增删改查

添加 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=6 false
<>或者!= 不等于 5<>6 true
> 大于
< 小于
>= 大于等于
<= 小于等于
BETWEEN 值 AND 值 在某个范围内
AND 逻辑与 && 5 > 1 and 1 > 2 false
OR 逻辑或 || 5 > 1 or 1 > 2 true
-- 多个条件
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://www.cnblogs.com/pojo/p/14277068.html

posted @ 2021-01-14 14:40  jiawei3998  阅读(144)  评论(0编辑  收藏  举报