zoukankan      html  css  js  c++  java
  • Oracle琐碎笔记2

    备注:以下所有操作均在sqlplus中执行.

    开始前输入:
    spool c:jiyi.txt;
    结束后输入:
    spool off;
    就会记忆操作的所有记录
    save c:sql.sql;
    保存sql脚本
    可以使用@c:sql.sql加载脚本文件
    --注释
    host cls  (window dos下的清屏命令)
    --设置行宽
    set linesize 120
    --设置列宽
    col sal for 9999
    --设置某列名是八位字符
    col ename for a8 
    命令行中输入反斜线/ 代表执行上一条sql命令
    设置pagesize
    set pagesize 20
    修改输入命令:
     

    oracle 列别名:
    select empno as "编号",ename "姓名",sal 月薪 from emp;
    带有双引号的别名可以带特殊字符(比如空格),没有双引号的则不可以.

    空值问题
    select ename,sql*12,sql*12+comm 年收入(年薪+奖金) from emp;
    sql中,如果一个表达式含有null(空),则整个表达式为null
    oracle中null!=null
    解决方案:
    select ename,sql*12,sql*12+nvl(comm,0) from emp;

    此外在oracle中如果想查出字段为null的记录不能使用
    列名=null
    需要使用:  列名 is null
    取消重复记录
    select distinct 列名1,列名2  from emp
    sql语言大小写不敏感
    sql可以写在一行或者多行
    关键字不能被缩写也不能分行
    各子句一般要分行写
    使用缩进提高语句的可读性.

    算术运算符
    乘除的优先级高于加减
    优先级相同时,按照从左到右运算
    可以使用括号改变优先级.

    连接符(dual表是oracle提供的一个测试表):
    oracle中一般使用单引号进行拼接
    select concat('HELLO',' World!!') from dual;
    select 'Hello'||'world' from dual;
    select username||'的LoginId是:'||loginid from sys_users
    select 3+2 from dual
    select sysdata from dual

    查询表结构
    desc 表名(sqlplus命令)
    *********************************************

    解锁和修改密码:
    首先管理员登陆:
    sys/密码 as sysdba
    或者 / as sysdba
    创建临时表空间
    create temporary tablespace user_temp
    tempfile 'd:文件目录名文件名.dbf'
    size 50m
    autoextend on
    next 50m maxsize 20480m
    extent management local;
    创建表空间
    create tablespace user_data
    logging
    datafile 'd:文件目录名文件名.dbf'
    size 50m
    autoextend on
    next 50m maxsize 20480m
    extent management local;
    显示当前用户:
    show user
    新建用户:
    create user 用户名 account indetified by 密码
    分配权限
    grant connect,resource,dba to 用户名
    解锁:
    alter user 用户名 account unlock
    改密码:
    alter user 用户名 identified by 新密码

    sqlplus中使用ed会将操作写入file afiedt.buf文件中
    Oracle中对字符串大小写敏感
    对日期格式敏感
    ps:两者需加双引号
    select sysdate from dual
    查询系统参数(为了查日期格式)
    select * from v$nls_parameters
    修改日期格式
    alter session set nls_date_format="yyyy-mm-dd hh24:mi:ss"
    比较运算:
    = > >= < <= <>
    between and  包含边界(需注意的是and前的值必须小于后者)
    in()  like  is null
    //转义字符 escape
    select * from user where username like '%\_%'
    逻辑运算
    and  or  not
    优先级
     

    order by 排序
    默认升序asc,by后面可以跟:列名,表达式,别名,序号
    select * from user order by username  desc nulls last //降序 空值最后
    多列降序排序的时候desc只作用与离其最近的一列,如想多列都降序则需同时加上

  • 相关阅读:
    ST (Sparse Table:稀疏表)算法
    P3379 【模板】最近公共祖先(LCA)
    AT1357 n^p mod m(洛谷)
    poj2018 Best Cow Fences
    P1024 一元三次方程求解
    poj2456
    poj1064
    P2047 [NOI2007]社交网络(洛谷)
    poj1734
    洛谷P2886 [USACO07NOV]牛继电器Cow Relays
  • 原文地址:https://www.cnblogs.com/LT0314/p/3821677.html
Copyright © 2011-2022 走看看