mysql 04_章基本查询

当我们使用select查询语句向数据库发送一个查询请求,数据库会根据请求执行查询,并返回一个虚拟表,其数据来源于真实的数据表。
一、查询所有数据:所有的字段、所有的记录
    格式:SELECT * FROM 表名;
    举例:SELECT * FROM tb_student;
二、查询部分字段:
    目的:可以指定查询哪些字段、给数据表或字段取别名。
    格式:SELECT <字段名列表> FROM 表名;
    说明:<>表示其中的内容是必选项,[]表示其中的内容是可选项,{}表示其中的内容是枚举项。
    举例:SELECT student_no AS 学生编号,student_name AS 学生姓名,phone AS 电话号码 FROM tb_student;
    别名:使用AS或者空格就可以给数据表或字段取别名,若别名中包含特殊字符,mysql使用单引号包裹,oracle使用双引号,sqlsever使用方括号包裹。
三、查询部分记录:
    格式:SELECT <字段名列表|*> FROM 表名 [WHERE <筛选条件列表>];
    说明:
        1、筛选条件列表中多个条件之间使用OR、AND连接、取反NOT。
        2NULL 使用 IS NULL或IS NOT NULL,不能用=
    举例:SELECT * FROM tb_student WHERE student_no = "S01" OR sex = '';
          SELECT * FROM tb_student WHERE email is not NULL ;
          SELECT * FROM tb_student WHERE email is NULL ;
          SELECT * FROM tb_student WHERE email = '' ;
四、多表联合查询:隐式的内连接查询
    当某些数据在一个表中没有时,就需要针对多个表进行联合查询,才能获取到需要的数据,笛卡尔积
    
    举例:-- 在查询tb_student表的同时希望一并查询到grade_name
          SELECT * FROM tb_student sd,tb_grade ge WHERE sd.grade_id = ge.grade_id AND ge.grade_name = '一年级';
          /*两条语句效果一样*/
          SELECT * FROM tb_student sd INNER JOIN tb_grade ge     on sd.grade_id = ge.grade_id AND ge.grade_name = '一年级';
-- 左外连接查询,左边表中的数据会优先全部显示 SELECT * FROM tb_student sd LEFT JOIN tb_grade ge on sd.grade_id = ge.grade_id AND ge.grade_name = '一年级';
-- 右外连接查询,正好与左外相反 SELECT * FROM tb_student sd RIGHT JOIN tb_grade ge on sd.grade_id = ge.grade_id AND ge.grade_name = '一年级';
-- 全连接查询(显示左右表中全部数据) 左右中间用union连接 SELECT * FROM tb_student sd LEFT JOIN tb_grade ge on sd.grade_id = ge.grade_id AND ge.grade_name = '一年级' UNION /*union会去掉重复的数据,而union all会直接显示结果*/ SELECT * FROM tb_student sd RIGHT JOIN tb_grade ge on sd.grade_id = ge.grade_id AND ge.grade_name = '一年级'; -- 将四张表都关联一起查询, SELECT sj.*,sc.* ,ge.grade_name FROM tb_grade ge,tb_subject sj,tb_student sd,tb_score sc WHERE ge.grade_id = sj.grade_id AND ge.grade_id = sd.grade_id AND sc.subject_id = sj.subject_id AND sc.student_no = sd.student_no AND ge.grade_name = "一年级";



猜你喜欢

转载自www.cnblogs.com/zhangzimuzjq/p/11669705.html