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;
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;