zoukankan      html  css  js  c++  java
  • mysql02

    连接查询
    -- 查询课程名称 和年级的名称
    -- 非等值连接查询
    SELECT subjectname,gradeName FROM `subject`,grade
    -- 等值连接查询
    SELECT subjectname,gradeName 
    FROM `subject`,grade
    WHERE subject.gradeId=grade.`GradeID`
    
    -- 外连接  左外连接   以左表为准,右表中没有数据 返回null
    -- 查询课程名称,课时数还有年级名称
    SELECT subjectname,gradeName,classHour
    FROM `subject` s LEFT JOIN grade g
    ON s.gradeId=g.`GradeID`
    
    -- 外连接  右外连接   以右表为准,左表中没有数据 返回null
    SELECT subjectname,gradeName,classHour
    FROM `subject` s RIGHT JOIN grade g
    ON s.gradeId=g.`GradeID`
    
    --  自身连接查询
    CREATE TABLE IF NOT EXISTS teacher(
    id INT(10),  -- 老师自身的编号
    `name`  VARCHAR(20), 
    pid  INT(10)   --  老师对应的导师编号
    ) 
    
    -- 新增教师信息
    INSERT INTO teacher  
    VALUES
    (1,'老师1',5),
    (2,'老师2',5),
    (3,'老师3',5),
    (4,'老师4',3),
    (5,'老师5',3)
    
    -- 查询老师  和对应导师的姓名
    SELECT t1.`name` AS '老师姓名', t2.`name` AS '导师姓名' 
     FROM teacher t1,teacher t2
    WHERE t2.id=t1.pid 

    order by

    -- 查询 课程名称是  数据库结构-1 的所有考试成绩和学生的姓名  并且按照成绩降序进行查看
    --  order by 排序  默认是升序 asc  desc 降序  
    SELECT subjectName,StudentResult,studentName
    FROM `subject`,result,student
    WHERE
    student.`StudentNo`=result.`StudentNo`
    AND 
    result.`SubjectNo`=subject.`SubjectNo`
    AND
    subjectName='数据库结构-1'
    ORDER BY StudentResult  DESC
    limit
    -- 查询 课程名称是  数据库结构-1 的所有考试成绩和学生的姓名  并且按照成绩降序进行查看
    --  order by 排序  默认是升序 asc  desc 降序  
    --  分页  使用 limit  begin,pageSize 
    --  begin 从那一条数据开始    (当前页码-1)*pageSize
    --  pageSize  每页显示的数量
    SELECT subjectName,StudentResult,studentName
    FROM `subject`,result,student
    WHERE
    student.`StudentNo`=result.`StudentNo`
    AND 
    result.`SubjectNo`=subject.`SubjectNo`
    AND
    subjectName='数据库结构-1'
    ORDER BY StudentResult  DESC
    LIMIT 10,5  

    子查询

    -- 子查询   把自身的查询结果 当作 另一条查询语句的条件来使用
    -- 查询 课程名称是  数据库结构-1  并且分数不小于80分的学生姓名和学号
    SELECT  studentName,studentNo
    FROM student
    WHERE studentNo IN
    (SELECT studentNo
    FROM result
    WHERE 
    subjectno=(SELECT subjectno FROM SUBJECT WHERE subjectName='数据库结构-1')
    AND StudentResult>=80

    统计函数

    --  统计函数
    --   count() sum() avg()  min() max()
    SELECT
     COUNT(*) AS 总记录数,
     MAX(studentResult) AS 最高分,
     MIN(studentResult) AS 最低分,
     AVG(studentResult) AS 平均分,
     SUM(studentResult) AS 总成绩  
     FROM result
    -- 执行顺序
    FROMWHERE  条件
    GROUP BY 分组(列)
    HAVING 分组的条件
    SELECT 查询的内容
    ORDER BY 

    小练习:

    有个tb表

    字段如下

    要求实现的效果

    实现代码

    SELECT sex AS 性别,COUNT(sex) AS 人数
    FROM tb
    WHERE sex IS NOT NULL
    GROUP BY sex
    ORDER BY COUNT(sex) DESC
    
    
    
    SELECT sex AS 性别,COUNT(sex) AS 人数
    FROM tb
    WHERE sex IN('','')
    GROUP BY sex
    ORDER BY COUNT(sex) DESC
    -- 查询 mysql默认的事务隔离级别
    SELECT @@tx_isolation
    -- 改变事务隔离级别
    SET tx_isolation='Read-committed'
    
    
    -- 开启事务
    START  TRANSACTION
    
    -- 回滚  rollback
    
    -- 提交 commit
  • 相关阅读:
    full gc
    C#调用C++编写的DLL
    用C#调用C++DLL提示找不到DLL解决方法【转】
    VS2015 编写C++的DLL,并防止DLL导出的函数名出现乱码(以串口通信为例,实现串口通信)
    VS2015 C++ 获取 Edit Control 控件的文本内容,以及把获取到的CString类型的内容转换为 int 型
    VS2015 建立一个C++的MFC简易窗体程序项目
    C# 实现串口发送数据(不用串口控件版)
    STM32 HAL库的定时器中断回调函数跟串口中断回调函数
    把 Python 脚本打包成可以直接双击运行的 .exe 文件 【转】
    Python 实现把 .cvs 文件保存为 Excel 文件
  • 原文地址:https://www.cnblogs.com/xtdxs/p/7093812.html
Copyright © 2011-2022 走看看