当前位置: 首页 > news >正文

修改数据库密码 进不了网站后台wordpress ssl 慢

修改数据库密码 进不了网站后台,wordpress ssl 慢,建筑信息平台查询,甪直做网站本文章的内容来源于对oracle课堂上讲的内容做出的笔记 静态sql和动态sql 静态sql#xff1a; 静态 SQL 是在编译时写死的 SQL 语句#xff0c;即在程序编写阶段#xff0c;SQL 语句已经被固定下来。 特点#xff1a; 1.预编译#xff1a; SQL 语句在程序编译时就会被…本文章的内容来源于对oracle课堂上讲的内容做出的笔记 静态sql和动态sql ·静态sql 静态 SQL 是在编译时写死的 SQL 语句即在程序编写阶段SQL 语句已经被固定下来。 特点 1.预编译 SQL 语句在程序编译时就会被解析、优化并生成执行计划然后存储在数据库中。 2.性能 由于编译时已经确定了执行计划因此执行时性能相对较高因为不需要解析和生成执行计划。 3.安全性 相对较高因为 SQL 语句是在编译时确定的不容易受到 SQL 注入等攻击。 例子 SELECT * FROM employees WHERE department_id 10;·动态sql 动态 SQL 是在运行时构建和执行的 SQL 语句允许根据程序运行时的条件来生成不同的 SQL 语句 特点 1.灵活性 允许在运行时动态构建 SQL 语句根据需要进行条件判断、循环等使得程序更加灵活。 2.执行计划 SQL 语句在运行时解析和生成执行计划可能会导致一些性能损失因为这个过程在运行时发生。 3.安全性 相对较低因为动态 SQL 可能会受到 SQL 注入攻击必须谨慎处理输入的参数。 DECLAREv_department_id NUMBER : 10;v_sql_statement VARCHAR2(100); BEGINv_sql_statement : SELECT * FROM employees WHERE department_id || v_department_id;EXECUTE IMMEDIATE v_sql_statement; END;什么时候使用动态sql 1.由于在PL/SQL中只能执行静态的查询和DML语句因此要执行DDL语句或DCL语句必须借助于动态SQL语句 2.在开发报表或一些复杂的应用程序逻辑时如果要基于参数化的查询方式比如动态的表字段和动态的表名称时可以使用动态SQL语句 3.基于数据表存储业务规则和软件代码可以将很多的业务规则的代码写在一个表的记录中在程序需要时检索不同的业务逻辑代码动态的执行 下面用几个例子从简单到复杂讲解动态sql的几种使用 例子一讲解基础 DECLARE sql_stmt1 VARCHAR2(128); BEGIN sql_stmt1:INSERT INTO rooms VALUES (99000, Building 7, 110, 50, Discussion Room E); EXECUTE IMMEDIATE sql_stmt1; COMMIT; END; sql_stmt1 被赋予一个包含 INSERT 语句的字符串。这个 INSERT 语句的目的是向名为 rooms 的表中插入一行记录包括房间号、建筑名称、楼层、容量和房间类型等信息。EXECUTE IMMEDIATE 语句用于在运行时执行动态生成的 SQL 语句。在这里它执行了 sql_stmt1 中存储的 INSERT 语句COMMIT是提交事务的命令。在数据库操作中当你执行一些修改数据的操作时比如 INSERT、UPDATE 或 DELETE最后需要使用 COMMIT 语句来确保这些修改永久保存到数据库中 例子二讲解使用绑定变量 DECLAREv_department_id NUMBER;v_department_name VARCHAR2(100);v_sql_statement VARCHAR2(200); BEGIN-- 使用 符号定义输入参数v_department_id : input_department_id;-- 构建动态SQL语句使用 :department_id 作为绑定变量v_sql_statement : SELECT department_name FROM departments WHERE department_id :department_id;-- 执行动态SQL语句并将输入的部门ID传递给绑定变量 :department_idEXECUTE IMMEDIATE v_sql_statement INTO v_department_name USING v_department_id;-- 输出查询结果DBMS_OUTPUT.put_line(部门名称为: || v_department_name); END;在这个示例中input_department_id 是一个替换变量当代码运行时系统将提示用户输入一个部门ID。这个输入的部门ID将被赋值给v_department_id然后用作动态SQL语句中的绑定变量:department_id。这样在执行动态SQL语句时用户输入的值将被正确地用于查询操作最后结果会显示查询到的部门名称。 这种方式对于需要用户交互式输入参数来动态构建SQL语句的情况非常有用可以根据用户输入灵活地执行查询或其他数据库操作需要注意的是 这个地方的冒号以及后面的一堆字符串遇见空格结束合起来代表一个占位符后面这个字符串是可以随意取名的最后使用USING这个关键字放替代这个占位符的真正的变量当然当有多个绑定变量的时候可以放多个占位符然后using后面也可以跟多个变量用逗号分割 例子三讲解执行动态PL/SQL块 DECLARE plsql_block VARCHAR2(500); BEGIN plsql_block : BEGIN EXECUTE IMMEDIATE TRUNCATE TABLE temp_table; FOR v_Counter IN 1..50 LOOP INSERT INTO temp_table VALUES (v_Counter, Loop Index); END LOOP; END;; EXECUTE IMMEDIATE plsql_block; COMMIT; END; 这个代码执行的内容实际上是plsql_block字符串当中的语句首先会对temp_table进行TRUNCATE截断然后在表中插入50行数据 例子四讲解使用RETURNING INTO DECLARE sql_stmt1 VARCHAR2(500); v_room_id NUMBER(5):99994; v_number_seats NUMBER(4); BEGIN sql_stmt1:UPDATE rooms SET number_seatsnumber_seats10 || WHERE room_id:room_id RETURNING number_seats INTO :number_seats; EXECUTE IMMEDIATE sql_stmt1 USING v_room_id RETURNING INTO v_number_seats; DBMS_OUTPUT.put_line(调整后的座位数量为|| v_number_seats); COMMIT; END; 使用 EXECUTE IMMEDIATE 执行存储在 sql_stmt1 中的动态 SQL 语句。通过 USING 子句将 v_room_id 绑定到 :room_id 参数通过 RETURNING INTO 子句将更新后的 number_seats 返回到 v_number_seats 变量中 例子五讲解OPEN...FOR处理多行查询 DECLARE sql_stmt1 VARCHAR2(500); TYPE t_RSCurType IS REF CURSOR; v_rs_cursor t_RSCurType; v_student_id NUMBER(5):10000; v_rs_record registered_students%ROWTYPE; BEGIN sql_stmt1 : SELECT student_id,department,course,grade FROM registered_students WHERE student_id :student_id; OPEN v_rs_cursor FOR sql_stmt1 USING v_student_id; LOOP FETCH v_rs_cursor INTO v_rs_record; EXIT WHEN v_rs_cursor%NOTFOUND; DBMS_OUTPUT.put_LINE(学号 || v_rs_record.student_id || || 系 ||v_rs_record.department || 课程: || v_rs_record.course || 分数: || v_rs_record.grade); END LOOP; CLOSE v_rs_cursor; END; t_RSCurType 是一个游标类型的声明用于定义 v_rs_cursor 的数据类型。 v_rs_cursor 是一个 REF CURSOR 类型的游标变量。 v_student_id 是一个 NUMBER 类型的变量赋值为 10000。 v_rs_record 是一个记录类型用于存储 registered_students 表的一行数据。 使用 OPEN 语句打开游标并使用 USING 子句将参数 v_student_id 绑定到 SQL 语句中的 :student_id使用 LOOP 开始循环通过 FETCH 语句从游标中获取数据并将其存储到 v_rs_record 变量中。循环会在游标到达结果集的末尾时退出 使用 CLOSE 语句关闭游标。 EXIT WHEN v_rs_cursor%NOTFOUND意思为搜到结尾就退出 总之整个代码的作用是查询指定学生的信息并逐行输出。这里使用了动态 SQL通过参数 v_student_id 绑定到 SQL 语句中并且游标用于逐行处理查询结果。输出使用 DBMS_OUTPUT 函数这通常用于在调试时输出信息 例子六讲解批量绑定 动态SQL批量绑定指的是在执行动态SQL语句时一次性处理多个绑定变量值而不是逐个处理 DECLARE sql_stmt1 VARCHAR2(500); TYPE t_student_id IS TABLE OF students.id%TYPE INDEX BY BINARY_INTEGER; TYPE t_first_name IS TABLE OF students.first_name%TYPE INDEX BY BINARY_INTEGER; TYPE t_last_name IS TABLE OF students.last_name%TYPE INDEX BY BINARY_INTEGER; v_student_id_tab t_student_id; v_first_name_tab t_first_name; v_last_name_tab t_last_name; v_major students.major%TYPE:‘History‘; BEGIN sql_stmt1 : SELECT student_id,first_name,last_name FROM students WHERE major :major; EXECUTE IMMEDIATE sql_stmt1 BULK COLLECT INTO v_student_id_tab,v_first_name_tab,v_last_name_tab USING v_major; FOR i IN 1..v_student_id_tab.COUNT LOOP DBMS_OUTPUT.put_line(学号 || v_student_id_tab(i) || || 名 ||v_first_name_tab(i) || 姓: || v_last_name_tab(i)); END LOOP; END; t_student_id、t_first_name、t_last_name 是三个关联数组的类型定义索引类型为 BINARY_INTEGER。 v_student_id_tab、v_first_name_tab、v_last_name_tab 是实际的关联数组变量所谓关联数组以v_student_id_tab为例简单来说就是一个数据类型和“students表当中的id”一样的元素的集合 使用 EXECUTE IMMEDIATE 执行动态 SQL 查询并通过 BULK COLLECT INTO 子句将查询结果批量收集到关联数组中。USING 子句将 v_major 绑定到 SQL 语句中然后使用 FOR 循环遍历关联数组逐行输出学生的学号、名字和姓氏 整个代码的作用是查询指定专业的学生信息并通过关联数组将学号、名字和姓氏分别存储并通过循环逐行输出。请注意动态 SQL 的使用使得 SQL 语句在运行时构建而不是在编译时 例子七讲解使用RETURNING BULK COLLECT INTO DECLARE sql_stmt1 VARCHAR2(500); TYPE t_room_id IS TABLE OF rooms.room_id%TYPE INDEX BY BINARY_INTEGER; TYPE t_number_seats IS TABLE OF rooms.number_seats%TYPE INDEX BY BINARY_INTEGER; v_room_id_tab t_room_id; v_number_seats_tab t_number_seats; v_building rooms.building%TYPE : Music Building; BEGIN sql_stmt1:UPDATE rooms SET number_seatsnumber_seats10 || WHERE building:building RETURNING room_id,number_seats INTO :room_id,:number_seats; EXECUTE IMMEDIATE sql_stmt1 USING v_building RETURNING BULK COLLECT INTO v_room_id_tab,v_number_seats_tab; FOR i IN 1..v_room_id_tab.COUNT LOOP DBMS_OUTPUT.put_line(教室编号||v_room_id_tab(i) ||调整后的 座位数量为|| v_number_seats_tab(i)); END LOOP; COMMIT; END; 整个代码块的作用是动态地更新符合条件的教室的座位数量并通过关联数组存储并输出更新后的教室编号和座位数量。请注意动态 SQL 的使用使得 SQL 语句在运行时构建而不是在编译时,很多比如说关联数组的用法跟例子六相似仅仅需要提的是这里使用动态 SQL 构建更新语句将满足条件的教室的座位数量增加10并通过 RETURNING INTO 子句将更新后的教室编号和座位数量返回到关联数组中
http://www.w-s-a.com/news/345394/

相关文章:

  • 网站策划书模板大全中国建设部官方网站资格证查询
  • vps绑定多个网站创意咨询策划公司
  • 做qq图片的网站网页制作与网站建设江西
  • 做爰全过程的视频网站网络文化经营许可证怎么办
  • 常德市网站建设网站开发用哪个软件好
  • 网站文章怎么更新时间重庆勘察设计网
  • 外卖网站设计企业网站优化做法
  • 专业的营销型网站制作wordpress版权年份
  • 程序员会搭建非法网站吗怎么把wordpress字去掉
  • 牡丹江营商环境建设监督局网站中国档案网站建设的特点
  • 网站欣赏网站欣赏知名企业网站搭建
  • 书店网站建设可行性分析为大型企业设计网络营销方案
  • 北京教育云平台网站建设中国服装设计网站
  • 网络公司专业做网站豌豆荚app下载
  • 网站建设属于什么岗位济宁网站建设_云科网络
  • wordpress网站监测fwa 网站 欣赏
  • 用jsp做的可运行的网站推广网络
  • 电商网站设计论文wordpress子文件夹建站
  • 临沂网站优化如何如何做公司的网站建设
  • 建设部网站 光纤到户沈阳网页设计兼职
  • 企业网站建设作用宁波企业网站推广效果好
  • wordpress课件站模板做网站的公司 贵阳
  • 低价格网站建设网站建设中的板块名称
  • 青岛网站建设华夏h5链接是什么意思
  • 贸易公司如何做网站百度做的网站一般在什么后台
  • 东莞网站设计方案广州做服装电商拿货的网站
  • 部队网站建设设计dede个人网站模板
  • 个人网站怎么自己备案重庆怎样网站推广
  • 做电影网站挣钱吗重庆网站建设技术托管
  • 网站建设用户登录网站商业授权含义