码迷,mamicode.com
首页 > 数据库 > 详细

SQL语句大全

时间:2019-04-15 20:15:16      阅读:167      评论:0      收藏:0      [点我收藏+]

标签:dev   复制表   code   obj   ali   back   技巧   run   比较   

备份sql server

//创建 备份数据的 device
USE master
EXEC sp_addumpdevice  ‘disk‘,
                      ‘testBack‘,
                      ‘c:\mssql7backup\MyNwind_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

注意:不适合大容量但数据操作

 

技巧

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

“where 1=1” 选择全部   

“where 1=2” 全部不选

常识

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

拓展

局部性原理

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

SQL语句大全

标签:dev   复制表   code   obj   ali   back   技巧   run   比较   

原文地址:https://www.cnblogs.com/whatarewords/p/10712191.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!