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

Oracle命令行工具基本操作及SQL 命令

2012-10-13 16:02 567 查看
1. 基本概念

1.1. 数据类型

基本数据类型(NUMBER,VARCHAR2,DATE)

O RACEL支持下列内部数据类型:

VARCHAR2 变长字符串,最长为2000 字符。

NUMBER 数值型。

LONG 变长字符数据,最长为2G字节。

DATE 日期型。

RAW 二进制数据,最长为255字节。

LONG RAW 变长二进制数据,最长为2G字节。

ROWID 二六进制串,表示表的行的唯一地址。

CHAR 定长字符数据,最长为255。

2. SQL*PLUS

这是个Oracle提供的最常用,也是最好用的sql命令执行工具。

2.1. 数据库系统管理

2.1.1. 登录

C:> sqlplusw

C:> sqlplus /nolog

SQL> conn username/password@Oranet

如,system登录

第 2 页 共 9 页

SQL> conn system/systempwd@whfc

如果要行一些只有sysdba才能执行的命令,必须以sysdba特权登录:

SQL> conn sys/syspwd@whfc as sysdba

2.1.2. 创建表空间

必须有CREATE TABLESPACE 特权的用户才能创建表空间,比如system

和sys用户。

SQL> conn system@whfc01

请输入口令:

已连接。

SQL> create tablespace ts_test datafile '/data2/oradata/ciis/ts_test01.dbf' size

10m ;

表空间已创建。

2.1.3. 添加数据文件

SQL> alter tablespace ts_test add datafile '/data2/oradata/ciis/ts_test02.dbf' size

10m ;

表空间已更改。

2.1.4. 查看表空间大小

SQL> DESC DBA_DATA_FILES

名称 是否为空? 类型

-------------------- -------- --------------

FILE_NAME VARCHAR2(513)

FILE_ID NUMBER

TABLESPACE_NAME VARCHAR2(30)

BYTES NUMBER

BLOCKS NUMBER

第 3 页 共 9 页

STATUS VARCHAR2(9)

RELATIVE_FNO NUMBER

AUTOEXTENSIBLE VARCHAR2(3)

MAXBYTES NUMBER

MAXBLOCKS NUMBER

INCREMENT_BY NUMBER

USER_BYTES NUMBER

USER_BLOCKS NUMBER

SQL> SELECT TABLESPACE_NAME,SUM(BYTES)/1024/1024 M

2 FROM DBA_DATA_FILES

3 GROUP BY TABLESPACE_NAME;

TABLESPACE_NAME M

-------------------- ----------

DEVELOP1 8000

DEVELOP2 14336

DEVELOPINDEX 4106

DRSYS 20

EXAMPLE 145.625

INDX 25

ODM 20

SYSTEM 1024

TOOLS 10

TS_CI_13 4094

TS_CI_32 4094

TS_CI_33 2047

TS_II_13 2047

TS_II_32 2047

TS_PI_1301 2047

第 4 页 共 9 页

TS_PI_1302 2047

TS_PI_3201 2047

TS_TEST 20

UNDOTBS1 5048

USERS 25

XDB 38.125

已选择21 行。

SQL> SELECT TABLESPACE_NAME,SUM(BYTES)/1024/1024 M

2 FROM DBA_DATA_FILES

3 WHERE TABLESPACE_NAME='TS_TEST'

4 GROUP BY TABLESPACE_NAME;

TABLESPACE_NAME M

-------------------- ----------

TS_TEST 20

2.1.5. 查看自由(剩余)表空间大小

SQL> desc DBA_FREE_SPACE

名称 是否为空? 类型

---------------------- -------- ---------------

TABLESPACE_NAME VARCHAR2(30)

FILE_ID NUMBER

BLOCK_ID NUMBER

BYTES NUMBER

BLOCKS NUMBER

RELATIVE_FNO NUMBER

第 5 页 共 9 页

SQL> SELECT TABLESPACE_NAME,SUM(BYTES)/1024/1024 M

2 FROM DBA_FREE_SPACE

3 WHERE tablespace_name='TS_TEST'

4 GROUP BY TABLESPACE_NAME;

TABLESPACE_NAME M

-------------------- ----------

TS_TEST 19.6875

2.1.6. 创建新用户

SQL> create user test identified by test default tablespace ts_test temporary

tablespace temp;

用户已创建

2.1.7. 给用户角色特权

SQL> grant connect,resource to test;

授权成功。

2.2. 用户数据对象

2.2.1. 查看当前用户表名

SQL> select * from tab;

TNAME TABTYPE CLUSTERID

------------------------------ ------- ----------

BONUS TABLE

CC TABLE

DEPT TABLE

第 6 页 共 9 页

EMP TABLE

EMP_IOT TABLE

SALGRADE TABLE

已选择6 行。

2.2.2. 创建数据表

SQL> CREATE TABLE book (

2 bookid NUMBER(18),

3 bookname VARCHAR2(80) NOT NULL,

4 author VARCHAR2(40),

5 price NUMBER(6,2)

6 );

表已创建。

2.2.3. 创建索引

SQL> CREATE INDEX idx_book_bookid ON book(bookname);

索引已创建。

2.2.4. 创建主键约束

SQL> ALTER TABLE book ADD CONSTRAINT pk_book_bookid PRIMARY

KEY (bookid);

表已更改。

2.2.5. 显示表结构

SQL> desc book

名称 是否为空? 类型

------------------------------ -------- ----------------------

第 7 页 共 9 页

BOOKID NOT NULL NUMBER(18)

BOOKNAME NOT NULL VARCHAR2(80)

AUTHOR VARCHAR2(40)

PRICE NUMBER(6,2)

2.2.6. 查看表的索引

SQL> column index_name format a30

SQL> select table_name, index_name from user_indexes;

TABLE_NAME INDEX_NAME

------------------------------ ------------------------

BOOK IDX_BOOK_BOOKNAME

BOOK PK_BOOK_BOOKID

2.2.7. 查看索引列

SQL> select table_name, index_name, column_name, column_position

from user_ind_columns;

TABLE_NAME INDEX_NAME COLUMN_NAME COLUMN_POSITION

-------------- ------------------- -------------- ---------------

BOOK PK_BOOK_BOOKID BOOKID 1

BOOK IDX_BOOK_BOOKNAME BOOKNAME 1

2.2.8. 查看数据段占空间大小

数据段包括表、索引、分区等。

SQL> desc user_segments

名称 是否为空? 类型

-------------------- -------- ------------------------

第 8 页 共 9 页

SEGMENT_NAME VARCHAR2(81)

PARTITION_NAME VARCHAR2(30)

SEGMENT_TYPE VARCHAR2(18)

TABLESPACE_NAME VARCHAR2(30)

BYTES NUMBER

BLOCKS NUMBER

EXTENTS NUMBER

INITIAL_EXTENT NUMBER

NEXT_EXTENT NUMBER

MIN_EXTENTS NUMBER

MAX_EXTENTS NUMBER

PCT_INCREASE NUMBER

FREELISTS NUMBER

FREELIST_GROUPS NUMBER

BUFFER_POOL VARCHAR2(7)

SQL> select segment_name,segment_type,bytes from user_segments;

SEGMENT_NAME SEGMENT_TYPE BYTES

------------------------------ --------------- ---------

BOOK TABLE 65536

IDX_BOOK_BOOKNAME INDEX 65536

PK_BOOK_BOOKID INDEX 65536

第 9 页 共 9 页

2.2.9. 查看表占空间大小

SQL> select segment_name,segment_type,bytes from user_segments where

segment_type='TABLE';

SEGMENT_NAME SEGMENT_TYPE BYTES

------------------------------ ---------------- --------
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息