拟解决问题:
1.SQL语句如何执行?
2.动态SQL,依据条件动态构造SQL语句,但欲访问的表名和字段名对编写者是已知的。
动态SQL是相对静态SQL而言的。

1.静态SQL语言特点:SQL语言在程序中已经按照要求写好,只需要通过一些参数通过变量(高级语言程序语句中不带冒号)传送给嵌入式SQL语句即可(嵌入式SQL语句带冒号)。
动态SQL特点:SQL语句可以在程序中动态构造,形成一个字符串,如上例sqltext,然后再交给DBMS执行,交给DBMS执行时仍旧可以传递变量。

动态SQL,依据条件动态构造SQL语句,但欲访问的表名和字段名对编程者是未知的。
数据字典(Data dictionary),又称为系统目录。
是系统中的一些表或视图的集合,这些表或视图存储了数据库中各类对象的定义信息,这些对象包括用Create语句定义的表,列,索引,视图,权限,约束等,这些信息又称数据库的元数据–关于数据的数据。
数据字典通常存储的是数据库和表的元数据,即模式本身的信息:
1.与关系相关的信息(关系名字,每个关系的属性名及其类型,视图的名字及其定义,完整性约束)。
2.用户与账户信息,包括密码。
3.统计与描述性数据:如每个关系中元组的数目
4.物理文件组织信息
5.索引相关的信息
数据字典的结构
也是存储在磁盘上的关系。
专为内存高效访问设计的特定的数据结构。
模式的含义是指某一用户所设计使用的表,索引及其他数据库有关的对象的集合,因此表的完整名:模式名.表名。
Oracle数据字典由视图组成,分为三种不同形式:
USER_:用户视图,用户所拥有的对象。
ALL_:扩展的用户视图,用户可访问的对象。
DBA_:DBA视图。
构造复杂的动态SQL需要了解的数据字典及SQLDA,以获知关系模式信息。
SQLDA:SQL Descriptor Area,SQL描述符区域:
1.SQLDA是一个内存数据结构,内可装载关系模式的定义信息,如列的数目,每一列的名字和类型等。
2.通过读取SQLDA信息可以进行更为复杂的动态SQL的处理。
3.不同的DBMS的SQLDA格式并不是一致的。
版权声明:
本文来源网络,所有图片文章版权属于原作者,如有侵权,联系删除。
本文网址:https://www.mushiming.com/mjsbk/14110.html