目录
1.Oracle概述(略讲)
2.Oracle体系结构(略讲)
3.SQL*Plus命令
SQL*Plus工具(可用第三方的Oracle开发工具如PL/SQL Developer和TOAD代替)功能:
设置SQL*Plus的运行环境
常用SQL*Plus命令
1.HELP命令
2.DESCRIBE命令
3.SPOOL命令
4.其他常用命令
格式化查询结果
1.column命令
2.ttitle和btitle命令
1.关系型数据库的基本理论(在关系数据模型中,关系可看成由行和列交叉组成的二维表格,表中一行称为一个元组,用来标识一个实体,表中的列称为属性)(还有E-R模型,设计三范式)。
2.oracle数据库的安装与卸载。
3.3种常用的数据库管理工具(SQL*Plus工具(用户对数据库进行操作),Oracle企业管理器OEM(以图形的方式提供用户对数据库的操作),数据库配置助手(创建和配置数据库))。
4.启动与关闭数据库实例(startup,shutdown)。
1.逻辑存储结构的组成(数据块,数据区,段,表空间)
一个表空间由一个或多个数据文件组成,一个数据文件只属于一个表空间。表空间相当于文件夹,数据文件相当于其中的文件。
2.物理存储结构的组成(数据文件,控制文件,日志文件,参数文件,密码文件)
3.服务器结构(系统全局区SGA,程序全局区PGA,前台进程,后台进程)
4.数据字典
1.定义变量,编写SQL语句。
2.插入、修改、删除、查询,以及执行命令和PL/SQL语句。
3.格式化查询结构、运算处理、保存、打印机输出等。
4.显示任何一个表的字段定义,并实现与用户进行交互。
5.完成数据库的几乎所有管理工作。比如,维护表空间和数据表。
6.运行存储在数据库中的子程序或包。
7.以sysdba身份登录数据库实例,可以实现启动/停止数据库实例。
使用set命令,可以设置每页显示的行数,每行最大字符数,输出结果是否滚动显示,显示数值的默认格式等。
例如,使用HELP命令查看startup命令的语法格式及功能描述。
help startup
运行结果:
使用help index命令查看SQL*Plus命令清单
help index
运行结果:
使用非常频繁,用来查询指定数据对象的组成结构。比如,通过该命令查询表和视图的结构,查询结果就会列出相应对象各个列的名称、是否为空及类型等属性。
下面通过describe命令(可简写为desc)查询dba_tablespaces数据字典表(用来存储表空间信息的内部表)的结构。
desc dba_tablespaces;
查询员工表
desc emp;
可以在编写sql的过程中使用该命令查询列名等信息,方便编写sql,不过要加一个#号:
把查询结果输出到指定文件中,以便保存查询结果并方便打印。可简写为spo。
比如,
文件:
define命令
定义一个用户变量并可以给它分配一个char值
show命令
用来显示SQL*Plus系统变量或环境变量的值
如,显示当前数据库实例的数据块大小,显示用户名。
edit命令
用来编辑SQL缓冲区或指定磁盘文件中的SQL语句或PL/SQL块。
save命令
将SQL缓冲区中的最近一条SQL语句或PL/SQL块保存到一个文件中。
则:
get命令
把一个SQL脚本文件的内容放进SQL缓冲区。
start和@命令
都可以用来执行一个SQL脚本文件
文件内容:
为了在SQL*Plus环境(就是那种黑底白字的窗口)中生成符合用户需要规范的报表,现在有各种图形化工具(PL/SQL Developer等)可以实现,所以了解一下就行。
格式化查询结果、设置列宽度、重新设置列标题等
format选项
格式化指定的列,需要在后面跟一个掩码格式
col emp_salary format $999,999.00
heading选项
定义列标题,多用于把英文形式的标题改为中文形式
col emp_name heading 员工姓名
null选项
在该选项后面指定一个字符串来代替null
col emp_type null '暂未分配职位'
on|off选项
用于控制定义的显示属性的状态。默认为on,可以用off关闭之前设置的格式和属性。
col emp_salary format $999,999.00
col emp_salary off
wrapped/word_wrapped选项
都用于折行,wrapped按照指定长度折行,word_wrapped按照完整字符串(遇到空格)折行。
col col1 format a5
col col1 wrapped
col col1 word_wrapped
分别用来设置报表打印时(即查询结果)每页的顶部和底部标题。
set pagesize 8
ttitle center '销售情况排行表'
btitle left '打印日期:xx年xx月 打印人:xx'
select * from emp;