zoukankan      html  css  js  c++  java
  • sql使用技巧

    sqlserver

    在已有值的列上自动增加

    获取列最大的值
    declare @Field int
    select @Field = ISNULL(Max(Field),0) from SupCsBill

    根据序号增加

    select @Field+(ROW_NUMBER() OVER (ORDER BY a.Uid ASC)) from SupCsBill

    sql server多个相同的数据删除

    1:自己添加一个区别字段,判断区别字段进行删除

    delete from (select ROW_NUMBER() over(partition by 代码 order by 时间 desc) as rows a,代码,时间 from 表) where a > 2

    2:查询出表中多于1的数据,查询出区别,根据区别进行删除

    select 区别字段 from 表 a right join (select 代码,MIN(时间) 最小时间 from 表 group by sddm having COUNT(代码)>1) b on a.代码= b.代码 and a.时间= b.时间 order by a.代码

    3:sql查询指定表外键约束

    引用地址:https://www.cnblogs.com/sishahu/p/5806930.html
    select
    a.name as 约束名,
    object_name(b.parent_object_id) as 外键表,
    d.name as 外键列,
    object_name(b.referenced_object_id) as 主健表,
    c.name as 主键列
    from sys.foreign_keys A
    inner join sys.foreign_key_columns B on A.object_id=b.constraint_object_id
    inner join sys.columns C on B.parent_object_id=C.object_id and B.parent_column_id=C.column_id
    inner join sys.columns D on B.referenced_object_id=d.object_id and B.referenced_column_id=D.column_id
    where object_name(B.referenced_object_id)='xxx';

     4:根据值查询表与列

    引用地址:https://blog.csdn.net/zengcong2013/article/details/55264202

    Declare @value VARCHAR(1024)
    --要查询的值
    set @value = 'Medical'

    SET NOCOUNT ON;
    DECLARE @sql VARCHAR(1024)
    DECLARE @table VARCHAR(64)
    DECLARE @column VARCHAR(64)
    CREATE TABLE #t (
    tablename VARCHAR(64),
    columnname VARCHAR(64)
    )
    DECLARE TABLES CURSOR FOR
    SELECT o.name, c.name FROM syscolumns c
    INNER JOIN sysobjects o ON c.id = o.id
    WHERE o.type = 'U' AND c.xtype IN (167, 175, 231, 239)
    ORDER BY o.name, c.name
    OPEN TABLES
    FETCH NEXT FROM TABLES
    INTO @table, @column
    WHILE @@FETCH_STATUS = 0
    BEGIN
    SET @sql = 'IF EXISTS(SELECT NULL FROM [' + @table + '] '
    SET @sql = @sql + 'WHERE RTRIM(LTRIM([' + @column + '])) LIKE ''%' + @value + '%'') '
    SET @sql = @sql + 'INSERT INTO #t VALUES (''' + @table + ''', '''
    SET @sql = @sql + @column + ''')'
    EXEC(@sql)
    FETCH NEXT FROM TABLES
    INTO @table, @column
    END
    CLOSE TABLES
    DEALLOCATE TABLES
    SELECT * FROM #t
    DROP TABLE #t

     5:查询数据库特定字段,修改字段类型

    declare @index int,@name varchar(100),@sql varchar(100)
    set @index=1
    while @index <=50 --查询出50张表有特定字段

    begin
    select @name=TABLE_NAME from (
    SELECT COLUMN_NAME,TABLE_NAME,ROW_NUMBER() OVER (ORDER BY a.COLUMN_NAME ASC) AS seq FROM INFORMATION_SCHEMA.columns a WHERE COLUMN_NAME='特定字段' --查询出有多少表有特定字段
    ) b
    where b.seq=@index
    set @sql=' alter table '+@name+' alter column 特定字段 float null '
    --select @sql
    exec(@sql)
    set @index=@index+1

    end

    6:查找一个外键被引用的所有表

    SELECT oSub.name AS [子表名称] ,
    fk.name AS [外键名称] ,
    SubCol.name AS [子表列名] ,
    oMain.name AS [主表名称] ,
    MainCol.name AS [主表列名]
    FROM sys.foreign_keys fk
    JOIN sys.all_objects oSub ON ( fk.parent_object_id = oSub.object_id )
    JOIN sys.all_objects oMain ON ( fk.referenced_object_id = oMain.object_id )
    JOIN sys.foreign_key_columns fkCols ON ( fk.object_id = fkCols.constraint_object_id )
    JOIN sys.columns SubCol ON ( oSub.object_id = SubCol.object_id
    AND fkCols.parent_column_id = SubCol.column_id
    )
    JOIN sys.columns MainCol ON ( oMain.object_id = MainCol.object_id
    AND fkCols.referenced_column_id = MainCol.column_id
    )
    WHERE oMain.name LIKE ‘% [主表名称]%’ ;

    ORACLE

    执行update,delete的时候还要点击提交语句才算是执行了

    select * from all_tables WHERE owner='STM' ;或者
    SELECT * FROM DBA_TABLES WHERE OWNER='STM';

    表和列
    DBA_TABLES、ALL_TABLES和USER_TABLES显示了有关数据库表的一般信息。
    DBA_TAB_COLUMNS、ALL_TAB_COLUMNS和USER_TAB_COLUMNS显示了每个数据库表的列的信息。
    注意:DBA_OBJECTS、ALL_OBJECTS和USER_OBJECTS显示了模式对象的信息,包括表。

    不积跬步,无以至千里。不积小流,无以成江海。千里之行,始于足下
  • 相关阅读:
    JSON格式化
    mysql字符串操作
    MySLQ排序后标记排行
    RestTemplate调用POST接口
    FULLTEXT INDEX全文索引
    Convert AS400 Spool to PFD Tools – PDFing
    openssl制作双向认证经过验证可行
    https web service in Tibco & PC
    Python获取百度浏览记录
    Python2.7学习
  • 原文地址:https://www.cnblogs.com/wusm/p/9115287.html
Copyright © 2011-2022 走看看