一直想学习oracle,前天在IBM的老机子里装了oracle 11g,貌似装了之后都比较担心机子,2g内存,运行了oracle后,内存占了60%。
以为oracle数据库会跟其他的数据库一样操作,比如想sql server或者mysql。装完才发现,想立即新建立一个数据库,看书发现还挺麻烦的。我想通过命令来建立,却找了挺多的书都好像很少涉及用命令来建立数据库的。
看了两天的书,发现oracle所谓的数据库跟我以前学的数据库好像有点区别。打开sqlplus,想用命令看看我建了多少个数据库,都查不出来。有些概念也看不懂。先总结一下这两天的知识点吧。
2、Oracle数据库的体系结构
2.1 物理存储结构
2.1.1 数据文件(Data File):存储数据库数据的文件。所有数据都保存在数据文件中。
特点:1)一个表空间由多个数据文件组成。
2)一个数据文件只对应一个数据库,而一个数据库通常包含多个数据文件。
数据文件的信息可以通过查询数据字典 dba_data_files了解:
- file_name: 数据文件的名称以及保存路径。
- tablespace_name: 数据文件对应的表空间名。
- bytes:数据文件的大小
- block:数据文件所占用的数据块数。
概念:表空间是oracle最大的逻辑存储结构。这也是oracle数据库与sql server等数据库的最大区别。(其实表空是不是跟sql server中的数据库相对应?)
查看当前数据库中所有表空间的名称:
select tablespace_name FORM data_tablespaces;
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++____________________________________________________________________________________________________________________________________
sqlplus工具的使用
用sqlplus连接数据库:
sqlplus [user_name [ /password ] [ @connect_identifier ]] [as {sysoper | sysdba | sysasm} /nolog]
使用connect命令指定不同的登录用户:
conn[ect] [{user_name [ /password] [ @connect_identifier]} [ as {sysdba | sysasm} ]]
使用Describe查看表结构:
describe [ user_name. ] object //object是表名
sqlplus一旦执行了某条sql语句,就会将该语句存入缓冲区中,该语句不再获得焦点,因此也不能接受再编辑操作,这是我门要操作的话就要用sql*plus语句来实现。
使用change命令对列执行修改操作,将dempno列修改为deptno列:
CHANGE /dempno/deptno
(当然啦,在这操作之前,你要选择你要修改的行号。)
2012_10_23
使用SAVE命令将缓冲区内容保存到文件:
save file_name [replace | append]
replace: 如果file_name文件已经存在,则覆盖file_name文件的内容
append: 如果文件已经存在,若不指定append或replace选项,则将会显示错误提示信息。 添加了append选项,则会在已经存在的文件的最后追加数据;
提示:在save命令中,file_name的默认后缀名为.sql 。默认保存路径为oracle安装路径的Administer\product\11.1.0\db_1\bin目录下。。当然了,你要是用save命令的话,一般都是令选路径的啦。
GET命令:
将文件中的内容读取到缓冲区中:
get file_name [list | nolist]
将文件读取到缓冲区后就可以使用编辑命令来对这些内容进行操作了。
START命令:
start 命令等同于@命令,表示读取文件中的内容到缓冲区,然后运行这写内容。
EDIT命令:
编辑缓冲区内容或文件内容;它将打开记事本为你吉安,在文件中显示缓冲区的内容,以 "/"结束;
要运行缓冲区的内容,可以直接用" / "来运行。
(这个比用上下键来修改好用多了)
SPOOL命令:
复制输出结果到文件中:
spool [ file_name [ append ] | off | out ]
append: 如果文件已经存在,则向该文件中追加结果;
一旦执行了spool命令后,它将一直向file_name输出结果,直到执行 spool off 命令。