mysql之二(表中数据的增删查改)

演示数据库mysqltest 演示表 student
在看这篇文章之前我想解释一下sql语言的分类
DDL:数据库的定义,与数据库/表结构:create,drop,alter
DML: 数据操纵语言:操作表中数据 insert update delete
DCL:数据控制语言 设置访问用户的权限 安全
DQL:数据查询语言 select from where;
student 的表结构:
在这里插入图片描述

  • 表中数据的插入(insert)

    insert into student(sid,sname,sage) values("001","zhangsan",21);
    批量插入
    insert into student(sid,sname,sage) 
    values(002,"zhangsan",21),
    (003,"zhangsan",21),
    (004,"zhangsan",21),
    (005,"zhangsan",21);
    如果插入的是部分列 列名不能省略,如果是全部列 列名可以省略
    

    在这里插入图片描述
    在这里插入图片描述
    解决插入数据过程中 中文乱码问题;
    在这里插入图片描述

  • 表中数据的更新(update)

    update 表名 set 列名1=列的值,列名2=列的值 [where 条件]
    update student  set sname="李四" where sid=002;
    

    在这里插入图片描述

  • 表中数据的删除(delete)

     delete from 表明 [where 条件]
     delete from student where sid=001;
     
     删除表中的所有数据
     delete from student;
     
     delete和truncate的区别
     delete:属于DML,一条一条的将表中数据删除
     truncate:数据DDL,先删除表 再重建表 对表结构的影响;
     关于哪条执行效率高:具体要看表中的数据量
     如果数据比较少 delete
     如果数据比较多 truncate
    

    在这里插入图片描述
    在这里插入图片描述

  • 表中数据的查找(select)

    select [distinct] [*] [列名1,列名2] from表名 [where 条件]
    distinct 去除重复的数据
    查找表中的名字(不重复的)
    select distinct sname from student; 
    

在这里插入图片描述

  • 复杂查询(测试表 student(学生表 )grade(成绩表))
    学生表的结构
    在这里插入图片描述
    成绩表的结构
    在这里插入图片描述
列的别名的使用
select sage age from student;

在这里插入图片描述

表的别名的使用
select s.sage from student as s;

在这里插入图片描述

去掉重复的值
select distinct sage from student;

在这里插入图片描述

select运算查询+-*/都可以
select sage*1.5 from student;
select sage/1.5 from student;
select sage+10 from student;
select sage-10 from student;

在这里插入图片描述

条件查询
where 关键字
查询学号等于2的学生的姓名
select sname from student where sid=2;
查询学号不等于2的学生的姓名
select sname from student where sid <> 2;
	还有另外一种非官方写法
	select sname from student where sid != 2;
其他的条件还有
>= <= > < =

在这里插入图片描述

逻辑运算 or not and
select sid from student where sid>2 and sid<4;
select sname from student where sid = 3 or sid =4;

在这里插入图片描述
在这里插入图片描述

模糊查询 like
_:一个字符
%:多个字符
select * from student where sname like"x%";
select * from student where sname like"_i%";
select * from student where sname like"_i__";

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

排序查询
order by 
asc 升序 默认就是升序
desc 降序
根据年龄降序排列
select * from student order by sage desc;

根据年龄升序排列
select * from student order by sage asc;

在这里插入图片描述
在这里插入图片描述

聚合函数  where 后面不能跟聚合函数
获得学生的个数
select count(sid) from student;
获得学生年龄的和
select sum(sage) from student;
获得年龄的最大值
select max(sage) from student;
获得年龄的最小值
select min(sage) from student;
获得年龄的平均值
select avg(sage) from studnet;

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

向student添加claid的列
分组 group by
根据claid 分组
select claid,count(*) from student group by claid;
having 关键字可以接聚集函数 出项在分组之后 
where 关键字不可以接聚集函数 出现在分组之前
编写顺序
S F W G H O
 select ... from...  where...  group by... having... order by
执行顺序
F W G H S O

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值