Mysql知识02

Mysql的基本查询

mysql数据库的增删改查
  1. 数据库的基本查询

语法:select 查询的内容 from 表 where 条件1 and 条件2 ……

    例如:-- 1查询student表里所有的学生姓名
        select username from student 

    -- 2查询指定列的别名(通过as来定义别名)
        select userid as '学号',username as '姓名' from student;

    -- 3计算列
        select age+5 from student  //数字列是个进行计算的
        select concat(username,"韩梅梅") from student  //非数字列调用方法进行追加拼接

    -- 4去掉重复查询学生姓名(distinct)
        select distinct username from student   //去重用distinct关键字

    -- 5查询指定行数的数据(limit)
        select * from student limit 0,5
        //采用limit关键字来约束想要查询的具体行数信息,在后期分页功能时会经常用到

    -- 6范围查询18-22岁所有学生信息 (between and  | >= <=)
        select * from student where age>=18 and age<=22  //采用运算符方式
        select * from student where age between 18 and 22 //采用between 开始值 and 结束值查询

    -- 7等值判断查询18-22岁所有学生信息(in | noy in)
        select * from student where age in (18,19,20,21,22) //采用in/not in 来进行等值判断

    -- 8模糊查询(like)
        select * from student where username like '%李%' //查询名字中包含李字的所有人信息
        select * from student where username like '_李%' //查询名字第二个字是李的人信息
        注意:%表示任意长度的字符;_下划线只表示一位任意字符
    -- 9排序(order by 组别 asc默认升序 | desc降序),查询2班的所有学生姓名并按照学号降序排序
        select userid,username from student where classid='2班' order by userid desc
  1. 数据库的新增
    语法:insert into 表名 (字段1,字段2,字段3……)values(值1,值2,值3……)
    注意:值和字段要一一对应

     -- 1新增一条学生信息
         insert into student (username,sex,age,classid)values(“李华”,"男",18,"2班") //注意在建表的时候,id是唯一的,所以一般设置成主键和自动增长,所以插入数据时可以不用加id
     -- 2如果表中有时间字段,新增一条带有时间的数据
         insert into student (username,sex,age,classid,updateTime)values(“李雷”,"男",18,"2班",now()) //通过调用now()方法获取现在计算机的系统时间
    
  2. 数据库的更改
    语法: update 表名 set 字段1=新值1,字段2=新值2,……where 条件

  3. 数据库的删除

    语法:delete from 表名 where 条件表达式"

聚合函数

作用进行统计,返回单行数据
函数:sum(),count(),max(),min(),avg()

例如:
    select count(userid) as '计数总人数'
    select sum(userid) as '总和'
    select max(age) as '最大值'
    select min(age) as '最小值'
    select avg(age) as '平均数'
分组统计

分组的关键词:group by
对分组的结果进行筛选:having
执行顺序:from-> where -> group by -> select -> having -> order by

例如:-- 1查询2班所有男生的姓名和人数和年龄,按升序排序并按照年龄分组显示
        select age,username,count(userid)  from student where classid='2班' group by age,classid having sex='男' order by userid asc
    -- 2选择计数 case when then 如果……就选择……否则就选择……
        --如果为男则取1,否则取0
        select count(case sex='男' when 1 then 0 end) as '男' from student
多表操作
子查询
  1. select中嵌套

      -- 查询所有学生的信息以及班级名称
         select * ,(select classname from class where class.classid=student.classid) as '班级名称' from student
    
  2. from中嵌套

     -- 查询李姓同学的最大分数
         select max(score) from (select * from student where username like '李%')
    
  3. where 中嵌套

     --查询分数大于60分的学生信息
         select * from student where userid in( select userid from score where grade>60)
    
表联接
  1. 内联接 inner join -> join
    语法:select 列名 from 表1 join 表2 on 表1.共同列名=表2.共同列名

    例如: select grade from student s [inner] join score sc on s.userid=sc.userid
    
  2. 外联接

  • 左外联接
    用法:left outer join 或者 left join

      例如:select grade from student s left join score sc on s.userid=sc.userid
    
  • 右外联接
    用法:right outer join 或者 right join

      例如:select grade from student s right join score sc on s.userid=sc.userid
    
  1. 自联接
    用法可以使用内联接或者外联接,但所联接的时同一张表
写在最后:本篇博客对接上一篇mysql的基础知识适合零基础人员学习,主要介绍了mysql的一些数据库表的相关操作。下一篇博客将推出数据库的存储过程和触发器。
本文作者纯手敲,觉得不错点个赞吧,有什么错误和建议欢迎私信作者共同探讨哦!
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值