--2012-5-29
表名:test
1.在Oracle中添加一列
eg:alter table test add age number;
2.删除一列
eg:alter table test drop column age;
3.访问另一个用户dept表
如果没有权限就授予:grant select on dept to tt 意思:给tt用户在dept表查询权限
收回权限:revoke select on dept from tt 意思:把dept权限从tt收回
常用系统函数
1.字符
length():查询字符串的长度(空格也算字符)
lengthb():查询字符串有多少个字节
ltrim():截取左边的空格 eg:select length(ltrim(' aa')) from dual; 意思:截取昨天的空格,返回字符串的长
度。
rtrim():截取右边的空格
trim():截取两边的空格
varchar2(10)和char(10)===可变长度和定长长度有什么区别?
可变长度是存储多少字符就在数据库里占用多少空间
固定长度是定义了多少就存储了多少;不足的就用空格填充;建议存储字符用可变长度类型。
eg:select length(a1),length(b1) from dual
substr():截取字符串,从1算起
2.日期
sysdate当前时间
current_date
next_day:给定某个日期、某个星期,判断某个星期的下个日期。
eg:select next_day(sysdate,'星期一') from dual; 今天是2012-5-29 星期二
输出:04-6月-12 ====2012-06-04是星期一
3.转换
to_char():将非字符型转换成字符
eg:默认显示是12小时制
SQL> select to_char(sysdate,'yyyy-mm-dd hh:mi:ss') from dual;
TO_CHAR(SYSDATE,'YY
-------------------
2012-05-29 08:39:25
eg:改成24小时制
SQL> select to_char(sysdate,'yyyy-mm-dd hh24:mi:ss') from dual;
TO_CHAR(SYSDATE,'YY
-------------------
2012-05-29 20:40:30
to_date():将字符型转换成日期
t0_number():将数值字符转换成整型
4.聚集
sum():求和 avg():求平均值 count():求行数(包含空值)
max():求最大值;min():求最小值
5.其他
user:查询当前用户 eg:select user from dual;
decode(条件,值1,翻译值1,值2,翻译值2,值3,...)
nvl():判断空值
下面的内容都是在SQL*PLUS环境下执行的
1.在执行缓冲区里执行PL/SQL命令用斜线
2.? 关键字 查询这个关键的含义
eg:? set
set serveroutput on size 10000 在缓冲区可有10000万个字符
L---现在缓冲区的内容
save c:\plsql_01.txt-------保存缓冲区的内容到指定文本中--用EditPlus工具编写
@ c:\plsql_01.txt------执行文件中命令
DBMS_OUTPUT.put()与DBMS_OUTPUT.PUT_LINE()都是输出的意思
只是DBMS_OUTPUT.put()后面要加上DBMS_OUTPUT.new_line--在新行中打印输出
eg1:dbms_output.put_line('x的值为'||x);
eg2:
DBMS_OUTPUT.put('x的值为'||x);
dbms_output.new_line;
************
分支语句
if ...then
elsif...then..
else
end if;
case分支
case
when ...then...
when ...then...
else..
end case
************循环语句
基本循环
loop
...
end loop
while循环
while ...loop
end loop
for循环
for i int (reverse)上限数字..下限数字 LOOP
.....
END LOOP;
**********