• mysql03


    查询的列不在同一表中必须使用连接内连接,外链接


    -- 输出学生姓名以及对应的年级名称

    内连接
    select studentName,gradeName
    from student inner join grade
    on student.gradeId=grade.gradeId

    隐式内连接
    select studentName,gradeName from
    student,grade
    where student.gradeId =gradeID

    左外连接查询
    以left join左边的表为准,右表没有的数据返回null

    select studentName ,gradeName
    from student left join grade
    on student.gradeId=grade.gradeId

    右外连接查询
    以left join右边的表为准,左表没有的数据返回null

    select studentName ,gradeName
    from student left join grade
    on student.gradeId=grade.gradeId

    -- 查询考试课程编号为1 的学生姓名,以及年级名称和科目名称以及成绩

    select studentName ,gradeName ,subjectName ,studentResult
    from student s,grade g, subject b,result r
    where s.studentId=r.studentId,
    and r.subjectNO=b.subjectNo,
    and g.gradeId=s.gradeId ,
    and g.gradeId=b.gradeId ,
    and b.subjectNo=1


    临时表:只在当前连接可见,当这个连接关闭时,会自动ry删除,不会占用数据库空间。修改临时表数据不会影响原来表数据,因此如希望 验证某些修改表后的查询,又不想更改原表内容时,可以使用临时表备份原表数据,在临时表上做数据验证,当连接关闭后,系统会自动删除临时表。
    create temporary table 表名 (查询语句);


    自连接:
    把一个表当成多个表来使用,关键是使用别名。
    例 1        

    name      bumen     zhiwu
    张三      市场       员工
    李四      销售       经理
    王五      市场      经理

    使用自连接的方式 查询员工所在的 部门 经理 的 姓名


    select name from table where bumen =(
    select bumen from table where name='张三'
    ) and zhiwu='经理'

    例 2

    teacher 表
    id       name         tid
    1         导师1
    2         导师2
    3         老师1         1
    4         老师2         1
    5         老师3         2

    ---查询老师3的姓名和对应的 导师姓名


    t1 老师    t2 导师
    select t1.name as 老师名 ,t2.name as 导师名
    from teacher t1, teacher t2
    where t1.tid=t2.id
    and t1.name='老师3'


    例 3
    name     class      socre
    黑1       1           89
    黑2       1           6
    黑3       1           90
    白1       2           34
    白2       2           27
    白3       2           72


    a.查询分数前三名
    b.找出前三名并输出


    a. select * from table
    order by socre desc
    limit 0,3

    b. select * from table t1
    where (
    select count (1) from table t2
    where t1.socre <t2.socre
    and t1.class=t2.class
    )<3
    order by class ,socre desc

     

  • 相关阅读:
    Node.js 调用 restful webservice
    Node.js的集群功能以及在Express的配置
    Node.js 连接mySQL程序
    客户端连接Redis
    缓存的压力测试脚本
    搭建redis集群环境
    编译EXE文件的时候pcap编译不进去。 pyinstaller pcap pypcap 报错
    selenium(五)伪造浏览器
    selenium(四)操作cookie,伪造cookie
    selenium(三)浏览器操作
  • 原文地址:https://www.cnblogs.com/cuixiaomeng/p/7121520.html
Copyright © 2020-2023  润新知