数据库——操作数据库语句(select单表查询)

前两天又装了oracle,开始再次学习数据库,希望这次可以系统的学习,主要是语句的学习。

数据库操作语句SQL

一、select    查询语句

二、DDL  数据  定义  语句(create、drop、alter)

三、DML 数据 操作 语句(insert  delect  update)

四、TCL  事务 控制   语句(commit 提交、rollback 撤销 、savepoint 保存)


一、SELECT
    1、select 字段名1,字段名2,字段名3 from 表名;  
    2、*代表所有的字段名,不推荐。(效率差一点)
    3、字段或者表达式
            +  -  *  /
         select salary,14*salary  from s_emp;
       一个月涨500之后,再显示:
         select salary+500,14*(salary+500)from s_emp;
    4、不让显示——起别名  空格。
         select salary+500   sal,14*(salary+500) Y_sal from s_emp;
    5、字符串怎么解决:单引号

    6、把两个字符拼接起来:||
         select  first_name || last_name  name  from  s_emp;

         用下划线隔开:

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

    7、特殊拼接:拼接一个单引号(转义的思想)

         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;

         两种方法都是对的。


   7、空值(null)的处理:(空值和任何值做运算 都是空值)
      select  salary sal ,
         salary*12(1+commission_pct)/100
              from  s_emp;
      nvl(part1,part2)  null值处理函数
          当part1为空值,就返回part2
          若part1不为空,就返回part1
      NULL要早点处理
      select  salary sal ,
         nvl(salary*12(1+commission_pct)/100,
              100) from  s_emp;

   8、把s_emp表中的manager_id查询出来,如果manage_id是空  就显示成-1;
      select  nv1(manager_id,-1)  from s_emp;

   9.数据的排重:distinct
     select salary from s_emp;
     select distinct salary from s_emp;

   二、where 语句
      1、作用:限制表中的行数剧,返回。
      2、两个
         from  表名 where 1=1;
         from  表名 where 1=2;
       --   代表单行注释

         把s_emp表中salary大于1400员工信息显示出来
                select * from s_emp where salary>1400;
         把s_emp表中salary大于1400员工信息显示出来
                select * from s_emp where salary=1400;
         把s_emp表中name叫CAI员工信息显示出来
                select * from s_emp where name='CAI';
         
      3、常见的条件运算符: =  > <  

      4、sql提供的运算符:
          4.1  表达式表达一个闭区间;[a,b]   between  a and b;
               把s_emp表中工资在1000到1500之间的员工信息
        显示出来
                select * from s_emp where salary between 1000 and 1500;
          4.2   表达式表示一个范围的取值:in
                where  id  in(2,5,7);
          4.3   模糊查询  like
                where  name  like '李%';
                where  name  like '%小%';
          4.4   特殊的转义处理: _和%
                where  name  like 'S\_%' escape '\';
                找出所有__开头的表名
                where  name  like 'S\_\_%' escape '\';

 三、空值的判断:  is  NULL
          1、找出提成是10的员工:
               select  id  from s_emp  where commission_pct = 10;
          2、找出提成不是10的员工:
               select  id  from s_emp  where commission_pct != 10;
          3、找出提成是NULL的员工:
          select  id  from s_emp  where commission_pct is  NULL;

总结;模糊查询 、空值的判断、。。。

      
     7.7 逻辑条件:
         and   where salary >=1400  and  salary <=2500;  
         or     
         not    
 
 八、数据的排序: order by  排序标准  排序方式(desc);
     按照一定的排序标准把数据按照升序或者降序的次序进行排序
             升序:默认  asc
             降序:desc
     
     排序中的NULL是如何处理的 :作为最大值。

查询的第四部分
 

    

一、单行函数
        特点:针对SQL语句的每一行,都返回一个结果。
   多行函数(组函数):
        特点:针对SQL语句的一组数据,都返回一个结果。
     eg:upper(part1)   字母变大写(单行函数)
         select  first_name,upper(first_name)
                 from  s_emp  where  id = 1;   一行
         select  first_name,upper(first_name)
                 from  s_emp  where  id < 1;   无结果
         select  first_name,upper(first_name)
                 from  s_emp  where  id > 1;   24个结果
 
         count(part1)   统计函数(组函数)
         select  first_name,count(first_name)
                 from  s_emp  where  id = 1;   出现错误
         select  count(first_name)
                 from  s_emp  where  id = 1;   正确  1
         select  count(first_name)
                 from  s_emp  where  id < 1;   0
         select  count(first_name)
                 from  s_emp  where  id > 1;   24


     1.3 测试表:dual
         单行单列的表
             select * from dual;
             select upper('hello')  from dual;
     1.4  处理字符串的单行函数
        大写  upper(part1)   select upper('hello')  from dual;
        小写  lower(part1)   select upper('HELLO')  from dual;
        首字母大写   initcap(part1)    select initcap('hello  world')  from dual;
        长度  length(part1)  select length('hello')  from dual;          
        连接  concat(part1,part2)   select concat('hello  world')  from dual;
              || 作为连接更加方便   select  first_name||last_name  name  from  s_emp;
        截取函数  substr(part1,part2,part1)
                part1:字符串
                part2:数字,从哪位开始截取,编号从1开始截取(C中是从0开始)
                part2:截取长度
    
        替换   replace(part1,part2,part1)
                part1:要处理的字符串
                part2:要被替换的内容
                part2:被替换成的内容
        to_char(part1,part2)
                part1:要处理的数字
                part2: 格式
                   ‘格式’:
                     fm:格式的开头
                      0:小数点前代表前置导零
                      9:0到9数字
                      ,:分隔符 千位
                      .:小数点
                     ¥:rmb
                      $:美元
            eg:select  to_char(12345,'fm$099,999.99') from dual;
               select  to_char(12345.23,'fm$099,999.00') from dual;
        按照如下格式显示工资:
           ‘fm$099,999.00’
               select  id,first_name,to_char(salary,‘fm$099,999.00’)  from  s_emp;

         1.8  处理数字函数:
              round(part1,part2)  四舍五入
                    part1:要处理数字
                    part2:默认0代表取整
                          1代表保留小数点后一位
                          -1代表对小数点前一位进行   四舍五入
                  select   round(2.54) from dual;
                  select   round(2.54,1) from dual;
                  select   round(2.54,-1) from dual;

             trunc  截取函数(用到的更多)
              trunc(part1,part2)  截取(数字,字符串等等)
                    part1:要处理数字
                    part2:默认0代表取整
                          1代表保留小数点后一位
                          -1代表对小数点前一位进行   截取
                  select   trunc(2.54) from dual;
                  select   trunc(2.54,1) from dual;
                  select   trunc(2.54,-1) from dual;
 
         1.9函数嵌套:把一个函数的返回值作为另一个的嵌套。
                      select  concat (concat('a','b'),concat('c','d'));
                      显示first_name 的后三个字符  length  substr
                  select  first_name,substr(first_name,length(first_name)-2,3)
                          from  s_emp;




附:

数据库连接


创建表



查询语句


desc   显示表:










  • 3
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值