第七章:运行时参数
sql语句中的值,我们可以使用一个参数来代替,然后每次运行的时候都可以重新输入这个值
例如:
select last_name,salary,dept_id
from s_emp
where id=&id;
select last_name,salary,dept_id
from s_emp
where last_name=&name;
select last_name,salary,dept_id
from s_emp
where last_name='&name';
select last_name,salary,dept_id
from s_emp
where
salary>&a
and
salary<&b;
select last_name,salary,dept_id
from s_emp
where &con;
select last_name,salary,dept_id
from s_emp
&con;
注意:&变量名 表示使用这个oracle定义的变量,如果这个变量之前没有定义过,那么这个时候会让你重写输入这个变量的值.如果之前有定义过,那么就是要之前定义过的值
define undefine accept prompt命令
例如:
命令def可以定义一个变量
定义变量: def A=s_emp
查看定义的变量: def
取消定义的变量: undef A
然后变量A之前定义过,那么这里会之前替换为之前定义的值
select id,last_name,salary
from &A;
accept命令也可以定义一个变量,而且变量的值需要用户再次输入
例如:
accept A
回车之前需要用户再次输入变量A的值
之后可以使用def命令来查看刚刚定义的A变量
prompt可以在用户输入的时候显示一个提示信息:
例如:
accept name prompt '请输入name变量的值: '
hide可以隐藏用户的输入内容不被看见
例如:
accept name prompt '请输入name变量的值: ' hide
注意:这些定义的都是临时变量,sqlplus退出后重新登录进来就没有了
第八章:数据建模和数据库设计
软件开发的步骤可大致分为:
1.需求分析
2.系统设计
3.编码实现
4.系统测试
5.运行维护
系统设计中一个重要的环节就是数据库设计
数据库设计的时候需要先进行数据建模(实体关系图 E-R图)
数据建模的依据就是前期所做的需求分析
数据建模
参照179页的图形:
1.Model of system in client's mind
2.Entity model of client's model
3.Table model of entity model
4.Tables on disk
实体-关系图
实体-关系图(Entity Relationship Diagram),也称为E-R图,提供了表示实体、属性和关系的方法,用来描述现实世界的概念模型。
构成E-R图的基本要素是实体、属性和关系
实体(Entity):实体用来表示具有相同特征和性质的事物(类似于java的类),实体由实体名和实体属性来表示。
属性(Attribute):实体所具有的某一特性,一个实体可以有若干个属性
关系(Relationship):实体彼此之间相互连接的方式称为关系。一般可分为以下 3 种类型:
一对一关系 (1 ∶ 1)
一对多关系 (1 ∶ N)
多对多关系 (M ∶ N)
一对一关系 (1 ∶ 1) 外键写在哪一方都可以
一对多关系 (1 ∶ N) 外键写在多的一方,否则会出现数据冗余
多对多关系 (M ∶ N) 需要一张中间表(保存它们之间的关系,桥表),使它们的关系变为1对多
may-be 和 must-be
在实体与实体之间的关系中,都会存在着may-be和must-be这俩种情况,例如:
系统中有顾客和订单俩个实体(1:N关系),一个顾客对应多个订单,一个订单对应一个顾客,而且一个顾客可以(may be)没有订单和他对应,一个订单一定(must be)会有顾客和它对应.
ER图中符号的表示
1) # : 唯一, 以后可能表示为主键
2) * : 非空
3) o : 可有可无
4) 虚线: may be 顾客这边虚线,顾客可能没有