您的位置:首页 > 数据库 > Oracle

Oracle常用语句(不断更新)

2007-05-10 10:00 441 查看
整理如下:
友情提示:commit是执行完后需要的。当然如果你执行另外的语句更新就不需要了。否则你可能会发现刚才的更新没有用。

1 以DBA的身份登录数据库
connect sys/change_on_install@hhxx as sysdba;
 2 查看日期等的DUAL表查询

SELECT SYSDATE FROM DUAL;

3 查看用户的默认表空间

select username,default_tablespace from dba_users;

4 给用户赋权限
grant resource to hhsys;

grant connect to hhsys;

grant sysdba to hhsys;
5 创建表空间

CREATE TABLESPACE "HHSCINFO"
    LOGGING
    DATAFILE 'D:/ORACLE/ORADATA/INFOPLAT/HHSCINFO.ora' SIZE 512M
    EXTENT MANAGEMENT LOCAL
6  创建表

create table "HHSYS"."xxgntable"  (
   功能编号                 CHAR(8)                         not null,
   功能名称               CHAR(64)                        not null,
   上级功能编号              CHAR(8)                         not null,
   constraint PK_XXGNTABLE primary key (功能编号 )
);

7 查询表

select * from HHSYS."xxgntable"

8 插入数据库
INSERT INTO "HHSYS"."XTGNTABLE" ("功能编号" ,"功能名称" ,"上级功能编号" ) VALUES ('25' ,'档案管理' ,'20'  )

9  将字符型的按照数值来排序
select * from hhsys.xtgntable order by to_number("功能编号")
例子:
Char型等:1, 10,110,12,排序不是按照你想象的安顺排
上面的语句就是可以按顺序排的。1,10,12,110

10 获取表字段及对应的类型
select column_name,data_type from all_tab_columns where lower(table_name)= 'xitonggongneng'

1    UserName    CHAR
2    UserPwd   CHAR
3    EMail   CHAR

11 选择表的前n行

select 关键字,阅读次数,SN FROM xinxi WHERE ROWNUM<11

12  查看字段中是否不含或不包含字段

select * from hhsys.xinxi where 关键词 NOT LIKE '%算法%'
select * from hhsys.xinxi where 关键词  LIKE '%算法%'

13 更新数据库

update xinxi set 信息标题='这是个测试', 经办人='李四', 关键字='测试',审批人='张三' where SN=2

14 表的关联查询 等值查询
select * from hhsys.xinxi a, hhsys.xinxishenpi b, hhsys.xinxiquanxian c where a.sn = b.id and a.sn=c.id
由于*号不推荐使用具体点
select a.建立日期,a.信息标题,a.发布部门,a.经办人,a.信息类型,a.关键字,c.权限人员 from hhsys.xinxi a, hhsys.xinxishenpi b, hhsys.xinxiquanxian c where a.Sn = b.id and a.sn=c.id

15 查看数据库归档模式
select log_mode from v$database;

16 查看查询字段结果的长度Length和to_char的用法及格式化

select LENGTH(to_char(Hiredate,'fm YYYY-MM-DD ')) from scott.emp

17  等值查询

select a.*,b.* from hhsys.fawendengji a , hhsys.shouwendengji b

18 从一个表中获取记录插入另一个表中

insert into fawendengji values(select * from shouwendengji where id ='1')

19 查看表空间

SELECT FILE_NAME,TABLESPACE_NAME,BYTES,USER_BLOCKS FROM DBA_DATA_FILES

20 修改表空间

alter database datafile 'D:/ORACLE/ORADATA/HHXX/HHNFXP.ORA' resize 8192M;

21 更新表

UPDATE tushu set 当前状态='在馆' WHERE 当前状态<>'在馆'

22 distinct的使用

select distinct 字典名称 from zidianmingcheng,xitongzidian where 模块类别='1'

23 字符串的日期比较函数

select SYSDATE from dual;

select * from hhsys.huiyi where to_date(开始时间,'YYYY-MM-DD')<sysdate

注:其中的开始时间为char型(字符串)

可以查询出比当前时间小的记录

24 导出表空间

exp "+"'hhsys/*******@hhxx as sysdba'"+" file=d:/t.dat tablespaces=hhnfxp"

25 导出表

 exp hhsys/*******@hhxx tablespaces=hhnfxp file=d:/hhnfxp.dmp"

26 选择表中出现次数多于1次的数据

select count(*),finger from hash group by finger having count(*)>1
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息