MySQL的操作表CURD(基础)

准备数据:

 drop table if exists student;
 create table student(
  id INT, 
  sn INT, 
  name VARCHAR(20), 
  qq_mail VARCHAR(20) 
  );

插入

– 单行全列插入

insert into student values(1,1001,'baby','12345@qq.com'); 
insert into student values(2,1002,'baby2','123452@qq.com');

每次只能插入一行,且每一个字段要和数据库对应
在这里插入图片描述

每一行就是一个学生,每一列就是一个学生的某个属性。
对应类来说: 每一行就是一个学生对象,每一列就是一个学生的某个属 性。

– 指定列,多行插入

insert into student(id,sn,name) values(3,1003,'xx1'),(4,1004,'xx2');

在这里插入图片描述
如果没有指定某个字段的值,那么默认是NULL.

查询

– 全列查询

select * from student; 

– 查询指定列

select name from student;

在这里插入图片描述

-- 创建考试成绩表
DROP TABLE IF EXISTS exam_result;
CREATE TABLE exam_result (
 id INT,
 name VARCHAR(20),
 chinese DECIMAL(3,1),
 math DECIMAL(3,1),
 english DECIMAL(3,1)
);
-- 插入测试数据
INSERT INTO exam_result (id,name, chinese, math, english) VALUES
 (1,'唐三藏', 67, 98, 56),
 (2,'孙悟空', 87.5, 78, 77),
 (3,'猪悟能', 88, 98.5, 90),
 (4,'曹孟德', 82, 84, 67),
 (5,'刘玄德', 55.5, 85, 45),
 (6,'孙权', 70, 73, 78.5),
 (7,'宋公明', 75, 65, 30);

例子: --查询每个同学的总分
查询总分并且把总分按降序排列
SELECT name, chinese + english + math total FROM exam_result ORDER BY total DESC;
在这里插入图片描述

例:–查询同学各门成绩,依次按 数学降序,英语升序,语文 升序的方式显示
SELECT name, math, english, chinese FROM exam_result ORDER BY math DESC, english, chinese;
在这里插入图片描述

去重

select distinct math from exam_result;
在这里插入图片描述

这样的SQL语句是否也可以去重?
mysql> select id,name, distinct math from exam_result;
ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ‘distinct math from exam_result’ at line 1
以上这条语句位置不对!!需要把去重放在第一位!!
mysql> select distinct math, id,name from exam_result;
在这里插入图片描述

那么,去重的原理到底是什么?
去重 针对的是所有的字段!!只有当select distinct math, id,name from exam_result;中 的三个字段同时重复的时候,才会去重!!!

排序 order by

–从低到高排序

将查询结果 按照,根据数学成绩进行从低到高排序的排序

select * from exam_result order by math;

或者:

select * from exam_result order by math asc;

在这里插入图片描述

–从高到低排序

select * from exam_result order by math desc;

在这里插入图片描述

–关键字建表:

desc实际上是一个 关键字
假如你要创建的表名为关键字,一定要加 ``

-- ESC 下面那个键 
drop table if exists `desc`; 
create table `desc`( 
id int, 
name varchar(10) 
);

–对于要排序的字段为NULL的时候

insert into exam_result values(8,‘唐三 藏’,67,NULL,80);
在这里插入图片描述
从小到大排序
select * from exam_result order by math asc;
在这里插入图片描述
从大到小排序
select * from exam_result order by math desc;
在这里插入图片描述

–排序总结

1、order by asc 和 order by 默认是从低到高进行排序的
2、order by desc 是从高到第排序的
3、对于MySQL的关键字 ,在用作变量名的时候,一定要 加符号:``

修改 update

UPDATE table_name SET column = expr [, column = expr …] [WHERE …]
[ORDER BY …] [LIMIT …]

原表:
在这里插入图片描述

– 将孙悟空同学的数学成绩变更为 80 分

update exam_result set math=80 where name="孙悟空";

在这里插入图片描述
– 将曹孟德同学的数学成绩变更为 60 分,语文成绩变更为 70 分

 update exam_result set math=60,chinese=70 where name="曹孟德";

在这里插入图片描述

– 将总成绩倒数前三的 3 位同学的数学成绩加上 30 分

 update exam_result set math = math+30 order by math+english+chinese limit 3;

– 将所有同学的语文成绩更新为原来的 2 倍

update exam_result set chinese=chinese*2 ;

删除

DELETE FROM  table_name [WHERE ...] [ORDER BY ...] [LIMIT ...]

– 删除孙悟空同学的考试成绩

delete from exam_result where name="孙悟空";

– 删除整张表数据
– 准备测试表

DROP TABLE IF EXISTS for_delete;
CREATE TABLE for_delete (
 id INT,
 name VARCHAR(20)
);

– 插入测试数据

INSERT INTO for_delete (name) VALUES ('A'), ('B'), ('C');

– 删除整表数据

DELETE FROM for_delete;

删除数据

直接删除表:会删除表内所有的数据,但是这张表还是存在的,只不过里面没有数据了!!

delete from exam_result;

在这里插入图片描述

删除表本身

drop table exam_result;

在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
好的,我可以回答这个问题。以下是一个简单的 Spring Boot 项目,使用 MyBatis 对 MySQL 数据库进行 CRUD 操作的代码和注释。 首先,需要在 pom.xml 文件中添加以下依赖: ```xml <dependencies> <!-- Spring Boot Starter Web --> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> <!-- MySQL Connector/J --> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <version>8..23</version> </dependency> <!-- MyBatis --> <dependency> <groupId>org.mybatis.spring.boot</groupId> <artifactId>mybatis-spring-boot-starter</artifactId> <version>2.2.</version> </dependency> </dependencies> ``` 接下来,创建一个实体类 User,用于映射数据库中的 user : ```java public class User { private Long id; private String name; private Integer age; // 省略 getter 和 setter 方法 } ``` 然后,创建一个 Mapper 接口 UserMapper,用于定义 CRUD 操作: ```java @Mapper public interface UserMapper { @Select("SELECT * FROM user WHERE id = #{id}") User findById(Long id); @Insert("INSERT INTO user(name, age) VALUES(#{name}, #{age})") void insert(User user); @Update("UPDATE user SET name = #{name}, age = #{age} WHERE id = #{id}") void update(User user); @Delete("DELETE FROM user WHERE id = #{id}") void delete(Long id); } ``` 注意,这里使用了 MyBatis 的注解方式来定义 SQL 语句。 接下来,创建一个 Service 类 UserService,用于调用 Mapper 接口中定义的方法: ```java @Service public class UserService { @Autowired private UserMapper userMapper; public User findById(Long id) { return userMapper.findById(id); } public void insert(User user) { userMapper.insert(user); } public void update(User user) { userMapper.update(user); } public void delete(Long id) { userMapper.delete(id); } } ``` 最后,创建一个 Controller 类 UserController,用于处理 HTTP 请求: ```java @RestController @RequestMapping("/users") public class UserController { @Autowired private UserService userService; @GetMapping("/{id}") public User findById(@PathVariable Long id) { return userService.findById(id); } @PostMapping public void insert(@RequestBody User user) { userService.insert(user); } @PutMapping("/{id}") public void update(@PathVariable Long id, @RequestBody User user) { user.setId(id); userService.update(user); } @DeleteMapping("/{id}") public void delete(@PathVariable Long id) { userService.delete(id); } } ``` 这里使用了 Spring MVC 的注解方式来定义 HTTP 请求处理方法。 以上就是一个简单的 Spring Boot 项目,使用 MyBatis 对 MySQL 数据库进行 CRUD 操作的代码和注释。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值