当前位置:数据库 > Oracle >>

Oracle_DAY 02操作语句

Oracle_DAY 02操作语句
 
 where 子句-----限制行的返回
     1.符合where后条件的数据返回,不符合where后条件的就过滤掉
     查询工资大于1200的first_name,salary
     select first_name,salary 
         from s_emp
             where  salary>1200;
 
     2.字符串和数字的对比
     查询工资等于2500的人的first_name 
     select first_name,salary 
         from s_emp
             where salary=2500;
     查询first_name是Carmen的工资
     select first_name,salary 
         from s_emp
             where first_name='Carmen';
     select first_name,salary 
         from s_emp
             where first_name='carmen';
     //no rows selected
 
     注意:字符串的值是区分大小写的,字符串是大小写敏感。例如:'a'   'A' 是不同的。
 
    3.sql中的运算(比较)符号
      <1>.逻辑比较运算符号
       =   < >  >= <=
      <2>.sql的比较运算符号
       between 低值  and  高值 
       表达一个闭区间[1500,2500],找出工资在[1500,2500]之间的first_name,salary 
       select first_name,salary 
           from s_emp 
         where  salary 
         between 1500 and  2500; 
 
      4. in (列表)
       列表  -----用逗号隔开的一组值
       找出id 是1或者是3或者是9的first_name,
       salary
       select first_name,salary 
           from s_emp  
         where id in(1,3,9); 
       in:列表中的顺序和数据组成相关
       把出现概率高的放前面 
 
       5.is  null ----判断一个值是不是NULL
       找出提成是NULL的first_name,salary
       select first_name,salary  from 
       s_emp where commission_pct is null;
 
       6.模糊查询
       like '字符串'
       龙  成龙   李小龙   龙孩儿  龙龙 
       找出所有的first_name 带a的,like '通配字符串'
       sql的通配符
       %   代表任意字符 0-n
       _   代表一个任意字符 1(能且只能是一个)
       select first_name from s_emp where
       first_name like '%a%';
       找出第二个字符是a的first_name 
       select first_name from s_emp where
       first_name like '_a%';
 
 
      1.数据字典表:
       user_tables   
       table_name  表名
       s_emp   s_dept  
       select table_name from  user_tables;
       把s_开头的表名列出来
       select table_name from  user_tables where table_name  like 's_%';
 
      2. 数据字段表把所有数据的值 默认处理成大写
       select table_name from  user_tables where table_name  like 'S_%';
       通配符的转义:
       select table_name from  user_tables where table_name  like 'S\_%' escape '\';
 
      3.条件连接符号
      c 和c++
       int  a=10;
       if(5<a<9){
          printf("shenma shidao");
       }
      与   and
      或   or 
      非   not 
      找出工资在[1500,2500]之间的
      first_name,salary
      select  first_name,salary from s_emp 
      where salary>=1500 and salary<=2500; 
 
      找出工资在(1500,2500)之间的
      first_name,salary
      select  first_name,salary from s_emp 
      where salary>1500 and salary<2500;
 
      找出id 是1或者是3或者是9的first_name,
       salary
      select first_name,salary from s_emp 
      where id=1 or id=3 or id=9;
 
      >              <=
      <              >=
      =              !=  ^=  <>
      between and    not between and 
      in             not in
      like           not  like
      is null        is not  null
 
      找出提成不是NULL的first_name,salary
      select first_name,salary from s_emp
      where manager_id   is  not null;
 
     4.条件的优先级问题
       那个sql语句查出的结果可能会多
 
order by 子句
     1.数据的排序
     order  by 肯定是出现在sql语句最后
     order  by  排序标准  排序的形式(升序 asc,可以省略,默认的顺序;降序 desc,不可省略,反自然顺序)
     按照工资排序 显示id,first_name
     select id,first_name,salary from s_emp  order by salary;
     等价于
     select id,first_name,salary from s_emp  order by 3;
     等价于
     select id,first_name,salary from s_emp  order by salary asc;
 
CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,