返回顶部

【转载】oracle(二)

[复制链接]
飘在云端Lv.9 显示全部楼层 发表于 2017-2-9 16:01:17 |阅读模式 打印 上一主题 下一主题

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?立即注册

x
三、常用简单语句:
    clear screen:清屏
    edit:编辑刚才的一句。
    desc/describe:(列出所有列名称)
        用法: DESCRIBE [schema.]object[@db_link]
    dual:亚表(虚表),临时用。如:desc dual;/from dual;
    rollback:回溯,回溯到上次操作前的状态,把这次事务操作作废,只有一次(DDL和DCL语句会自动提交,不能回溯)。
        可以用commit语句提交,这样就回溯不回了。
    set pause on\off :设置分屏(设置不分屏)
    set pause "please put an enter key" 且 set pause on:设置带有提示的分屏
    oerr ora 904 :查看错误
    set head off :去掉表头
    set feed off :去掉表尾
    保存在oracle数据库中的所有操作细节:
        spool oracleday01.txt :开始记录
        spool off :开始保存细节
     SQL server的变量:
        申明变量: declare @i int  设变量值: set @i=0
        DECLARE @sql NVARCHAR(4000)  SET @sql = 'SELECT MEMID, NAME'
        SET @sql = @sql + ', ISNULL(STR(AVG(S.POINTS)), ''0'') AS ''平均成绩'' '
        SET @sql = @sql + ' FROM TB_MEMBER '
        PRINT @sql
        EXEC(@sql)
    update 表名 set 字段名=@i,@i=@i+1  --递增效果
    另一递增效果:identity(1,1) --前参数是从多少开始,后参数是增量
四、SELECT语句:选择操作、投影操作。
select:从一个或多个表中检索一个或多个数据列。包含信息:想选择什么表,从什么地方选择。必须要有From子句。(最常用)
        当从多张表里查询的时候,会产生笛卡尔积;可用条件过滤它。
        当两个表有相同字段时必须加前缀,列名前需加表名和“.”,如“s_emp.id”。
    1、用法:SELECT  columns,prod2,prod3<列>  FROM Table1,table2<表名>  分号结束
       如: select id from s_emp;
           select last_name,name from s_emp,s_dept where s_emp.dept_id=s_dept.id;--列表每人所在部门
           SELECT *  FROM Products;    --检索所有列。
           数据太多时,最好别使用上句,会使DBMS降低检索和应用程序的性能。(*通配符)
    2、对数据类型的列(字段)可进行运算(如加减乘除)。
    3、对列起别名:有直接起别名,加AS起别名,用双引号起别名等三种方法
       (单引号,引起字符串;双引号,引起别名。起别名有符号,或者区分大小写时,必须用双引号)
        多表查询时,可给表起别名。(给列起别名,列<空格>列别名;给表起别名,表<空格>表别名;)。
        如:Select first_name EMPLOYEES, 12*(salary+100) AS MONEY, manager_id "ID1" From s_emp E;
    4、字段的拼接,可用双竖线(双竖线只能用于select语句里)。不同的DBMS可能使用不同的操作符;拼接的字段同样可以起别名。
        如:Select  first_name ||' '|| last_name || ', '|| title "Employees" From s_emp;
排他锁:Select id,salary  From s_emp where id=1  For Update;
   可以阻止他人并发的修改,直到你解锁。
   如果已有锁则自动退出:Select id,salary From s_emp where id=1 For Update NoWait;
   FOR UPDATE :可以再加 OF 精确到某格。如:   ... For Update  OF salary ...
   注意要解锁。
五、ORDER BY 子句,排序
Order by:按某排序列表(默认升序 asc, 由低到高; 可加 desc,改成降序由高到低)
    检索返回数据的顺序没有特殊意义,为了明确地排序用 SELECT 语句检索出的数据,可使用 ORDER BY 子句。
    ORDER BY 子句取一个或多个列的名字。
    对空值,按无穷大处理(升序中,空值排最后;降序中排最前)。
    1、用法:Select prod_id,prod_price,prod_name From Products  Order By  prod_price,prod_name;
      (从左到右执行排序,先排price)
       ORDER BY子句中使用的列将是为显示所选择的列,但是实际上并不一定要这样,用非检索的列排序数据是完全合法的。
       为了按多个列排序,列名之间用逗号分开。
    2、支持按相对列位置进行排序。位置从1开始。
       输入 SELECT prod_id,prod_price,prod_name
       FROM  Products
       ORDER BY 2,3    --(2指price,3指name)
    3、升序、降序。默认是升序(asc,从小到大排序),想降序时用desc。
       如:SELECT prod_id,prod_price,prod_name FROM  Products ORDER BY prod_price DESC;
      注意:DESC 关键字只应用到直接位于其前面的列名。如果想在多个列上进行排序,必须对每个列指定DESC关键字。
         升序是默认的,可不写,但降序必须写。

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

云萌主 云萌主-BIGSAAS旗下,由北京合智互联信息技术有限公司在2018年创立,为广大云应用技术爱好者的平台。在云萌主论坛可以查看云应用技术文章、云产品产品最新资讯、技术问答、技术视频。在畅游云上技术的同时,学到最新的云应用产品和技术。
  • 微信公众号

  • Powered by Discuz! X3.5 | Licensed | Copyright © 2001-2022, Aliyun Cloud. | 星点互联设计
  • 京ICP备18052714号 | 营业执照 | |合智互联| QQ