`
huangyongxing310
  • 浏览: 498599 次
  • 性别: Icon_minigender_1
  • 来自: 广州
文章分类
社区版块
存档分类
最新评论

SQL存储过程例子和有用的SQL

 
阅读更多

delete from cacherefresh where 1=1;
COMMIT;

//=====================================================
获取数据库所有表明的SQL

MYSQL
select table_name from information_schema.tables where table_schema='当前数据库';

select table_name  from information_schema.tables where table_schema = (select database()) order by  table_name;

select t.table_name from user_tables t;

ORACLE
SELECT * FROM user_tables
-- 加 ORDER BY TABLE_NAME 是让结果按照表名顺序展示
SELECT * FROM user_tables ORDER BY TABLE_NAME

https://www.cnblogs.com/cnsdhzzl/p/9848493.html


//=====================================================
oracle 删除表

declare
    p_table VARCHAR2(4000) := 'supplierdocumentinfo';
    v_count number(10) := 0;
begin
    select count(*)
    into v_count
    from user_tables
    where table_name = upper(p_table);

    if v_count > 0 then
        execute immediate 'drop table ' || p_table ||' purge';
    end if;
end;


mysql
判断表是否存在
select * from information_schema.tables where table_name ='acl';




//=====================================================



//=====================================================
//删除oracle相关表的SQL
create global temporary table delete_table_temp_tb (col1 varchar(200)) on commit delete rows;
create global temporary table delete_table_message_tb (col1 varchar(200)) on commit delete rows;
insert into  delete_table_temp_tb values('test11');
insert into  delete_table_temp_tb values('test22');
insert into  delete_table_temp_tb values('test33');

declare
    p_table VARCHAR2(200) := '';
    v_count number(10) := 0;

begin
    FOR r IN (select * from  delete_table_temp_tb) loop
            v_count := 0;
            p_table := trim(r.col1);
            begin
                select count(*)
                into v_count
                from user_tables
                where table_name = upper(p_table);

                if v_count > 0 then
                    execute immediate 'drop table ' || p_table ||' purge';
                end if;
            end;
        end loop;
end;
select * from  delete_table_temp_tb;
select * from  delete_table_message_tb;
drop table delete_table_temp_tb;
drop table delete_table_message_tb;


MySQL

CREATE TEMPORARY TABLE delete_table_temp_tb (
table_name VARCHAR(100) NOT NULL,
primary key (table_name)
);

insert into  delete_table_temp_tb values('esbtransaction ');
insert into  delete_table_temp_tb values('esbtransactionrelease ');

select * from  delete_table_temp_tb;


create procedure delete_table_procedure()
begin
    declare p_table varchar(100);
    declare v_count int;
    declare delTabl varchar(1000);
    -- 遍历数据结束标志 注意位置顺序
    DECLARE done INT DEFAULT FALSE;

    -- 注意用别名 因为id在上面已经有定义所以需要使用表的别名区别
    declare cur_test CURSOR for select trim(t.table_name) from delete_table_temp_tb t;
    -- 将结束标志绑定到游标
    DECLARE CONTINUE HANDLER FOR NOT FOUND SET done = TRUE;

    open cur_test;
    repeat
        fetch cur_test into p_table;
        set v_count =0;
        select  count(*)  into v_count from information_schema.tables where table_name = upper(p_table);
        if v_count > 0 then
            SET delTabl = CONCAT(' DROP TABLE  ', p_table);
            PREPARE temp FROM delTabl;
            EXECUTE temp;
        end if;
    until done
        end repeat;
    close cur_test;
end;


call delete_table_procedure();

# 删除临时表
drop TEMPORARY TABLE delete_table_temp_tb;
# 删除存储过程
drop procedure delete_table_procedure;




//=====================================================
ORAcle数据库删除字段的SQL语句 :
alter table tableName drop (name)

MySQL

MySQL中添加、删除字段,使用SQL语句操作
1.新增字段

alter table table1
add col1 int(2) not NULL DEFAULT 0 COMMENT '注释1',
add col2 VARCHAR(300) DEFAULT NULL COMMENT '注释2'                       
语法:alter table 表名 add 列名 int(2) 字段数据类型、长度 NOT NULL (是否可为空)DEFAULT 0  默认值


alter table MTClsPanelAttribute add defaultValue varchar2(100);

2.删除字段

alter table id_name drop column age,drop column address;


语法:alter table 表名 drop column 列名


//=====================================================
oracle中判断某个字段是否存在

select count(column_name)
from cols
where table_name = upper('acl')
  and column_name = upper('oid2')


MySQL
SELECT count(*) FROM information_schema.columns WHERE table_name = 'Acl' AND COLUMN_NAME = 'Oid2';


//=====================================================

//=====================================================
//删除oracle相关表的相关字段
create global temporary table delete_table_temp_tb (tb_name varchar(200),column_name varchar(200)) on commit delete rows;
create global temporary table delete_table_message_tb (tb_name varchar(200),column_name varchar(200)) on commit delete rows;
insert into  delete_table_temp_tb (tb_name,column_name) values('test11','test111');
insert into  delete_table_temp_tb (tb_name,column_name) values('test22','test222');

declare
    p_table VARCHAR2(200) := '';
    p_column_name VARCHAR2(200) := '';
    v_count number(10) := 0;

begin
    FOR r IN (select * from  delete_table_temp_tb) loop
            v_count := 0;
            p_table := trim(r.tb_name);
            p_column_name := trim(r.column_name);
            begin
                select count(column_name)
                into v_count
                from cols
                where table_name = upper(p_table)
                  and column_name = upper(p_column_name);

                if v_count > 0 then
                    execute immediate 'alter table ' || p_table ||' drop (' || p_column_name || ')';
                end if;
            end;
        end loop;
end;
select * from  delete_table_temp_tb;
select * from  delete_table_message_tb;
drop table delete_table_temp_tb;
drop table delete_table_message_tb;



MySQL
CREATE TEMPORARY TABLE delete_table_temp_tb
(
    tb_name     VARCHAR(100) NOT NULL,
    column_name VARCHAR(100) NOT NULL,
    primary key (tb_name)
);
insert into  delete_table_temp_tb (tb_name,column_name) values('test11','test111');
insert into  delete_table_temp_tb (tb_name,column_name) values('test22','test222');
insert into  delete_table_temp_tb (tb_name,column_name) values('objecthelpconfig ','name');

select * from delete_table_temp_tb;


create procedure delete_table_column_procedure()
begin
    declare p_table varchar(100);
    declare p_column varchar(100);
    declare v_count int;
    declare delTabl varchar(1000);
    -- 遍历数据结束标志 注意位置顺序
    DECLARE done INT DEFAULT FALSE;

    -- 注意用别名 因为id在上面已经有定义所以需要使用表的别名区别
    declare cur_test CURSOR for select trim(t.tb_name), trim(t.column_name)from delete_table_temp_tb t;
    -- 将结束标志绑定到游标
    DECLARE CONTINUE HANDLER FOR NOT FOUND SET done = TRUE;

    open cur_test;
    repeat
        fetch cur_test into p_table,p_column;
        set v_count = 0;
        SELECT count(*) into v_count FROM information_schema.columns WHERE table_name = upper(p_table) AND COLUMN_NAME = upper(p_column);
        if v_count > 0 then
            SET delTabl = CONCAT(' alter table  ', p_table,' drop column ',p_column);
            PREPARE temp FROM delTabl;
            EXECUTE temp;
        end if;
    until done
        end repeat;
    close cur_test;
end;


call delete_table_column_procedure();

# 删除临时表
drop TEMPORARY TABLE delete_table_temp_tb;
# 删除存储过程
drop procedure delete_table_column_procedure;



//=====================================================数据表备份
create table ts_dictionary_20160715 as select * from ts_dictionary;




//=====================================================
//=====================================================
//=====================================================



oracle
查询死锁
select b.owner,b.object_name,a.session_id,a.locked_mode from v$locked_object a,dba_objects b where b.object_id = a.object_id


SHOW TABLE STATUS FROM `xinttest_ext` //可列出指定数据库中所有表的信息,包括表类型;
SHOW CREATE TABLE `xinttest_ext` //可列出指定数据表的信息,包括表类型。






分享到:
评论

相关推荐

    SQL存储过程实例.doc

    SQL存储过程是数据库管理系统中一组为了完成特定功能的SQL语句集,它可以被命名并保存,然后在需要的时候调用,极大地提高了SQL代码的重用性和执行效率。在这个实例中,我们看到一个名为`Sum_wage`的存储过程,它的...

    C# winform调用SQL存储过程-菜鸟入门 详细注释

    内容概要:简单的C# winform调用存储过程实例,创建存储过程入参,通过SqlConnection对象和SqlCommand对象调用存储过程,获取存储过程的出参并显示出来,详细代码注释,希望对用到C#调用存储过程的小伙伴有帮助 ...

    SQLSERVER存储过程例子

    以下是针对"SQLSERVER存储过程例子"的详细解释。 1. **存储过程的概念**: 存储过程是一组为了完成特定功能的SQL语句,这些语句被组合在一起并保存在数据库中,用户可以通过调用存储过程的名字来执行这些语句。...

    学习sql存储过程的心得

    SQL存储过程是数据库管理系统中一组为了完成特定功能的SQL语句集合,它们被预先编译并存储在数据库...每个压缩包文件可能包含了对这些知识点的深入讲解或实例,通过阅读和实践,你可以更深入地理解和应用SQL存储过程。

    SQL 存储过程发送HTTP请求

    ### SQL存储过程发送HTTP请求知识点解析 在数据库管理和应用程序开发中,经常需要实现数据库与外部系统之间的交互。其中一种常见的需求就是从SQL Server中的存储过程发起HTTP请求来获取或发送数据。这种技术不仅...

    sql 存储过程的学习 和实例

    本篇文章将深入探讨SQL存储过程的学习与实例,以帮助你更好地理解和应用这一强大的数据库编程工具。 一、SQL存储过程的概念与优势 1. 存储过程是一种预编译的SQL语句集,它封装了复杂的业务逻辑,允许一次性提交多...

    sql存储过程实例

    简单的oracle存储过程demo,可以参照写法写个存储过程玩玩

    SQL Server 存储过程与实例

    SQL Server的存储过程是数据库管理系统中的一个重要特性,它是一组预先定义并编译好的SQL语句,用于执行特定的任务。存储过程的使用极大地...理解和熟练使用存储过程是SQL Server数据库管理员和开发者必备的技能之一。

    sql试题及答案,sql 行列转换,sql存储过程实例

    通过学习这些SQL试题、行列转换技巧和存储过程实例,你可以全面提升SQL技能,无论是日常的数据查询还是复杂的业务逻辑处理,都能得心应手。在实际工作中,不断练习和探索,将理论知识转化为实践能力,是成为SQL高手...

    VB SQL存储过程实例

    本文将深入探讨一个具体的VB SQL存储过程实例,旨在为开发者提供实用的指导和示例。 #### 核心知识点概述 1. **连接数据库**:使用`ADODB.Connection`对象建立与数据库的连接。 2. **执行存储过程**:通过`ADODB....

    sqlserver存储过程解密工具

    SQL Server存储过程是一种预编译的SQL代码集合,它们允许数据库开发者封装复杂的业务逻辑和数据操作,提高数据库应用的性能和可维护性。然而,由于存储过程的源代码通常是不可见的,对于需要查看或修改这些过程的...

    原创sql存储过程函数范例

    原创sql存储过程函数范例,一是为了自己方便查找,今天到公司因为没有我保存的一些范例,一个简单的例子写了半个小时,如果有范例直接套几分钟肯定搞定,所以索性上传到CSDN上,何时何地都能找到我的范例了。...

    SQL存储过程实例.rar

    在这个“SQL存储过程实例.rar”压缩包中,我们很可能会找到一系列关于如何设计、创建、执行和管理SQL存储过程的实际示例。 SQL存储过程的优点在于它们可以提高性能,因为它们只需要编译一次,然后在后续的调用中...

    sql存储过程PPT

    【存储过程】是SQL Server数据库管理系统中的一个重要特性,它类似于编程语言中的函数,可以执行一系列预定义的SQL语句和管理任务。存储过程能够提高系统的效率、安全性,并且支持模块化程序设计,使得代码重用变得...

    sqlserver存储过程语法及实例

    SQL Server 存储过程语法及实例 SQL Server 存储过程是一种 powerful 的数据库对象,它可以封装复杂的业务逻辑,并且提供了高效、安全和灵活的方式来管理数据。存储过程可以看作是一种特殊的函数,它可以接受输入...

    存储过程例子

    学习和理解"存储过程例子"和"自定义函数方法"中的内容,对于提升SQL Server数据库开发和管理技能至关重要。通过分析和实践这些示例,你可以掌握如何有效地利用存储过程和自定义函数来解决实际问题,提升数据库应用的...

    SQL存储过程实例

    ### SQL存储过程实例知识点 #### 一、存储过程概述 存储过程是预编译的一组SQL语句集合,存储在数据库服务器上,可以接受输入参数并返回一个或多个结果集或者返回值。它能增强代码的重用性和共享性,并且能够减少...

    自动执行SQL语句&创建标准的Sql 存储过程

    在SQL数据库管理中,自动执行SQL语句和创建标准的SQL存储过程是两个重要的操作,它们对于数据库管理和数据处理有着深远的影响。以下是这两个主题的详细解释: 首先,自动执行SQL语句是指通过一定的机制,让预定义的...

    SQL SERVER数据库开发之存储过程应用.rar

    在SQL Server数据库开发中,存储过程是至关重要的一个部分,它是一种预编译的SQL语句集合,可以被多次调用,以提高数据库操作的效率和安全性。本教程旨在深入探讨存储过程在SQL Server中的应用,帮助开发者更好地...

    学习SQL Server存储过程入门例子详解

    SQL Server 存储过程是数据库管理员和开发人员的必备技能,本文将通过三个简单的例子来详细介绍 SQL Server 存储过程的基本知识。 例 1:简单的存储过程 在这个例子中,我们将创建一个简单的存储过程,用于从 ...

Global site tag (gtag.js) - Google Analytics