• Java笔记(11)-----数据库


    SQL语句


    DDL:表和数据库等对象操作的SQL语句
        Data Defined Language
    DML:对数据操作的SQL语句
        Data Manage Language
    DCL:对数据的控制(权限)的SQL语句
        Data Controll Language


    查询:
    单表查询


       select 列1,列2...from 表名 where 列=值
                    显示的列             表                 行
       A、列1:一定要是表里存在的
                 * :所有列(建议少用,数据一多会让代码运行起来更慢)

    举个例子给大家看:

    1. 查询全体学生姓名,显示sname

    2、查询性别为男的同学,显示sno,sname,ssex,sage,mgr

      


     B、条件运算符:=是否等于 != >= <=  < >
             逻辑运算符:&& and   || or    !
             特殊运算符:
            模糊查询运算符  like        通配符 %(代表所有)
                    以'南%'    '%南'
                    包含'%南%'

    1. SELECT * FROM train_station WHERE stationid LIKE '南%';
    2. SELECT * FROM train_station WHERE stationid LIKE '%南';
    3. SELECT * FROM train_station WHERE stationid LIKE '%南%';


            between 值1 and 值2:在值1值2之间   类似 列>= 值1 and 列<=值2
            is 空     is null     is not null 空指针
                 =' '空字符串
            in(值1,值2) 在..里面

    例子:

    3、查询年龄在22岁和26岁之间的同学,显示sno,sname,sage


      


     C、order by 列 排序
           默认升序 asc可以不写     desc
           order by stationid
           order by stationid desc

    例子:

    4、查询所有同学的信息,按照姓名降序排序,并显示6到10行

    5、查询A1科目的所有同学成绩,按照成绩升序,并显示5行

     

     提一嘴:limit用法  请继续向下看

      


     D、limit start , size     start第几行开始  计数为0开始 长度
            放最后面
            eg:-包含南的车站,站名降序,取前三行
            SELECT * FROM train_station WHERE stationid LIKE '%南%' ORDER BY stationid DESC LIMIT 0,3 ;
      


     E、常见函数
            正常的函数 :len 四舍五入 round
            聚合函数(统计函数):count sum avg max min

    6、查询A3科目的最高分,显示grade

    7、查询A4科目的最低分,显示grade

    8、查询AF开头的同学数量;


    联表查询

    思路引导:
        经过某地的车次
        查询类型为D-动车的车次
        已知:        类型:           D-动车
        分析:    动车类型表        train_number_type
        求:        车次信息           train_number
        关系        同一字段(列) ntid 车次类型

        两张表------>关系------->条件
        select * 
        from train_number_type, train_number 
        where     train_number_type.ntid = train_number.ntid
        and  train_number_type, train_number = 'D-动车';

        A、train_number.*
        B、表名或列表
            train_number_type as a
            as可缩略不写

          inner join 表 on 关系
        
          select*
          from 表1
          inner join 表2 
          on 表1.字段 = 表2.字段
          where 条件

    敲重点注意掌握:
        A、内连接inner join        on
            inner可以省略
            交集运算

        B、外连接outer join        on
            a.左外连接  left outer join          on
            b.右外连接   right outer join       on
            outer可以省略

            from 左表       join 右表
    例子:    

    8、查询A1科目不及格同学的信息:显示sno,sname,cno,cname,grade


    分组统计查询

        count sum max min avg
        --查询订单数的条数
        select count(*)from train_order;
        --查询每个人的订单条数
        group by 列名
    子查询(嵌套查询)


            本篇文章写的可能有些不全,等后续有空再进行补充,如果觉得有用的话点赞加收藏哦,不然后期找不到啦!

  • 相关阅读:
    摸鱼网站分享,别再上班无聊等下班
    iOS App 上架指南及关键
    认识C语言函数
    cesium 鹰眼图1
    【服务器04】之【Navicat连接阿里云】
    RHCE8练习题
    C 语言共用体(Union)
    【Java面试】这么回答提升30%的面试通过率,ThreadLocal出现内存泄露吗?
    【pc与移动端适配小tip】使用scss做vh,vw单位适配,scss的mixin与function方法
    Java—简单斗地主(集合练习)
  • 原文地址:https://blog.csdn.net/weixin_47314602/article/details/127596631