码迷,mamicode.com
首页 > 数据库 > 详细

Oracle

时间:2017-10-25 19:39:58      阅读:201      评论:0      收藏:0      [点我收藏+]

标签:访问   logs   sys   concat   忽略   escape   tcap   开头   desc   

 

Oracle

今天开始接触oracle,2017-10-25 - 08:48:06

  • 使用的数据库是12c 版本的,
    • select sysdate from dual;   查询现在的年份及时间                                                                                                                                                        技术分享
  • 导入sql 文件, @d:/file.sql ;  就可以导入指定目录路径下的sql文件
  • 技术分享

     

  • sql 语句分为
  1. DML:数据操纵语言:包括sql 的增删改查
  2. DDL:数据定义语言:用于定义数据库的结构,比如:创建表,更改表结构,删除表,建立索引。删除索引等。
  3. DCL:数据控制语言:是用来控制数据库的访问:包括授予与撤销访问权限,提交事务以及回滚事务,设置保存点等
  • desc tableName;查看表的列的信息
  • select * from user_tables; 查看自己用户下的所有的表的视图;

 

DML 

select :查询关键字

  •   select * from tableName;从指定的tableName 表中查询全部的信息出来,* 表示全部。                                                                                                               技术分享frr表是自己创建的

     

  • select id from tableName;从制定的tableName表中查询指定的列,相较于上一个命令,这个的查询结果只显示了需要的列,指定的列名必须存在于表中,desc tableName可查看表列信息技术分享
  • sql 语言的大小写不敏感,sql语句可以分行来写,
  • 关键字不能被缩写,也不能分行写,大小写不敏感

 

  •   计算符号 + - * /    可用于类型为number 的列值 和 类型为date 的列值
    • 表的信息技术分享
    • 可以进行计算数字的运算结果,dual是一个伪表                                                                                                                                                          技术分享
    • 时间的计算使用:
      • y年
      • M月
      • d日
      • H 时在一天中的
      • m分
      • s秒
      • 下列中的时间的格式中的 MI和MM的区别
        •   MI是在现在的实时时间上加上指定的时间
        •        MM是表示月份与java中的时间有些差别
        • 技术分享
        • date函数的乘法和除法运算是无效的
  •  定义空值 null,凡是与空值参与的运算结果都为空,null不是0或者空格

    •   查询frr表,id为2 的懒蛋用户的money字段为空                                                                                                                                技术分享

      进行第二个命令 :select name,money,money*2 from frr;                                                                                                                         技术分享可见懒蛋用户的计算结果也为null,

 

为列名起别名。别名就是在家老爸老妈叫你的小名儿,为了方便我们可以为任何想改变的字段的名起一个小名儿。

  •   查询frr表,select id,name,money,time from frr;,所查询出来的表的字段默认为大写形式,
    • 技术分享
    • 再次查询此表,用别名的方式查询,在查询的时候可以使用as关键字来指定列的别名,也可以忽略使用as不影响,查询出来的列名默认为大写,如果想使用小写来显示,那么把别名用双引号引起来即可,如果两个单词想表示一个列的列名,那么使用双引号引起来一样有效,如下图
    • 技术分享
    • 连接符: ||, select name ||‘的出生日期是 :‘ ||time from frr;                                                                                                                                                             技术分享
    • 去除重复的内容:distinct,distinct必须放在最开头
      •   查询frr表,表中有两id,名字一样的名为 纯菜鸟的 行信息                                                                                                                          技术分享
      • 根据名字去重                                                                                                                                                                                                   技术分享
      • 有时候也会根据多个字段一起来判断重复的行进行去重                                                                                                                             技术分享

         

     

 

where条件查询: 在查找信息内容的时候可以用where进行条件的筛选

  现在表中的信息的情况如下

    技术分享

  我们将money等于100的查询出来:select * from frr where money = 100;where 关键字后面是跟的查询的条件

    技术分享

  具体的查询的条件的符号以及意思如下

    技术分享

  再查询money等于空值的信息:select * from frr where money = null ;这么进行查询的是不会的到结果的,因为这样查询的意思是这个字段的字符信息等于null,而不是为空,如果此字段为空的话用 is 关  键字,下图第一个查询是没有结果的,执行的是第二个查询出来的“懒蛋”

    技术分享

  where条件为字符或者日期格式的 ,需要用单引号引起来,单引号中严格区分大小写

  查询money字段大于100 小于10000的人的信息:select * from frr where money>100 and money <10000; 在这 新关键字 and 代表并列的一起,代表所查询的值的区间是大于100 与  小于10000的

    技术分享

  其他的比较运算符的关键字

    技术分享

  between--and--:查询money在100 与 10000之间的人的信息:select * from frr where money between 100 and 10000;,对照上一个查询就可以看出来,between-and 包含临界值

    技术分享

  in:查询money等于100 与等于1000的人的信息:

    方法一:select * from frr where money =100 or money =1000;   这里我们使用了 or 关键字,区别与上述的 and 关键字,or 关键字是或者的意思,意思就是,满足等于100 或者 满足 等于1000都会被    查询到

      技术分享

    方法二: 这里我们是用的in关键字,作用跟or关键字查询结果一样,但是in关键字不可以取一个范围的值,

      技术分享

  like:用于模糊查询的关键字,

    查询名字中带有“纯”字的人的信息出来:在图中的两种方式的出现的% 与 _ 做一下说明,%就是代表任意数量的字符,而_ 只代表以为字符,

      select * from frr where name like ‘%纯%‘;
      select * from frr where name like ‘纯__‘;

      技术分享

    如果我们想查询名字中带有 _ 得人的名字,

      select * from frr where name like ‘%_%‘; 这样会把所有人的名字全部查询出来,这时候_也是会被当做成任意一位的字符处理,显示结果如下

        技术分享

     正确姿势: select * from frr where name like ‘%/_%‘ escape ‘/‘;  escape 关键字规定的后面单引号中的内容为转移符,在这里  / 被定义为转移符,‘%/_%‘ 中 转移符/ 后的_ 就会被当作为一个普通的     字符进行处理

        技术分享

  order by: 用来排序的,可以按照不同的列名进行升序与降序的排序,asc 从小到大,desc 从大到小,默认为asc

    select * from frr order by money asc;
    select * from frr order by money desc;

    技术分享。。技术分享

  我们看到按照money排序后,出现两个money为100的,我们需要再次根据id从大到小排序的话,我们只需要在后面进行添加需要排序的字段以及对应的排序规则即可

    select * from frr order by money desc,id desc;

    技术分享

 

 

函数

 

         技术分享

                     技术分享

 

 大小写控制函数 : lower , upper , initcap,从下面就可以看出三个函数的功能

    lower:将大写字母全部转换为小写字母

    upper:将小写字母全部转换成大写字母

    iniecap:将每个单词的首字母进行转换大写处理

    技术分享

    如果我们不知道查询的用户的名字或者其他信息的大小写状态的话,我们可以将名字全部转换成大小写,然后去判断即可

      技术分享

 

  字符控制函数:

      技术分享

    concat(‘str1‘,‘str2‘):就是把两个字符串str1 和 str2 拼接在一起

    substr(‘str1‘,1,5):从字符串str1 的第一位开始,输出五位字符

      select concat(‘Qidai‘,‘ in Oracle‘),substr(‘Qidai in Oracle‘,1,7) from dual;

        技术分享

    length(‘str1‘):返回str1 的长度

    instr(‘str1‘,‘w‘):返回字母w 在str1 中首次出现的位置

      select length(‘Qidai in Oracle‘),instr(‘Qidai in Oracle‘,‘i‘) from dual;

        技术分享

    lpad(‘str1‘,10,‘-‘):以十个字符位置显示str1,不够的用 "-" 左补齐,str1 超出的话,只显示str1 前十位

    rpad(‘str1‘,10,‘-‘):以十个字符位置显示str1,不够的用 "-" 右补齐,str1 超出的话,只显示str1 前十位

      select lpad(‘Qidai‘,10,‘-‘),rpad(‘Qidai‘,10,‘-‘) from dual;

        技术分享

    trim(‘d‘ from ‘str1 ‘): 将d 从str1 中去除掉,只去除首尾的指定字母,如下图中首尾已经将指定的字母去掉,而中间的字母没有去掉,

    replace(‘str1‘,‘s‘,‘r‘):将str1 中的 指定字母s 全部替换成 指定字母 r,

      select trim(‘d‘ from ‘dddQdidaiddd‘),replace(‘dddQdidaiddd‘,‘d‘,‘r‘) from dual;

        技术分享

 

 

      

   

 

 

         

 

 

 

 

    

 

 

 

 

 

 

 

 

 

 

  

 

 

    

 

Oracle

标签:访问   logs   sys   concat   忽略   escape   tcap   开头   desc   

原文地址:http://www.cnblogs.com/wzqjy/p/7727960.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!