• sql语句实现查询


        说明:该内容衔接上一篇的内容

        十八、子查询

    CREATE TABLE IF NOT EXISTS film (
    film_id smallint(5)  NOT NULL DEFAULT '0',
    title varchar(255) NOT NULL,
    description text,
    PRIMARY KEY (film_id));
    CREATE TABLE category  (
    category_id  tinyint(3)  NOT NULL ,
    name  varchar(25) NOT NULL, `last_update` timestamp,
    PRIMARY KEY ( category_id ));
    CREATE TABLE film_category  (
    film_id  smallint(5)  NOT NULL,
    category_id  tinyint(3)  NOT NULL, `last_update` timestamp);

    使用子查询的方式找出属于Action分类的所有电影对应的title,description

    实现语句:
    select f.title,f.description
    from film f
    where f.film_id in(
        select fc.film_id
        from film_category fc,category c
        where fc.category_id=c.category_id
        and c.name='Action'
                                );
    十九、获取执行计划
    获取select * from employees对应的执行计划
      实现语句:
      explain   select * from employees

     二十、创建表

      实现语句:

     create table actor(
      actor_id smallint(5) not null,
      first_name varchar(45) not null,
      last_name varchar(45) not null,
      last_update timestamp not null default (datetime('now','localtime')),
      primary key(actor_id));

     二十一、批量插入数据(注意数据的类型)

    insert into actor(actor_id,first_name,last_name,last_update)  values (1,'PENELOPE','GUINESS','2006-02-15 12:34:33'),(2,'NICK','WAHLBERG','2006-02-15 12:34:33');

    二十二、插入重复数据,忽略掉

    对于表actor批量插入如下数据,如果数据已经存在,请忽略,不使用replace操作

    实现语句:

    insert or ignore into actor
    values (3,'ED','CHASE','2006-02-15 12:34:33');

    知识补充:

    如果不存在则插入,如果存在则忽略
    INSERT OR IGNORE INTO tablename VALUES(...);
     
    如果不存在则插入,如果存在则替换
    INSERT OR REPLACE INTO tablename VALUES(...);
     
    这里指的存在表示的是unique属性的列值存在的情况下,unique表示键值唯一
    二十三、更新数据
    语法:update 表名  set  字段名=值;
    (1)无条件更新:
     
        update sc  set  grade=grade+10;
      
    (2)有条件更新:
       
        update sc  set grade=grade+10 where sno=10;
        update  sc  set  grade=grade+10 from sc   join student s on  s.sno=sc.sno where sc.name='计算机系';

    二十四、删除数据

    语法:delete  from 表名

    (1)无条件删除:

       delete from student;

      (2) 有条件删除:

       delete from  student  where sno='001';

    二十五、高级查询

    (1) 简单case函数

     语法:case 所计算表达式

                when 被比较的表达式或者是具体值   then  结果值

                [.......n]

                else  比较结果均不为true的返回的表达式

                end   

    (2)搜索case函数

    语法:case

               when  比较表达式   then  结果值

               [.....n]

               else  比较结果均不为true的返回的表达式

               end

     (3)子查询

        如果一个SELECT语句嵌套在另一个SELECT、INSERT、UPDATE或DELETE语句中,则称为子查询或内层查询;而包含子查询的语句称为主查询。


       子查询通常用于满足下列需求 :
          把一个查询分解成-系列的逻辑步骤;
          提供一个列表作为WHERE子句和IN、EXISTS、 ANY、ALL的目标对象;
          提供由外层查询中每-条记录驱动的查询。


       子查询通常有几种形式:
       WHERE列名[NOT] IN (子查询);
       WHERE列名比较运算符(子查询);
       WHERE EXISTS(子查询)。

  • 相关阅读:
    配电房环境智能监控系统:守护电力设施,保障安全运行
    淘宝店铺所有商品api、店铺商品列表、店铺列表接口
    微服务间通信重构与服务治理笔记
    【深度学习】图像分割概述
    kaggle竞赛实战6——方案优化之交叉验证
    Git使用详细教程
    【案例实战】SpringBoot整合阿里云文件上传OSS
    推荐系统-召回-概述(五):一切为了业务
    【开题报告】基于uni-app的恋爱打卡app的设计与实现
    跟人一样,手机太烫也会“生病”!如何给太烫的手机降温
  • 原文地址:https://blog.csdn.net/linshenshijianlu/article/details/77864641