1、经常使用Sqljava
一、建立用户web
create tablespace whc_tbs datafile 'E:\oracle\oradata\whcdb\whc.dbf' size 100M; sql
create user whc identified by whc default tablespace whc_tbs; 数据库
grant connect,resource,dba to whc; oracle
二、删除数据文件(dbf文件)ide
DROP TABLESPACE tablespace_name INCLUDING CONTENTS AND DATAFILES;函数
三、Oracle减小null工具
表中最好别有null记录,这会引发全文扫描,建议改为0代替。url
四、查询字段类型spa
select * from cols where table_name='TBL_SYS_TREE_CODE';//查询字段信息
select * from user_col_comments;//查询字段备注
select * from user_tab_comments;//查询表备注
五、count(*)会查询出全部记录(包括null);select(字段)也会查询出全部记录,可是不包括null
六、排序后,查询出一条记录
select CODE_ID from (
select CODE_ID, rownum from TBL_SYS_TREE_CODE where PARENT_ID is null order by last_modify_time desc)
where rownum=1
七、系统表
--USER_*:有关用户所拥有的对象信息,即用户本身建立的对象信息
--ALL_*:有关用户能够访问的对象的信息,即用户本身建立的对象的信息加上其余用户建立的对象但该用户有权访问的信息
--DBA_*:有关整个数据库中对象的信息
--查询用户信息
select * from dba_users;//查询全部用户
select * from all_users;//查询全部用户,获得的信息比较少
select * from user_users;//用户本身的信息
select * from dba_sys_privs;//查询权限
select * from all_sys_privs;//此表不存在
select * from user_sys_privs;//查询用户的权限
select * from dba_tab_privs where owner = 'holly';
select * from all_all_tables;//查询全部的表
八、常常查询某一天,或者某一个月的记录,可是不知道Oracle内部的时间转换,有种简单的方式
select * from user where regTime like '2015-12-12%' //查询12月12日的全部记录
select * from user where regTime like '2015-12%' //查询12月份的全部记录
九、设置表、字段注释
comment on table table_name is 'comments_on_tab_information';//设置表备注
comment on column table.column_name is 'comments_on_col_information';//设置字段备注
十、group by/order by/distinct
去重:group by,distinct
group by 查询的结果中必需要有聚合函数,并且分组的字段必须出如今查询结果中
排序:order by
group by 在order by 前面,并且order by 中的数据必须在group by中出现。
2、Oracle更一个字段
更改某个字段的类型
有一个表名为tb,字段段名为name,数据类型nchar(20)。
一、假设字段数据为空,则无论改成什么字段类型,能够直接执行:
alter table tb modify (name nvarchar2(20));
二、假设字段有数据,则改成nvarchar2(20)能够直接执行:
alter table tb modify (name nvarchar2(20));
三、假设字段有数据,则改成varchar2(40)执行时会弹出:“ORA-01439:要更改数据类型,则要修改的列必须为空”,这时要用下面方法来解决这个问题:
/*修改原字段名name为name_tmp*/
alter table tb rename column name to name_tmp;
/*增长一个和原字段名同名的字段name*/
alter table tb add name varchar2(40);
/*将原字段name_tmp数据更新到增长的字段name*/
update tb set name=trim(name_tmp);
/*更新完,删除原字段name_tmp*/
alter table tb drop column name_tmp;
总结:
一、当字段没有数据或者要修改的新类型和原类型兼容时,能够直接modify修改。
二、当字段有数据并用要修改的新类型和原类型不兼容时,要间接新建字段来转移。
3、导入导出
1)导出:Tools-Export Tables
一、导出dmp格式
二、导出sql格式
三、导出pie格式
2)导入:Tools-Import Tables
3)命令导入导出:
一、导入
imp username/password@ip:port/Oracle标识grants=y fromuser=源数据用户 touser=备份到哪一个用户file=D:\shop.dmp(源文件) log=D:\shop.log(源文件日志)
二、导出
exp username/password@ip:port/Oracle标识 grants=y owner=源数据用户 file=D:\shop.dmp(源文件) log=D:\shop.log(源文件日志)
4)借助Navicat导入导出
一、导入
选中当前用户-》运行sql文件
注意:导入的时候,须要注意修改用户名
二、导出
选中当前用户-》转储sql文件-》数据和结构(结构)。(注意:也能够单表导出)
三、安装Navicat(万能辅助数据库)
分享:https://yunpan.cn/cYFEVtNDu9cxn 访问密码 e7e9
工具-》选项(这里的OCI文件必须配套)
4、Oracle添加一个链接标识
一、Oracle在本机的服务。也就是在安装Oracle服务过程当中的惟一标识
下图XE就是本机的惟一标识。
OracleServiceXE、OracleXETNSListener是Oracle必须的两个服务
二、tnsnames.ora文件
若是想要为本机的服务添加一个链接
Holly =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521))//ip、端口
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME =XE)//Oracle服务的惟一标识
)
)
三、链接数据源
3.一、java
jdbc.url=jdbc\:oracle\:thin\:@172.16.52.1\:1521\:orcl
3.二、pl/sql
172.16.52.1:1521/orcl
3.三、Navicat
链接名自定义:Curtain
IP:172.16.52.1
Service Name:orcl