sql静态表什么意思,mysql静态表和动态表区别
内容导航:
一、静态的SQL 和动态的SQL有什么区别
静态 SQL:静态 SQL 语句一般用于嵌入式 SQL 应用中,在程序运行前,SQL 语句必须是确定的,例如 SQL
语句中涉及的列名和表名必须是存在的。静态 SQL 语句的编译是在应用程序运行前进行的,编译的结果会存储在数据库内部。而后程序运行时,数据库将直接执行编译好的
SQL 语句,降低运行时的开销。动态 SQL:动态 SQL 语句是在应用程序运行时被编译和执行的,例如,使用 DB2 的交互式工具 CLP
访问数据库时,用户输入的 SQL 语句是不确定的,因此 SQL 语句只能被动态地编译。动态 SQL 的应用较多,常见的 CLI 和 JDBC
应用程序都使用动态 SQL。参考资料:/
二、动态sql和静态sql有何异同
而如果嵌入的SQL没有明确给出,如在Java中定义了一个字符串类型的变量sql:String
sql;,然后采用preparedStatement对象的execute方法去执行这个sql,该sql的值可能等于从文本框中读取的一个SQL或者从键盘输入的SQL,但具体是什么,在编译时无法确定,只有等到程序运行起来,在执行的过程中才能确定,这种SQL叫做动态SQL。
例如每一种数据库软件都有能够执行SQL语句的界面,那个界面接收的SQL就是动态SQL,因为数据库厂商在做这个界面时,并不知道用户会输入哪些SQL,只有在该界面执行后,接收了用户的实际输入,才知道SQL是什么。
sql 语句从编译和运行的角度可以分为两种,静态 sql和 动态 sql,这两种 sql 在使用方式、运行机制和性能表现等方面各有特点 : 静态
sql:静态 sql 语句一般用于嵌入式 sql 应用中,在程序运行前,sql 语句必须是确定的,例如 sql 语句中涉及的列名和表名必须是存在的。
静态 sql 语句的编译是在应用程序运行前进行的,编译的结果会存储在数据库内部。
而后程序运行时,数据库将直接执行编译好的 sql 语句,降低运行时的开销。
动态 sql:动态 sql 语句是在应用程序运行时被编译和执行的,例如,使用 db2 的交互式工具 clp 访问数据库时,用户输入的 sql
语句是不确定的,因此 sql 语句只能被动态地编译。
动态 sql 的应用较多,常见的 cli 和 jdbc 应用程序都使用动态 sql。
静态sql:语句类型在编程时候必须是确定好的。
比如 select * from employee where empno=’abc’ select * from employee where
empno=’12’都必须是确定的,唯一可以变化的是abc的值。
动态sql:语句类型可以在运行期间指定,比如clp就是最典型的动态sql程序,你可以输入任何命令。
静态sql的存取路径是在运行前就确定好的,而动态sql的存取路径是在运行时动态生成的。
因此生成的存取计划相对更优,但考虑到生成存取路径的开销,有可能应用程序的运行时间相对会比静态sql长些。
更多请参见:/
三、静态SQL语句中的“动态”功能是什么呢
答:一般地讲,在SELECT语句的SELECT部分实现选择功能,可以用DECODE函数。如:SELECTDECODE(字段1,‘A‘,字段A,‘B‘,字段B,‘C‘,字段C,字段D)FROM表名;这样就可以根据每条记录的字段1的值来选择其它字段的值。当然这里要注意:字段A,B,C,D的类型要一致或可自动转换。还可以在WHERE部分实现选择功能。如:SELECT……FROM表名WHERE(其它必需的条件)AND(C_V!=‘0‘OR可选条件1)AND(C_V!=‘1‘OR可选条件2)AND(C_V!=‘3‘OR可选条件3)……;说明:1。上面语句的含义为:当控制变量C_V为0时,按可选条件1来选择;当控制变量C_V为1时,按可选条件2来选择……2。要注意,控制变量的名字不要与表中的原有字段名相同。3。上面的这段程序可以写在PROCEDURE或FUNCTION中,控制变量可以作为过程或函数的输入参数。4。省略号表示类似上面三行的语句可以写多次。5。上面所述的WHERE部分中条件的选择,可以用在任何语句的WHERE部分中。
四、静态SQLSQL与动态SQL的具体内容是什么
答:1.静态SQLSQL与动态SQL:Oracle编译PL/SQL程序块分为两个种:其一为前期联编(earlybinding),即SQL语句在程序编译期间就已经确定,大多数的编译情况属于这种类型;另外一种是后期联编(latebinding),即SQL语句只有在运行阶段才能建立,例如当查询条件为用户输入时,那么Oracle的SQL引擎就无法在编译期对该程序语句进行确定,只能在用户输入一定的查询条件后才能提交给SQL引擎进行处理。通常,静态SQL采用前一种编译方式,而动态SQL采用后一种编译方式。本文主要就动态SQL的开发进行讨论,并在最后给出一些实际开发的技巧。2.动态SQL程序开发:理解了动态SQL编译的原理,也就掌握了其基本的开发思想。动态SQL既然是一种”不确定”的SQL,那其执行就有其相应的特点。Oracle中提供了Executeimmediate语句来执行动态SQL,语法如下:Excuteimmediate动态SQL语句using绑定参数列表returninginto输出参数列表;对这一语句作如下说明:1)动态SQL是指DDL和不确定的DML(即带参数的DML)。2)绑定参数列表为输入参数列表,即其类型为in类型,在运行时刻与动态SQL语句中的参数(实际上占位符,可以理解为函数里面的形式参数)进行绑定。3)输出参数列表为动态SQL语句执行后返回的参数列表。4)由于动态SQL是在运行时刻进行确定的,所以相对于静态而言,其更多的会损失一些系统性能来换取其灵活性。
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,请发送邮件至 55@qq.com 举报,一经查实,本站将立刻删除。转转请注明出处:https://www.szhjjp.com/n/119292.html