MySQL高级查询

1.EXISTS子查询 

   DROP TABLE IF EXISTS temp;#检测temp表是否已经创建

      CREATE TABLE temp(.......);

   语法  SELECT .....FROM 表名 WHERE EXISTS(子查询);

      为TRUE有返回结果,为FALSE无返回结果,外层查询不执行。

(注:只出现在子查询中而没有出现在父查询中的列不能包含在输出列)

2.多表查询

     内连接

     SELECT ...  FROM  表1  INNER JOIN  表2  ON.......等价于  SELECT .... FROM  表1,表2  WHERE...

     SELECT`student`.`studentName`,`result`.`subjectNo`,`result`.`studentResult`

     FROM   `student`,`result`

     WHERE  `student`.`studentNo` = `result`.`studentNo`;

     SELECT  S.`studentName`,R.`subjectNo`,R.`studentResult`

     FROM   `student` AS S

     INNER JOIN `result` AS R ON  (S.`studentNo` = R.`studentNo`);

    

 ② 三表内连接

     SELECTS.studentName AS 姓名,SU.subjectName AS 课程,R.studentResult AS 成绩

     FROMstudent AS S

     INNER JOIN `result` AS R ON  (S.`studentNo` = R.`studentNo`)

     INNER JOIN `subject` AS SU ON(SU.subjectNo=R.subjectNo);

    

 外链接:左外连接

    SELECT   S.studentName,R.subjectNo,R.studentResult

     FROM   resultAS R

     LEFT JOIN student AS S

     ON S.studentNo = R.studentNo;

    

 ④右外连接

     SELECT图书编号,图书名称,出版社名称

     FROM 图书表

     RIGHT JOIN 出版社表

     ON 图书表.出版社编号 出版社表.出版社编号;

3.视图

   ①基本概念:视图是一张虚拟表,表示一张表的部分数据或多张表的综合数据。

   创建视图:CREATE VIEW view_name AS <SELECT 语句>;

   删除视图:DROP VIEW[IF EXISTS]view_name;

   查看视图:SELECT 字段1,字段2,....FROM view_name;

 




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值