zoukankan      html  css  js  c++  java
  • sql语句之from子句

     如何从表中查询一个字端的数据

    select  字段名  from  表名;

    演示:从s_emp表中把月薪查询出来

    select  salary  from s_emp ; (分号代表结束)

    如何从表中查询多个字段的内容

    select  字段名1 ,字段名2  from  表名;

    演示:把s_emp表中的id  first_name salary的数据查询出来

    select  ID , FIRST_NAME , SALARY from  s_emp ;

    如何查询表中所有字段对应的值

    标准写法:一个一个列出来

    简单写法:*号可以代替所有的字段名(但是这样不知道里面有哪些字段)

    select *  from  表名;

    字段的数学运算(sql的数学运算)

    + -  *  / 

    演示:把s_emp 表中工资和工资减去100之后的工资显示出来

    select salary , salary - 100  from  s_emp ;

    这样输出后,底层记录的salary是没有变化的

     

    以salary+100算出一年的年薪:

    select salary , 12*(salary + 100) from  s_emp ;

    一个月按照22天算,计算每天的薪水:

    select salary , salary / 22  from  s_emp ;(除数不会取整,和C不一样)

    给字段起别名

    select  字段名1 ,字段名2  别名  from  表名;

    一个字段或者表达式只能有一个别名(也可以没有),别名会自动处理成大写

    “别名”会原样显示所取的别名

    演示:一年按照13个月计算  来计算每个人的年薪,列出每个月的月薪

    select salary , salary*13  yearsal  from s_emp ;

    两个别名会报错:

    sql中如何表达字符串

    sql中的字符串使用单引号表达(C里使用双引号表达字符串字面值)

    ‘ ‘   ‘  ‘   ‘a’  ‘hello world’ 都是字符串

    select  first_name  from s_emp ;也是字符串 

    如何拼接字符串

    字符串拼接符:| |(只针对oracle,其他的可以查一下)

    演示:

    select first_name , last_name  from  s_emp ;

    把名字拼接到一起:

    select first_name || last_name  name  from s_emp ;

    在姓名之间拼接一个单引号

    (在C语言中表达‘%’是%%,一个%就是占位符,%d;这里是一样的,用两个 ’ 表示单引号)

    select first_name || ‘ ’’ ’ || last_name name  from  s_emp ;

    在姓名之间拼接两个单引号

    select first_name || ‘ ‘’ ’ || ‘ ‘’ ’|| last_name  name from  s_emp ;

    或者:

    select first_name || ‘ ‘’ ‘’ ’ || last_name name  from  s_emp ;

    空值(NULL值)的处理

    空值(NULL值)和任何值做运算结果都是NULL

    演示:一年按照12个月进行计算,考虑提成,总共的年薪是月薪乘以12,再加上提成(表中已有的的提成是COMMISSION_PCT)    

    salary*12+salary*12*(COMMISSION_PCT / 100)

    或者:

    salary*12*(1+COMMISSION_PCT / 100)

    空值处理函数:nvl ( par1 , par2 ) 

    可以处理任何类型的数据,但要求par1和par2的类型保持一致

    这个函数,当par1为空时,返回par2的值;par1不为NULL时,返回par1的值

    NULL要尽早处理

    演示:

    select  salary , commission_pct , nvl ( salary*12*(1+commission_pct/100) , 0 )  from  s_emp ;

    是不行的,要尽早处理,不能等着运算完再处理

     

    正确写法:

    select  salary , commission_pct , salary*12*(1+nvl ( commission_pct , 0 ) /100)  from  s_emp ;

     

    演示:把每个员工的id  first_name manager_id显示出来,如果manager_id是NULL,就把manager_id显示成-1

    select id, first_name, manager_id, nvl(manager_id, -1)

    数据的排重  distinct(封装的算法我们不用了解)

    dstinct会把所有重复的数据剔除

    联合排重(多字段排重,要两个字段都相同的才会剔除)

    演示:

     select  salary from  s_emp ; 查出所有薪水

    select  distinct  salary from  s_emp ; 把重复的剔除

     select  distinct  title , salary  from s_emp ;联合排重

  • 相关阅读:
    【转】Java并发编程:并发容器之ConcurrentHashMap
    【转】Java HashMap的死循环
    【转】ArrayList与LinkedList的区别和适用场景
    【转】浅谈Java中的hashcode方法
    【转】HashMap实现原理及源码分析
    【计算机二级C语言】卷015
    【计算机二级C语言】卷014
    【计算机二级C语言】卷013
    【计算机二级C语言】卷012
    【计算机二级C语言】卷011
  • 原文地址:https://www.cnblogs.com/cjaaron/p/9204737.html
Copyright © 2011-2022 走看看