1. 在sql*plus中修改当前会话的日期格式
alter session set nls_date_format = 'yyyy-mm-dd hh24:mi:ss';
2. navicat连接oracle,出现Navicat for Oracle Cannot load OCI DLL
工具--->选项--->设置--->oci路径即可, 笔者此处D:\oracle\product\11.2.0\dbhome_1\bin\oci.dll
2.1、sqlplus连接远程数据库
语法:sqlplus usr/pwd@//host:port/sid
example: sqlplus tmmu/wq752341@//10.10.192.100:1521/ORCL
2.2、修改oracle占用内存(不要太少,否则会启动失败)
在默认安装情况下,oracle的内存分配是按系统内存的大小比例分配的,内存比较大的情况下,oracle所占的内存也大,该情况下,我们一般要修改sga值来减少系统中oracle的内存过大问题。
用dba身份进入oracle,笔者在plsql中对数据库进行管理: show parameter sga; --显示内存分配情况 alter system set sga_max_size=200m scope=spfile; --修改占用内存的大小
shutdown; --关闭
startup; --启动
3. ALTER
ALTER TABLE (表名) ADD (列名 数据类型); ALTER TABLE (表名) MODIFY (列名 数据类型); ALTER TABLE (表名) RENAME COLUMN (当前列名) TO (新列名); ALTER TABLE (表名) DROP COLUMN (列名); ALTER TABLE (当前表名) RENAME TO (新表名);
3.1 修改varchar2 2 clob
--技巧就在于中间的temp字段容器。 alter table 表名 add 临时字段名 clob; update 表名 set 临时字段名 = 待改动字段名; alter table 表名 drop column 待改动字段名; alter table 表名 rename column 临时字段名 to 待改动字段名;
查看表,字段,以及主键
在Oracle中查看所有的表:
select * from tab/dba_tables/dba_objects/cat;
看用户建立的表 :
select table_name from user_tables; //当前用户的表 sequence_name from user_sequences view_name from user_views select table_name from all_tables; //所有用户的表 select table_name from dba_tables; //包括系统表 select * from user_indexes //可以查询出所有的用户表索引
查所有用户的表在all_tables
主键名称、外键在all_constraints
视图 all_views
序列 all_sequences
索引在all_indexes
但主键也会成为索引,所以主键也会在all_indexes里面。
具体需要的字段可以DESC下这几个view,dba登陆的话可以把all换成dba
1、查找表的所有索引(包括索引名,类型,构成列):
select t.*,i.index_type from user_ind_columns t,user_indexes i where t.index_name = i.index_name and t.table_name = i.table_name and t.table_name = 要查询的表
2、查找表的主键(包括名称,构成列):
select cu.* from user_cons_columns cu, user_constraints au where cu.constraint_name = au.constraint_name and au.constraint_type = 'P' and au.table_name = 要查询的表
3、查找表的唯一性约束(包括名称,构成列):
select column_name from user_cons_columns cu, user_constraints au where cu.constraint_name = au.constraint_name and au.constraint_type = 'U' and au.table_name = 要查询的表
4、查找表的外键(包括名称,引用表的表名和对应的键名,下面是分成多步查询):
select * from user_constraints c where c.constraint_type = 'R' and c.table_name = 要查询的表
查询外键约束的列名:
select * from user_cons_columns cl where cl.constraint_name = 外键名称
查询引用表的键的列名:
select * from user_cons_columns cl where cl.constraint_name = 外键引用表的键名
5、查询表的所有列及其属性, 注意表名要大写
select t.*,c.COMMENTS from user_tab_columns t,user_col_comments c where t.table_name = c.table_name and t.column_name = c.column_name and t.table_name = 要查询的表
以前的笔记
Oracle熟记
写完语句之后一定要commit,才能访问。
登录
sqlplus sys/tiger as sysdba
用户管理
1. 内置用户
1) sys/tiger
2) scott/tiger
2. changeUserInfo
3. createDropUser
1) createNewUser
a. create user hzm identified by tiger default tablespace users quota 10M on users
b. 分配权限 -- grant create session, create table, create view to hzm
2) dropUser
a. drop user hzm
3) export & import
a. exp; 然后一路默认(在导出文件的保存路径位当前dos窗口目录)
b. imp; 导入
4. changeUser
1) conn scott/tiger
2) conn sys/hzm as sysdba
5. 给用户授予创建视图的权限
1) grant create table, create view to scott;
6. 查看当前用户
1) show user
7. 解除用户锁定
1) alter user scott account unlock;
创建
1. 创建库(oracle没有库的概念)
2. 创建表
3. 创建视图
4. 创建索引
5. 创建sequence
内置表
1. 内置普通表 emp, dept, salgrade, dual
常用操作
1. 查看表结构: desc 表名 eg: desc emp
2. 将上一条语句写入文件中: ed
3. 执行afiedt.buf中的语句: /
4. 单表复制: create table emp2 as select * from emp
5. 回退操作:rollback
6. 提交操作:commit
7. 查询当前有哪些表:select table_name from user_tables;
8. 查询视图:select view_name from user_views;