• SQL语句大全


    知识点思维导图:

    备份sql server

    //创建 备份数据的 device
    USE master
    EXEC sp_addumpdevice  'disk',
                          'testBack',
                          'c:mssql7backupMyNwind_1.dat'
    //开始 备份
    BACKUP DATABASE pubs TO testBack    

    根据已有的表创建新表

    A:create table tab_new like tab_old (使用旧表创建新表)
    B:create table tab_new as SELECT col1,col2…from tab_old definition only

    增加一个列

    Alter table tabname add column col type

    注:列增加后将不能删除。DB2中列加上后数据类型也不能改变,唯一能改变的是增加varchar类型的长度。

    分组:Group by

    一张表,一旦分组完成后,查询后只能得到组相关的信息。

    组相关的信息:(统计信息) count,sum,max,min,avg  分组的标准)

    在SQLServer中分组时:不能以text,ntext,image类型的字段作为分组依据

    在selecte统计函数中的字段,不能和普通的字段放在一起;

    复制表(只复制结构)

    //法一:
    SELECT * INTO b FROM a WHERE 1 <> 1(仅用于SQlServer)
    //法二:
    SELECT top 0 * into b from a

    跨数据库拷贝数据(具体数据使用绝对路径)

    INSERT INTO b (a, b, c)
    SELECT
        d,e,f
    FROM b (in ‘具体数据库’)where 条件
    例:..from b in '"&Server.MapPath(".")&"data.mdb" &"' where..

    随机取出10条数据

    SELECT TOP 10 * FROM tablename ORDER BY NEWID()

    随机选择记录

    select newid()

    列出数据库里所有的表名

    SELECT name FROM sysobjects WHERE type = 'U'  //U代表用户

    列出表里的所有的列名

    SELECT  name FROM syscolumns WHERE id = OBJECT_ID('TableName')

    列示type、vender、pcs字段,以type字段排列,case可以方便地实现多重选择,类似select 中的case

    SELECT
        type,
        SUM(CASE vender
            WHEN 'A' THEN pcs ELSE 0
        END),
        SUM(CASE vender
            WHEN 'C' THEN pcs ELSE 0
        END),
        SUM(CASE vender
            WHEN 'B' THEN pcs ELSE 0
        END)
    FROM tablename
    GROUP BY type

    初始化表table1

    TRUNCATE TABLE table1

    注意:会删除数据并将标志值置回1,但不会记录日志,TRUNCATE只在删除全表适

    用,TRUNCATE是DDL不是DML

    一条sql 语句搞定数据库分页

    SELECT TOP 10
        b.*
    FROM   (SELECT TOP 20
               主键字段,
               排序字段
           FROM 表名
           ORDER BY 排序字段 DESC) a,
           表名 b
    WHERE b.主键字段 = a.主键字段
    ORDER BY a.排序字段

    删除重复记录

    //1
    delete from tablename where id not in (select max(id) from tablename group by col1,col2,...)
    //2
    select distinct * into temp from tablename
    delete from tablename
    insert into tablename select * from temp
    
    注意:不适合大容量但数据操作

    sql替换数据库字段中的字符

    UPDATE `table_name`
    SET `field_name` = REPLACE (
        `field_name`,
        'from_str',
        'to_str'
    )
    WHERE ...
    //说明:table_name —— 表的名字 field_name —— 字段名 from_str —— 需要替换的字符串 to_str —— 替换成的字符串 
    UPDATE shopping_hw SET  hw_pic= replace (hw_pic,  '*common', '+play' ) ;//内容“*common”替换为“+play”.

    技巧

    1=1,1=2的使用,在SQL语句组合时用的较多

    “where 1=1” 选择全部   

    “where 1=2” 全部不选

    常识

    在SQL查询中:from后最多可以跟多少张表或视图:256
    在SQL语句中出现 Order by,查询时,先排序,后取
    在SQL中,一个字段的最大容量是8000,而对于nvarchar(4000),由于nvarchar是Unicode码。  

    拓展

    局部性原理

    当一个数据被用到时,其附近的数据也通常会马上被使用。程序运行期间所需要的数据通常比较集中。

  • 相关阅读:
    关于SQLite
    Solr开发文档
    Using Fiddler with IIS
    SQL SERVER – Difference Between Union vs. Union All – Optimal Performance Comparison
    Git资料
    VS2010版快捷键
    IE9子iframe父iframe cookie设置诡异问题
    美国的企业家宣言
    互联网程序编写原则
    分析牛人js版删除代码注释(状态机机制)
  • 原文地址:https://www.cnblogs.com/whatarewords/p/10712191.html
Copyright © 2020-2023  润新知