动态sql的种类有哪些 ?

动态sql的种类有哪些 ?,第1张

1、数据 *** 纵语言(DML):用来 *** 纵数据库中数据的命令。包括:select、insert、update、delete。

2、数据定义语言(DDL):用来建立数据库、数据库对象和定义列的命令。包括:create、alter、drop。

3、数据控制语言(DCL):用来控制数据库组件。

SQL文本在编译时是未知的。

例如,SELECT语句包含的标识符(如表名)在编译时是未知的,或者WHERE子句的条件数量在编译时是未知。

静态SQL不支持

例如,在PL/SQL中用静态SQL只能执行查询以及DML语句。如果想要执行DDL语句,只能使用动态SQL。

当让使用静态SQL,也有它的好处:

编译成功验证了静态SQL语句引用有效的数据库对象和访问这些对象的权限

编译成功创建了模式对象的依赖关系

动态SQL语句是一个最多只能返回一行的SELECT语句

使用动态SQL语句返回单列,查询SCOTT的薪水:

declare

v_sql_text varchar2(1000)

v_sal number

v_enameemp.ename%type := 'SCOTT'

begin

v_sql_text := 'select e.sal from emp e where e.ename = :ename'

execute immediate v_sql_text

into v_sal

using v_ename

dbms_output.put_line(v_ename || ':' || v_sal)

end

使用动态SQL返回一条记录,查询SCOTT的基本信息:

declare

v_sql_text varchar2(1000)

v_enameemp.ename%type := 'SCOTT'

vrt_empemp%rowtype

begin

v_sql_text := 'select * from emp e where e.ename = :ename'

execute immediate v_sql_text

into vrt_emp

using v_ename

dbms_output.put_line(v_ename || '的基本信息:')

dbms_output.put_line('工号:' || vrt_emp.empno)

dbms_output.put_line('工资:' || vrt_emp.sal)

dbms_output.put_line('入职日期:' || vrt_emp.hiredate)

end

关系数据库。根据查询相关公开信息显示,MySQL是一个关系数据库管理系统,mysql命令可支持直接执行SQL语句,而不必登录MySQL服务器。关系数据库,是建立在关系数据库模型基础上的数据库,借助于集合代数等概念和方法来处理数据库中的数据。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/10065628.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-04
下一篇 2023-05-04

发表评论

登录后才能评论

评论列表(0条)

保存