MySQL增删改查基本使用(CRUD)

前言

在前几篇,我介绍了关于MySQL的基本概念,那么本次就要开始介绍关于MySQL的最重要的部分,那就是关于表的操作。(CRUD- Create, Retrieve,Update,Drop)。

建表
例:创建一张学生表

create table student(
	id int primary key,
	name varchar(20),
	sex varchar (2),
	addr varchar(20)
);

插入数据

  • 单行插入(全列插入)
insert into student values(1,‘张三’,’男‘,‘西安’);
  • 多行插入(指定列插入)
insert into student(id,name,sex) values(1,‘张三’,’男‘);

查询

  • 全列查询
select * from student;
  • 指定列查询
select id,name from student;
  • 查询去重
//查询去重后的数学成绩
select distinct shuxue from student

where条件

  • 比较运算
    在这里插入图片描述

  • 逻辑运算
    在这里插入图片描述 where语句使用

//此处使用的表为假想表,意思意思即可,能理解语句就行。

查询数学成绩大于60分的同学
select id,name from student where shuxue > 60;

查询语文成绩在80到90之间的同学
select name, yuwen from student where yuwen between 80 and 90;

查询英语成绩是 58 或者 89 或者 98 或者 99 分的同学及英语成绩
select name,yingyu from student where yingyu = 58 or yingyu = 89 or yingyu = 98 or = yingyu = 99;

select name,yingyu from student where yingyu in(58,89,98,99);

模糊匹配

  • % 匹配任意多个(包括 0 个)任意字符
  • _ 匹配严格的一个任意字符
查询名字为张某某的同学
select name from student where name like '张%';

查询名字为张某的同学(只有两个字)
select name from student where name like '张_';

排序

  • 升序 ASC (默认)
  • 降序 DESC
查询数学成绩升序的同学
select name,shuxue from student order by shuxue ;

查询英语成绩降序的同学
select name,yingyu from student order by yingyu DESC ;

筛选分页

  • 从 0 开始,筛选 n 条结果(LIMIT n);
  • 从 s 开始,筛选 n 条结果(LIMIT s, n);
  • 从 s 开始,筛选 n 条结果,比第二种用法更明确,建议使用(]LIMIT n OFFSET n)

更新

将张三同学的数学成绩变更为 80 分
update student set shuxue = 80 where name = '张三';

 将总成绩倒数前三的 3 位同学的数学成绩加上 30 分
select name, shuxue, yuwen + shuxue + yingyu 总分 from student
order by  总分 limit 3;

update没有where子句,则更新的是整个表

删除数据

删除名为张三的同学
DELETE FROM student WHERE name = '张三';
删除整张表
delete from student

截断表

TRUNCATE [TABLE] table_name
  1. 只能对整表操作,不能像 DELETE 一样针对部分数据操作;
  2. 实际上 MySQL 不对数据操作,所以比 DELETE 更快
  3. 会重置 AUTO_INCREMENT 项

聚合函数

在这里插入图片描述

 统计班级共有多少同学
 select count(*) from student;

 统计语文成绩总分
 select sum(yuwen) form student;

统计数学成绩平均分
select avg(shuxue) from student;

返回英语最高分
select max(yingyu) from student;

返回英语最低分
select min(yingyu) from student;

分组查询

在select中使用group by 子句可以对指定列进行分组查询

select column1, column2, .. from table group by column;
例:统计各个部门的平均工资
select avg(sal) from EMP group by deptno
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值