zoukankan      html  css  js  c++  java
  • (9)oracle 表的基本查询

    转到进阶查询

    查看表的结构

    desc  表名;

     desc student;

    查看整张表的数据

    select * from 表名; //查整张表很耗时间

    select* from student;

    查看表的一列,或几列

    select 列名,列名 from 表名;

     select name,age from student;

    字符串连接 ||

    select 'a'||'b' from dual 

    查询时过滤掉重复的行

    select distinct 列名,列名 from 表名;

     select distinct name,age from student;

    使用算数表达式

    用字段名进行加减乘除的运算

    select score+5,name from student ; // 给所有人的成绩加5分,并查看成绩和对应的人名

    取别名

    select age "年龄" from student;

     

    用nvl处理null值

     select  nvl(age,0) from student;   //如果 age中有null值则把它改成0;

    order by 

     asc 正序 desc 倒序

    按查询结果的第三列排序

    SELECT * FROM student ORDER BY 3 DESC

     多字段排序

    SELECT * FROM student ORDER BY 2 DESC,3 ASC --数字可换成字段

    连接字符串

     连接字符串有||相当于 sqlserver中的+

    SELECT '工号为'||FNumber||'的员工姓名为'||FName FROM T_Employee; 

    题外在sql语言中字符串用‘’单引号

    where 查询时的条件

    select  age  from student where age>60;

    使用 like 模糊查询

    1、 可以使用一个或多个% 查询包含某个字符的字段。

    select name from student where '%a%b%';

    表示查找name中 包含  ....a....b.... 的字符。

    2、_ 下划线 表示单个任意字符

    select name from student where '_a_b_';

    查询 name 有五个单词组成,并且第二位是a,第四位是b。

    3、[] 查询出带有括号内的某一个字符

    select name from student where '[abw]';

    查询出的name字符带有a、b、w中的一个。

    select age from student where '[0-9]';

    包含 0到9中的任意一个数字。

    4、[^] 找出的字段中不能包含括号里的字符

    select name from student where '[^abd]';

    name里不能含有 a 或者 b 或者 d。

    in

    相当于=加上or

    SELECT *FROM supplier WHERE supplier_name = 'IBM' OR supplier_name = 'Hewlett Packard' OR supplier_name = 'Microsoft';

    和这句话是相等的

    SELECT * FROM supplier WHERE supplier_name in ( 'IBM', 'Hewlett Packard', 'Microsoft');

    用in更加简练,直观。

    exsits

    ???

    查询 空 时用is null

    select *  from score where student is null;

    时间查询

    select DEAL_TIME  from TABLE where DEAL_TIME >= to_date('2017-2-1','yyyy-mm-dd')  and DEAL_TIME <= to_date('2017-3-1','yyyy-mm-dd');
    select DEAL_TIME  from TABLE where DEAL_TIME >= to_date('2017-2-1 23:59:59','yyyy-mm-dd hh24-mi-ss'); 
    select DEAL_TIME from TABLE where  to_char(DEAL_TIME,'yyyy-mm-dd')>='2017-01-02'

     

    限制返回行数

    select * from T_BD_STAFF where rownum = 1     --rownum <=10

    如果固定想查第二行

    select * from (select rownum as id,emp.* from emp where  rownum<=50) where id=2

    随机查询几行

    DBMS_RANDOM.VALUE ()方法

    SELECT 字段A, 字段B
      FROM (SELECT *
                FROM emp
            ORDER BY DBMS_RANDOM.VALUE ())
     WHERE ROWNUM <= 3

    dual

    ????

     select into

    登录用户日志查询

    select sid, serial#,  
    username, --连接用户名  
    program, --应用程序名
    machine, --机器名
    osuser, --操作系统用户
    logon_time --登录时间
    from v$session;

    在 sqlpuls中 使用 ed 指令能打开编辑记事本,打开记事本后,保存-关闭。

    使用 能执行上一条数据

    使用 a 命令追加上 sql的内容。

    a  sql      --强调 a 后面一定要是两个空格 不然会和上条命令间无空格

    查询统计大于1行的字段

    select name from table group by name having count(name)>1
  • 相关阅读:
    SVN限制IP访问
    jquery sortable的拖动方法示例详解1
    .net core下的dotnet全局工具
    通过Windows Compatibility Pack补充.net core中缺失的api
    RX库中的IDisposable对象
    使用Puppeteer进行数据抓取(四)——图片下载
    使用Puppeteer进行数据抓取(三)——简单的示例
    使用Puppeteer进行数据抓取(二)——Page对象
    使用Puppeteer进行数据抓取(一)——安装和使用
    AutoFac简单入门
  • 原文地址:https://www.cnblogs.com/buchizaodian/p/5673897.html
Copyright © 2011-2022 走看看