1、默认事例:
用户名:scott密码:tiger 主机字符串:本机可以为空
2、启动方法:
运行:sqlplusscott/tiger@lhd
3、SQLPLUS基本命令:
Desc:显示表、视图结构 desc 表名,视图
List:列出SQL缓冲区区中的一行或多行命令语句
Exit:退出
4、常用的数据字典(三种前缀:USER,ALL,DBA)
USER_TABLES:用户所有表信息
USER_VIEWS:用户所有视图
USER_CONSTRAINTS:记录创建表结构的约束
USER_DEPENDENCIES:记录用户表之间的关系及自定义类型之间的关系
USER_TAB_COLUMNS:有关各表的列信息
USER_TRIGGERS:用户触发器的信息
5、显示控制:
set linesize 500
set pagesize 100
"/"与"run"执行刚才执行的语句、也可以用“r”
"分号"代表语句结束提交到后台执行
6、设置时间输出格式:
alter session set NLS_date_format='YYYY-MM-DD'
7、清屏:clear screen
8、查询某用户下的表名:
SELECT * FROM dba_tables WHERE owner='HSA6'
9、查询有几个用户
select * from dba_users
10、导入DMP格式数据:
1).新建成表空间和用户名
2).impsystem/123456@orclfile='d:/data/test.dmp' log='d:/data/test.log' fromuser='hsa6' touser='hsa7'
fromuser是指dmp格式包中的某表空间的用户,TOUSER 是指要导入的表空间的用户
11、更改某值:
sqlserver:
update ca_company set dwmc=substring(dwmc,1,2)+'B'+substring(dwmc,4,10)
oracle:
UPDATE ca_company SET c4='b'|| substr(c4,2,LENGTH(c4)) WHERE c4 LIKE 'a%'
查询系统所有用户:select distince owner from dba_segments;
查看与多少个表空间:select tablespace_name from dba_tablespaces;
查看表空间有多少个表:select tablespace_name,bytes/1024/1024 file_size_mb file_name from dba_data_files;
1.连接:sqlplusscott/tiger@oracle或者 sqlplus / as sysdba;
2.退出:quit或exit;
3.查看当前用户:show user;
4.重新连接:/ as sysdba;
5.创建表空间:create tablespace sales datafile 'd:/hello.dbf' size 4m;
6.查看当前时间:select sysdata from daul(有select 必有from);
7.查看表结构:desc dual (虚表);
8.创建用户名和密码:create user rose identified by rose;
9.授权( 使用oracle的资源): grant dba,connect,resource to rose;
10.用户登陆:connect rose/rose;
11.锁定用户:alter user rose account lock;
12.解锁用户:alter user rose account unlock;
13. 删除用户:drop user rose;
14.在线:alter tablespace sales online;
15.离线:alter tablespace sales offline;
16.修改密码:alter user rose identified by rose "012";
17.将表放到指定的表空间里:create table dept(did int) tablespace sales;
18.查询指定的表在哪个表空间里:select tablespace_name from user_table where table_name="DEPT"(这里表空间的名字要大写);
19.给表空间增加数据文件:alter tablespace sales add datafile 'd:/hello02.dbf' size 2m autoextend on next 6m;
20.修改大小:alter tablespace datafile 'd:/hello.dbf' resize 30m;
21.只读:alter tablespace sales read only;
22. 可读可写:alter tablespace sales read write;
23.移动表空间数据文件步骤:(1):使表空间脱机
(2):修改数据文件的名称
(3):执行 olter tablespace rename datafile 'c:/sales01.dbf'to 'd:/*.dbf'
可以有多个数据文件,但是源文件,要在to的左边,目的文件要在to的右边,文件名之间用逗号分割
(4):使用表空间连机
(5):查询dba_data_files 确认成功
24.创建用户指定默认的表空间磁盘配额:
create user rose identified by rose default tablespace sales quota 10m on sales;
25.删除表空间同时删除数据文件:drop tablespace sales including contents and datafiles;
26.查看当前用户每个表占用空间的大小:
create segment_name,sum(bytes)/1024/1024 mb from user_extents group by segment name;
27.查看每个表空间占用空间的大小:
select tablespace_name,sum(bytes)/1024/1024 mb from dba_segments group by tablespace_name;
-- 查看ORACLE 数据库中本用户下的所有表
SELECT table_name FROM user_tables;
-- 查看ORACLE 数据库中所有用户下的所有表
select user,table_name from all_tables;
-- 查看ORACLE 数据库中本用户下的所有列
select table_name,column_name from user_tab_columns;
-- 查看ORACLE 数据库中所有用户下的所有列
select user,table_name,column_name from all_tab_columns;
-- 查看ORACLE 数据库中的序列号
select * from user_sequences;
-- 上面的所有对象,都可以通过下面的SQL语句查询得到
-- 查询所有的用户生成的ORACLE对象
SELECT * FROM user_objects;
-- 查看ORACLE 数据库中所有表的注释
select table_name,comments from user_tab_comments;
-- 查看ORACLE 数据库中所有列的注释
select table_name,column_name,comments from user_col_comments;
-- 给表加ORACLE的注释
COMMENT ON TABLE aa10 IS '系统参数表';
-- 给列加ORACLE的注释
COMMENT ON COLUMN aa10.aaa100 IS '参数类别';
-- 查看表中列的属性,包括 数据类型,是否非空等
DESC aa10;
-- 通过系统表,查看表中列的属性,包括 数据类型,是否非空等
SELECT table_name,COLUMN_ID,column_name,data_type,data_length, DATA_PRECISION,NULLABLE
FROM user_tab_columns
ORDER BY table_name,COLUMN_ID;
-- 查看数据库中表、索引占用的数据库空间大小
SELECT * FROM user_segments;
-- 查看所有表的记录数
CREATE TABLE table_count(table_name VARCHAR2(50),columns NUMBER(20));
-- 通过PB运行下面的语句,得到结果集,将结果集在PB下执行,最后提交
select 'insert into table_count values('''||table_name||''', (select count(1) from '||table_name||'));//'||comments from user_tab_comments;
-- 所有表的记录都在table_count了
SELECT * FROM table_count;
// 将ORACLE数据库的注释同步到PB中 代码开始
DELETE FROM PBCATCOL WHERE PBC_TNAM LIKE '%';
DELETE FROM PBCATTBL WHERE PBT_TNAM LIKE '%';
INSERT INTO PBCATTBL
( PBT_TNAM,
PBT_OWNR ,
PBT_CMNT)
SELECT ALL_TAB_COMMENTS.TABLE_NAME,
ALL_TAB_COMMENTS.OWNER,
ALL_TAB_COMMENTS.COMMENTS
FROM ALL_TAB_COMMENTS
WHERE ALL_TAB_COMMENTS.OWNER = 'LH'
AND TABLE_NAME LIKE '%';
// 同步字段名
INSERT INTO PBCATCOL
( PBC_TNAM,
PBC_OWNR,
PBC_CNAM,
PBC_LABL,
PBC_CMNT,
PBC_HDR)
SELECT ALL_COL_COMMENTS.TABLE_NAME,
ALL_COL_COMMENTS.OWNER,
ALL_COL_COMMENTS.COLUMN_NAME,
ALL_COL_COMMENTS.COMMENTS ,
ALL_COL_COMMENTS.COMMENTS ,
ALL_COL_COMMENTS.COMMENTS
FROM ALL_COL_COMMENTS
WHERE ALL_COL_COMMENTS.OWNER = 'LH'
AND TABLE_NAME LIKE '%';
COMMIT;
-- 将ORACLE数据库的注释同步到PB中 代码结束
--将PB注释同步到ORACLE中
select 'comment on table '||pbt_tnam||' is '''||pbt_cmnt||''';' from pbcattbl where pbt_tnam not like 'PB%'
UNION
select 'comment on column '||pbc_tnam||'.'||pbc_cnam||' is '''||pbc_cmnt||''';' from pbcatcol where pbC_tnam not like 'PB%';
--查进程
select object_id,session_id,locked_mode from v$locked_object;
select t2.username,t2.sid,t2.serial#,t2.logon_time
from v$locked_object t1,v$session t2
where t1.session_id=t2.sid order by t2.logon_time;
--杀进程 alter system kill session '3,6666';