前段时间有朋友问了一些sql怎么优化,后来整理了一下,趁今天分享下数据库怎么去优化sql? (1) 选择最有效率的表名顺序(只在基于规则的优化器中有效):概述
2024年04月12日
前段时间有朋友问了一些sql怎么优化,后来整理了一下,趁今天分享下数据库怎么去优化sql? (1) 选择最有效率的表名顺序(只在基于规则的优化器中有效):概述
2024年04月12日
本文将介绍SQL中的DROP操作,包括DROP INDEX、DROP TABLE和DROP DATABASE语句,以及如何使用它们来撤销索引、表和数据库。通过具体的示例,我们将深入了解这些DROP操作的使用方法和注意事项。
2024年04月12日
前言: 在日常数据库运维过程中,可能经常会用到各种拼接语句,巧用拼接SQL可以让我们的工作方便很多,达到事半功倍的效果。本篇文章将会分享几个日常会用到的SQL拼接案例,类似的SQL还可以举一反三,探索出更多的可能性哦。 _注意_:适用于5.7版本,其他版本可能稍许不同。
2024年04月12日
--一次性插入多条记录(批量插入)。 不用写values子句,用子查询代替values子句。(子查询的列要和插入的表的列保持对应)
insert into emp10 select * from emp where deptno=10; --批量插入,如果插入海量数据效率低
海量插入数据:
1、数据泵(PLSQL程序)
dbms_datapump(程序包)
2、SQL*Loader
3、外部表
delete和truncate的区别 (Oracle中truncate快,MySql中delete快。原因:Oracle有undo数据(还原数据)的功能)
1、delete逐条删除;truncate先摧毁表 再重建2
2、(*)delete是DML truncate是DDL
(可以回滚) (不可以回滚)
3、delete不会释放空间 truncate会
4、delete会产生碎片 truncate不会
5、delete可以闪回(flashback) truncate不可以 (flashback其实是一种恢复)
alter table 表名 move; --去掉碎片 (数据的导入和导出也可以去掉表中的碎片 exp/imp)
set feedback off; --关闭sql语句执行结果提示信息。
@D:\MyData.sql; --执行外部sql脚本
Oracle中的事务
1、起始标志: 事务中的第一条DML语句(insert、delete、update、select)
2、结束标志:显式提交:commit 隐式提交: 正常退出或 DDL 或 DCL (DDL语句不能回滚,因为本身就是提交)
显式回滚:rollback 隐式回滚: 非正常退出 掉电 宕机
set transaction read only; --设置事务隔离级别(read only是Oracle专有的隔离级别(只能进行查询操作))
savepoint a; --事务保存点
rollback to savepoint a; --回滚到事务指定的保存点