zoukankan      html  css  js  c++  java
  • MySQL简单的查询语句

    一、建立teacher和student表

    create table teacher(
    tid int unsigned auto_increment primary key,
    tname varchar(10),
    tdesc varchar(10)
    )auto_increment = 1;

    insert into teacher values(null,'关老师','音乐教授'),(null,'张老师','数学教授'),(null,'李老师','语文教授'),(null,'刘老师','英语教授'),(null,'王老师','计算机教授');
    select * from teacher;
    ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
    create table student(
    sid int unsigned auto_increment primary key,
    sname varchar(10),
    sbirthday char(8),
    sdept varchar(10),
    stid int unsigned,
    sscore int unsigned,
    constraint tsfk foreign key(stid) references teacher(tid) on delete set null on update cascade        --添加外键
    ) auto_increment = 15100;

    insert into student values(null,'成龙','19660912','计算机科学与技术','1','100'),(null,'李连杰','19630112','美术','3','90'),(null,'刘德华','19611111','互联网工程','2','99'),
    (null,'李成林','19660912','数学','4','90'),(null,'张成龙','19850912','计算机科学与技术','1','90'),(null,'刘龙','19770923','计算机科学与技术','4','92'),
    (null,'李成龙','19660912','英语','5','91'),(null,'张居正','19550912','数学','2','99'),(null,'王龙','19970616','互联网工程','1','67'),
    (null,'李成功','19660912','语文','1','89'),(null,'张居','19620312','音乐','3','100'),(null,'成飞龙','19690928','美术','2','94'),
    (null,'李树林','19660912','美术','2','70'),(null,'张正','19630712','美术','4','88'),(null,'关龙','19540113','数学','4','83'),
    (null,'李森林','19660912','计算机科学与技术','3','60'),(null,'张良','19621112','物理','5','77'),(null,'关羽','19780827','语文','3','96'),
    (null,'李林','19660912','音乐','4','100'),(null,'张飞','19220912','计算机科学与技术','5','89'),(null,'刘备','19790718','计算机科学与技术','1','100'),
    (null,'李成','19660912','计算机科学与技术','5','80');
    select * from student;

    ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
    -- select查询语句
    select sid ,sname ,sdept from student;
    -- 列别名
    select sid 学号,sname 姓名,sdept 专业 from student;
    -- 表别名
    select s.sid from student s;
    -- 查询条件
    -- 普通条件 = < > <= >= != <> and or not
    select * from student where sdept = '计算机科学与技术' and sscore >= 70;

    select * from student where sdept <> '计算机科学与技术';

    -- between and not between and
    select * from student where sbirthday between '19660101' and '19970909';
    select * from student where sbirthday not between '19660101' and '19970909';

    -- in()  not in()
    select * from student where sdept in('美术','数学');
    select * from student where sdept not in ('美术','数学');

    -- is null is not null查询是否为空

    select * from student where sscore is null;

    -- 模糊查询 like _一个任意字符 %0个或多个任意字符
    select * from student where sname like '李%';

    select *from student where sname like '__';-- 查询名字是两个字的姓名

    -- 查询排序

    select sscore from student order by sscore asc;

    select sname 姓名,ifnull(round(sscore),0) 分数 from student order by sscore desc;
    -- 限制结果行 limit 分页使用
    select * from student order by sscore asc limit 5;
    select * from student order by sscore desc limit 0,3;

    -- 分组查询

    select distinct sdept from student ;

    select count(distinct sdept) from student;

    select sdept 专业,count(*) 人数,max(sscore) 最高分,min(sscore) 最低分,avg(sscore) 平均分 from student
    group by sdept;

    -- where 查询条件 having 是分组条件在 group by 后
    select sdept , count(*), max(sscore),min(sscore),avg(sscore)
    from student where true
    group by sdept having avg(sscore)<80 order by avg(sscore) desc limit 5;


    -- 查询显示等级
    select sid 学号,sname 姓名,sdept 专业,sscore 成绩,if(sscore>=90,'优秀',if(sscore>=80,'良好',if(sscore>=60,'及格','补考'))) 等级
    from student;

    -- 子查询


    select t.dj 等级,count(*) 人数
    from
    (select sid,sname,sdept,sscore,if(sscore>=90,'优秀',if(sscore>=80,'良好',if(sscore>=60,'及格','补考'))) dj
    from student
    ) t
    group by t.dj;

    -- 错误
    select * from student where sscore = max(sscore);

    -- 利用子查询,实现结果
    select * from student where sscore = (select max(sscore) from student);

    ----------------------------------------------------------------------------------------------------------------------------------------------
    -- 高级查询 连接查询

    select * from student a,student b;

    -- 请查询 学号 姓名 成绩 代课老师名称
    select s.sid,s.sname,t.tname
    from student s join teacher t on t.`tid` = s.`stid`;

    -- select s.sid,s.sname,t.tname from student s left join teacher t on t.tid = s.stid

  • 相关阅读:
    Django
    from appium import webdriver 报错
    myEclipse下Maven配置操作
    Spring框架实现——远程方法调用RMI代码演示
    普通方法实现——远程方法调用RMI代码演示
    Spring转账业务_注解配置事物控制
    Spring转账业务_XML配置事物控制
    Spring通过XML方式实现定时任务
    Spring通过注解方式实现定时任务
    IDEA使用操作文档
  • 原文地址:https://www.cnblogs.com/zxwen/p/9484043.html
Copyright © 2011-2022 走看看