oracle小记(二)

-- 查看oracle版本
SELECT   *   FROM  v$version;

/*

DDL 数据库定义
DML 数据库管理
DCL 数据库控制
grant + revoke  权限管理

*/

nvl function如果原来的数值为null的话,由指定的数值替代。
nvl(commission_pct,
0 ) / 100

column (col)
column  salary format $ 999999.00  设置数字显示形式
column  name format a15; 设置字符串显示15个字符
column  salary justify  left/right/ center 输出格式
column  clear 清除格式
column  last_name;显示该字段名所用的格式
column  salary justify  left  format $ 99999.000

order   by   asc  升序(默认)  desc  
使用distinct也会触发排序操作
select   *   from  employee  order   by   1 ; 按第一个字段排序
null  被认为无穷大, order   by  也可以用别名。

where  
select   *   from  user_tables  where  table_name  like   ' s\_% '   escape   ' \ ' ;

between   and  在什么之间
not   between   and
in (List) 在某个集合中
not   in  (list) 空值会有影响
like  模糊配置
not   like  通配比较
is   null  是空
and  
or  
not  

查出s_emp表中所有员工的一年的总收入,注意空值处理
select  name , salary  *   12   * 1 +  nvl(commission_pct / 100 , 0 ))  from  s_emp

单行函数 (dual 哑表)
lower  转小写
select   lower ( ' SQLPLUS ' from  dual;
upper  转大写
select   upper ( ' sqlplus ' from  dual;
concat 字符串连接
select  concat(first_name, last_name)  from  s_emp; 等效于 ||
length 求长度
select  length( ' abcdefg ' from  dual;
substr 求子串
select  substr( ' abcdefg ' , 1 , 6 from  dual;
select  substr( ' abcdefg ' , - 2 from  dual; 取后面两个字符
round函数 
select   round ( 45.935 2 from  dual;
trunc 函数(截取,不管后面的数字) 
select  trunc( 45.9995 , 1 from  dual;

select  sysdate  from  dual;
内置函数
months_between(sysdate, addmonths(sysdate,
5 ))  // 两个月有多少天
add_months(sysdate, 
- 5 ) 在系统时间基础上延迟五个月
last_day(sysdate) 一个月的最后一天

格式转换函数
to_char 显示日期
to_char(date,
' 格式 ' )
select  to_char(sysdate, ' yyyy mm dd hh24:mi:ss ' from  dual;

to_date 表达日期
select  to_date( ' 2000 11 20 ' ' yyyy mm dd ' from  dual;

to_number 字符转数字

DDL
table   view  sequence  index
表    视图 序列     索引

表级约束 
create   table  test(c  number primary   key (c));
列级约束 
create   table  test(c  number   primary   key );

commit  提交,此时说明前面所有语句都成功执行
rollback  回退操作,此时会恢复至上一次提交时的状态
savepoint 设置保存点

alter   table  表名  add   constraint  约束名  primary   key  (字段);

select   *   from  cat;

select   *   from  tab;

select  table_name  from  user_all_tables;

select  view_name,  text   from  user_views;

select  index_name ,table_owner, table_name, tablespace_name, status  from  user_indexes  order   by  table_name;

 

你可能感兴趣的:(oracle)