zoukankan      html  css  js  c++  java
  • sql server 基础语法4 实践练习+子查询

    drop table class
    create table class (
        classId nchar(6) primary key not null,
        cName nvarchar(20)
    )
    insert into class
    values('09033','自动化1班')
    insert into class
    values('09031','计算机1班'),
    ('09032','计算机2班'),
    ('09034','自动化2班')
    
    select * from class
    
    delete class where classId='09033'
    delete class where classId='09031'
    delete class where classId='09032'
    delete class where classId='09034'
    
    
    update class set cName='自动化3班'
    where classId=09034
    
    alter table student 
    alter column classId nchar(6)not null
    
    alter table student --给student的classId属性增加一个外键
    add constraint classId foreign key(classId) references class(classId)
     
    alter table student --删掉该外键约束
    drop constraint classId 
    
    --然后才能删掉class
    drop table class
    
    select * from course
    select * from score
    select * from student
    select * from teacher
    
    --检查学号为107的学生的课程名,任课老师
    select ci.cName,ti.teaName from student as si 
    inner join score as sco on sco.stuId=si.stuId
    inner join course as ci on ci.cId=sco.cId
    inner join teacher as ti on ti.teaId=ci.teaId
    where si.stuId=107
    
    --检索王同学不学习且不助教的任课老师和课程名
    select ti.teaName,ci.cName from course as ci
    inner join teacher as ti on ti.teaId=ci.teaId
    except (
    --王同学学习的课程及任课老师
    select ti.teaName,ci.cName from student as si
    inner join score as sco on sco.stuId=si.stuId
    inner join course as ci on ci.cId=sco.cId
    inner join teacher as ti on ci.teaId=ti.teaId
    where si.stuName like '王%'
    union 
    --王同学助教的任课老师的课
    select ti.teaName,ci.cName from course as ci
    inner join teacher as ti on ci.teaId=ti.teaId
    where ti.teaWork='助教' and ti.teaName like '王%'
    )
    
    --检索至少选修两门课程的学生学号
    select sco.stuId,COUNT(*) from score as sco
    group by sco.stuId having COUNT(*)>1
    

    --子查询 --按学号列出每个学生所选修课程中最高分的课程名称及其分数 select si.stuId,ci.cName,sco.score from student as si inner join score as sco on sco.stuId=si.stuId inner join course as ci on ci.cId=sco.cId inner join teacher as ti on ci.teaId=ti.teaId where sco.score>= ( select MAX(ssco.score) from student as ssi inner join score as ssco on ssco.stuId=ssi.stuId inner join course as cci on cci.cId=ssco.cId inner join teacher as tti on cci.teaId=tti.teaId where ssi.stuName=si.stuName ) order by si.stuId asc
  • 相关阅读:
    ecs云服务器 mysql经常自动停止挂掉重启问题分析
    mysql报错mmap(137428992 bytes) failed; errno 12,Cannot allocate memory for the buffer pool
    nodeJs的nodemailer发邮件报错hostname/IP doesn't match certificate's altnames怎么解决?
    js数组去重常用方法
    rsync远程数据同步工具的使用
    nginx报错 [error] open() “/usr/local/var/run/openresty.pid” failed (2: No such file or directory)
    webstorm使用问题总结
    正则表达式
    docker
    【转】90%的人会遇到性能问题,如何用1行代码快速定位
  • 原文地址:https://www.cnblogs.com/zsben991126/p/11828528.html
Copyright © 2011-2022 走看看