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服务器。关系数据库,是建立在关系数据库模型基础上的数据库,借助于集合代数等概念和方法来处理数据库中的数据。欢迎分享,转载请注明来源:内存溢出
评论列表(0条)