1.SQL>select tablespace_name from user_tablespaces;
运行结果:
名称 是否为空? 类型
----------------------------------------- -------- ----------------------------
TABLESPACE_NAME NOT NULL VARCHAR2(30)
BLOCK_SIZE NOT NULL NUMBER
INITIAL_EXTENT NUMBER
NEXT_EXTENT NUMBER
MIN_EXTENTS NOT NULL NUMBER
MAX_EXTENTS NUMBER
PCT_INCREASE NUMBER
MIN_EXTLEN NUMBER
STATUS VARCHAR2(9)
CONTENTS VARCHAR2(9)
LOGGING VARCHAR2(9)
FORCE_LOGGING VARCHAR2(3)
EXTENT_MANAGEMENT VARCHAR2(10)
ALLOCATION_TYPE VARCHAR2(9)
SEGMENT_SPACE_MANAGEMENT VARCHAR2(6)
DEF_TAB_COMPRESSION VARCHAR2(8)
RETENTION VARCHAR2(11)
BIGFILE VARCHAR2(3)
2.SQL>select tablespace_name from dba_tablespaces;
运行结果:
TABLESPACE_NAME
------------------------------------------------------------
SYSTEM
UNDO
SYSAUX
TEMP
USERS
3.SQL>desc dba_tablespaces
运行结果:
名称 是否为空? 类型
----------------------------------------- -------- ----------------------------
TABLESPACE_NAME NOT NULL VARCHAR2(30)
BLOCK_SIZE NOT NULL NUMBER
INITIAL_EXTENT NUMBER
NEXT_EXTENT NUMBER
MIN_EXTENTS NOT NULL NUMBER
MAX_EXTENTS NUMBER
PCT_INCREASE NUMBER
MIN_EXTLEN NUMBER
STATUS VARCHAR2(9)
CONTENTS VARCHAR2(9)
LOGGING VARCHAR2(9)
FORCE_LOGGING VARCHAR2(3)
EXTENT_MANAGEMENT VARCHAR2(10)
ALLOCATION_TYPE VARCHAR2(9)
PLUGGED_IN VARCHAR2(3)
SEGMENT_SPACE_MANAGEMENT VARCHAR2(6)
DEF_TAB_COMPRESSION VARCHAR2(8)
RETENTION VARCHAR2(11)
BIGFILE VARCHAR2(3)
4.SQL>select default_tablespace,temporary_tablespace from dba_users where username='SYSTEM'; 更改表空间
运行结果:
DEFAULT_TABLESPACE
------------------------------------------------------------
TEMPORARY_TABLESPACE
------------------------------------------------------------
SYSTEM
TEMP
5.SQL>create tablespace test1_tablespace
datafile 'testfile.dbf' size 10m;
运行结果:
表空间已创建。
注:创造永久表空间,文件名'testfile.dbf' 大小为:10M
6.SQL>create temporary tablespace temptest1_tablespace
tempfile 'tempfile1.dbf' size 10m;
运行结果:
表空间已创建。
注:创造临时表空间,文件名'testfile1.dbf' 大小为:10M
7.SQL>desc dba_data_files
查看表空间
运行结果:
名称 是否为空? 类型
----------------------------------------- -------- ----------------------------
FILE_NAME VARCHAR2(513)
FILE_ID NUMBER
TABLESPACE_NAME VARCHAR2(30)
BYTES NUMBER
BLOCKS NUMBER
STATUS VARCHAR2(9)
RELATIVE_FNO NUMBER
AUTOEXTENSIBLE VARCHAR2(3)
MAXBYTES NUMBER
MAXBLOCKS NUMBER
INCREMENT_BY NUMBER
USER_BYTES NUMBER
USER_BLOCKS NUMBER
ONLINE_STATUS VARCHAR2(7)
8.SQL>select file_name from dba_data_files where tablespace_name='TEST1_TABLESPACE';
注:查看表空间的默认位置
运行结果:
FILE_NAME
--------------------------------------------------------------------------------
C:\ORACLEXE\APP\ORACLE\PRODUCT\10.2.0\SERVER\DATABASE\TESTFILE.DBF
9.设置联机
SQL>alter tablespace test1_tablespace
offline;
运行结果:
表空间已更改。
10.名词解释:status 表单是否联机提示 可根据上表数据查找
SQL>select status from dba_tablespaces where tablespace_name='TEST1_TABLESPACE';
运行结果:
STATUS
------------------
OFFLINE
11.改变读写模式
SQL> alter tablespace test1_tablespace
2 read only;只读
&read write;读写 改变后STATUS为ONLINE
运行结果:
表空间已更改。
12.增加数据文件
SQL> alter tablespace test1_tablespace
2 add datafile 'test2_file.dbf' size 10m;
运行结果:
表空间已更改。
<之后检查文件的实例>
SQL> select file_name from dba_data_files where tablespace_name='TEST1_TABLESPACE';
运行结果:
FILE_NAME
--------------------------------------------------------------------------------
C:\ORACLEXE\APP\ORACLE\PRODUCT\10.2.0\SERVER\DATABASE\TESTFILE.DBF
C:\ORACLEXE\APP\ORACLE\PRODUCT\10.2.0\SERVER\DATABASE\TEST2_FILE.DBF
13.删除数据文件
SQL> alter tablespace test1_tablespace
2 drop datafile 'test2_file.dbf';
表空间已更改。
<之后检查文件的实例>
SQL> select file_name from dba_data_files where tablespace_name='TEST1_TABLESPACE';
运行结果:
FILE_NAME
--------------------------------------------------------------------------------
C:\ORACLEXE\APP\ORACLE\PRODUCT\10.2.0\SERVER\DATABASE\TESTFILE.DBF
14.删除表空间
SQL> drop tablespace test1_tablespace including contents;
运行结果:
表空间已删除。
15.数据类型
NUMBER:
VARNUMBER:可以改变大小的数据类型
NVARNUMBER:
nvarchar2和varchar2都可以表示可变长度的字符,其中nvarchar2用于存储Unicode格式的数据,更适合存储中文数据。
16.其他数据类型
BLOB:4GB 二进制类型存储
CLOB:4GB 字符串类型存储
17.创建表
SQL> create table userinfo
2 ( id number(6,0),
3 username varchar2(20),
4 userpwd varchar2(20),
5 email varchar2(30),
6 regdate date);
运行结果:
表已创建。
18.查看表里数据类型
desc userinfo
名称 是否为空? 类型
----------------------------------------- -------- ----------------------------
ID NUMBER(6)
USERNAME VARCHAR2(20)
USERPWD VARCHAR2(20)
EMAIL VARCHAR2(30)
REGDATE DATE
19.增加表里的数据
SQL> alter table userinfo
2 add remarks varchar2(500);
运行结果:
表已更改。
SQL> desc userinfo
名称 是否为空? 类型
----------------------------------------- -------- ----------------------------
ID NUMBER(6)
USERNAME VARCHAR2(20)
USERPWD VARCHAR2(20)
EMAIL VARCHAR2(30)
REGDATE DATE
REMARKS VARCHAR2(500)
20.修改表里的数据类型
SQL> alter table userinfo
2 modify remarks varchar2(400);
运行结果:
表已更改。
SQL> desc userinfo
名称 是否为空? 类型
----------------------------------------- -------- ----------------------------
ID NUMBER(6)
USERNAME VARCHAR2(20)
USERPWD VARCHAR2(20)
EMAIL VARCHAR2(30)
REGDATE DATE
REMARKS VARCHAR2(400)
23.修改表里的数据
SQL> alter table userinfo
2 modify userpwd number(6,0);
运行结果:
表已更改。
24.删除表里的数据
SQL> alter table userinfo
2 drop column remarks;
运行结果:
表已更改。
25.修改表里的数据的名称
SQL> alter table userinfo
2 rename column email to new_email;
运行结果:
表已更改。
SQL> desc userinfo
名称 是否为空? 类型
----------------------------------------- -------- ----------------------------
ID NUMBER(6)
USERNAME VARCHAR2(20)
USERPWD NUMBER(6)
NEW_EMAIL VARCHAR2(30)
REGDATE DATE
26.修改表的名称
SQL> rename userinfo to new_userinfo;
表已重命名。
SQL> desc userinfo
运行结果:
ERROR:
ORA-04043: 对象 userinfo 不存在
27.删除表中所有数据(不包括所有数据类型及名称)
SQL> desc new_userinfo
运行结果:
名称 是否为空? 类型
----------------------------------------- -------- ----------------------------
ID NUMBER(6)
USERNAME VARCHAR2(20)
USERPWD NUMBER(6)
NEW_EMAIL VARCHAR2(30)
REGDATE DATE
SQL> truncate table new_userinfo;
表被截断。
28.删除表(包括表内所有数据和数据类型)
SQL> drop table new_userinfo;
表已删除。
SQL> desc new_userinfo
运行结果:
ERROR:
ORA-04043: 对象 new_userinfo 不存在
29.向表中添加数据
SQL> insert into userinfo
2 values(1,'xxx','123','xxx@qq.com',sysdate);
注:其中system是系统获取当前时间的一个函数
运行结果:
已创建 1 行。
SQL> select * from userinfo;
ID USERNAME
---------- ----------------------------------------
USERPASSWORD
------------------------------------------------------------
USEREMAIL
--------------------------------------------------------------------------------
REGDATE
--------------
1 xxx
123
xxx@qq.com
23-4月 -18
30.单个修改数据
首先创建了一个userinfo1的表
SQL> create table userinfo1
2 (id number(6,0),
3 regdate date default sysdate);
注:其中default是默认的意思
然后
SQL> insert into userinfo1
2 values(1);
insert into userinfo1
*
第 1 行出现错误:
ORA-00947: 没有足够的值
发现数据修改出现错误,因为是因为没有一一对应修改数据,所以应该规定数据的字段
如下:
SQL> insert into userinfo1(id)
2 values(1);
最后来坚持是否修改成功
SQL> select * from userinfo1;
ID REGDATE
---------- --------------
1 23-4月 -18
31.复制表内容
SQL> create table userinfo_new
2 as
3 select * from userinfo;
表已创建。
userinfo_new为新的表
userinfo为要复制的表