• SQL语句基础知识


    1、关于SQL语句中exists与not exists的问题

    course表如下:
    课程代号 课程名称
    K01 奥运会主题曲
    K02 喜爱的专辑
    K03 VB技术大全
    K04 经典歌曲
    K05 个人单曲
    K06 数据结构
    K07 最受欢迎的歌曲
    grade表如下:
    学号 课程代号
    B003 k03
    B005 K02
    B003 K05
    B004 K04
    B002 K02
    B001 K01
    B001 K06
    现用SQL语句(1)查询:
    select * from course where not exists(select * from grade where grade.课程代号=course.课程代号)
    得到结果为:
    K07 最受欢迎的歌曲

    EXISTS或者NOT EXISTS是把主查询的字段传到后边的查询中作为条件,返回值是TRUE或者FALSE。EXISTS TRUE,那么就是查询条件成立,结果会显示出来。
    NOT EXISTS TRUE,则为FALSE,查询连接条件不成立。
    select * from course where not exists(select * from grade where grade.课程代号=course.课程代号)
    这个语句,是查询course表中课程代号在grade中没有出现的数据。
    看看grade表,课程编号有K01到K06,而COURSE表,有K01到K07,那么K07在GRADE表是不存在的,那么,是符合条件的。
    同样select * from course where exists(select * from grade where grade.课程代号=course.课程代号)
    则是查询COURSE的记录条件为编号在GRADE中存在。那么很明显,结果是K01到K06的数据。
    另外,EXISTS和NOT EXISTS的作用可以用IN或NOT IN实现,但是,效率要高。

    2、关于SQL语句中select 1 from table

      select 1 from 中的1是一常量(可以为任意数值),查到的所有行的值都是它,每行的列值是写在select后的数,这条sql语句中是1

    3、关于SQL语句中as的作用

    as的作用是取别名,如:

    SELECT * FROM Employee AS emp 这句意思是查找所有Employee 表里面的数据,并把Employee表格命名为 emp。 当你命名一个表之后,你可以在下面用 emp 代替 Employee.

    4、关于SQL语句中nvl函数

       select  sum(nvl(APS.PayPrincipalAmt,0) from ACCT_PAYMENT_SCHEDULE APS

       nvl(APS.PayPrincipalAmt,0)这个函数表示当APS.PayPrincipalAmt为空时默认值显示为0

    5、关于SQL语句中distinct的用法

    在表中,可能会包含重复值,关键词 distinct用于返回唯一不同的值,distinct必须放在开头

    a表如下:
    id     name
    1     a
    2     b
    3     c
    4     d
    5     a
    6     e
    7     c
    b表如下:
    xing          ming
    sta           man
    stam         an

     1)作用于单列

    select distinct name from a;

    查出的结果是

    a
    b
    c
    d
    e

    2)作用于双列

    select distinct xing, ming from b;

    sta           man
    stam         an

    6、关于SQL语句中concat的用法

    concat() 的语法:

    concat(字串1, 字串2, 字串3, ...): 将字串1、字串2、字串3,等字串连在一起

    Oracle的concat()只允许两个参数,在Oracle中,我们可以用'||'来一次串连多个字串

     b表如下:
       xing          ming
        sta           man
       east          _esf

    select concat (xing,ming) from b where xing='east';

    结果:

    east_esf

    Oracle数据库中:

    select xing || '' || ming from b where xing='east';

    结果:

    east_esf

     

     




  • 相关阅读:
    import 和 from … import 模块的变量、方法引用差异
    python引入模块的五种方式与内置模块
    webdriver定位元素的方法和基础函数的使用
    mysql update语句 in执行效率优化
    服务器配置jupyter notebook
    安装CUDA和cuDNN
    Linux命令后台运行
    Ubuntu查看系统信息(CPU、GPU信息)
    Linux下scp用法简析
    如何解决“This app is damaged and can’t be opened. You should move it to the Trash”
  • 原文地址:https://www.cnblogs.com/xijin-wu/p/5592068.html
Copyright © 2020-2023  润新知