Chinaunix首页 | 论坛 | 博客
  • 博客访问: 49331
  • 博文数量: 19
  • 博客积分: 307
  • 博客等级: 二等列兵
  • 技术积分: 170
  • 用 户 组: 普通用户
  • 注册时间: 2011-11-03 21:01
文章分类
文章存档

2014年(6)

2012年(13)

我的朋友

分类: Oracle

2012-08-07 10:45:59

一个表增加一列:alter 表名 add 列名
修改一列的数据类型ALTER TABLE 表名 MODIFY(列名 数据类型);
修改列名:ALTER TABLE 表名 RENAME COLUMN 当前列名 TO 新列名;
删除列名:alter 表名 drop column 列名  删除一列
修改表名:ALTER TABLE 当前表名 RENAME TO 新表名;
给某个用户授权:grant 权限(select,drop,insert,update) on 表名 to 用户名
收回某个权限:revoke 权限 on 表名 from 用户名
oracle的函数
select length('abcd') from dual;//返回字符数length
截取字符trim ltrim截取左边,rtrim截取右边
定长的就是没有这么多用空格补齐char,varchar就是不定长
dual是个虚拟表,你在操作大多数Oracle对象的时候都可以使用这个表,比如sequence,sysdate等等。
substr用于取字符串中的字符,第一个参数是从第几个开始取,第二个参数是取多少个,如substr
('abcdefg',2,3) 取右边的字符如:substr('abcdecg',length('abcdefg')-3+1,3)
sysdate取得当前的系统时间。
设置显示日期格式:alter session set nls_date_format='yyyy-mm-dd hh24:mi:ss'
next_day(时间,星期)如select next_day('10-8月-12','星期五') from dual;
to_char(sysdate,'yyyy-mm-dd')  to_Date('12-3月-04')
有空值不会统计行数,count(*)
user,decoded的作用用于做统计,如sum(decode('字段值','条件',1,0)),如果为真就为1,为假就为0
nvl(字段,值)如果为空,就显示值
不显示重复数据使用distinct
使用模糊查询如果是一个字符使用x_如果是很多使用x%,也可以_x,或者是%x,如果不知道在那个位置,加
在开头和结束位置
给表取个别名,在from 表名后面加个 字母 就是别名
表的连接有内连接和外连接,都有相同的字段就是内连接,一般使用from a join  b  on 条件 也可以不
使用使用一般的,from a b where ,外连接不完全匹配,外连接分为左连接和右连接,已左边的表为标准
,没有的用空值代替,右连接用右边的表匹配,没有用空值代替
子查询,在一个大的查询中含的查询,分为无关子查询和相关子查询
相关查询select * from a where id in(select id from xxx)或者使用select * from a where id exists(select id from xxx)假如存在就全部查出来
不相关查询select * from a where id not in(select id from xxx)或者使用exists
合并行的数据union 如select * from a union select * from b
intersect运算符,可以返回两个查询中一样的值
可以直接插入一个表,用另外一个表相同的字段插入例如insert into xx (xx,xx) values (select xx,xx from xx);
创建表可以利用一个存在的表,create table xxx as (select * from x);
阅读(792) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~