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


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
------------------------------ ---------------- --------
BOOK TABLE 65536 

你可能感兴趣的:(数据库)