1. 创建数据库

create database dbName

2. 删除数据库  

drop database dbName

3. 备份sql server   

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

4. 创建新表

create table tabname
(
  col1 type1 [not null] [primary key],
  col2 type2 [not null],
  ..
)
--- 根据已有的表创建新表:
A:create table tab_new like tab_old (使用旧表创建新表)
B:create table tab_new as select col1,col2… from tab_old definition only

5. 删除表

drop table tabname  

6. 增加列

Alter table tabname add column col type
--- 注:列增加后将不能删除。DB2中列加上后数据类型也不能改变,唯一能改变的是增加varchar类型的长度。

7. 主键操作

--- 添加主键:
Alter table tabname add primary key(col)
--- 删除主键:
Alter table tabname drop primary key(col)

8. 创建索引

create [unique] index idxname on tabname(col….)
-- 删除索引:
drop index idxname
-- 注:索引是不可更改的,想更改必须删除重新建。

9. 创建视图

-- 创建视图:
create view viewname as select statement
-- 删除视图:
drop view viewname

10. 基本sql语句

-- 选择:
select * from table1 where 范围
-- 插入:
insert into table1(field1,field2) values(value1,value2)
-- 删除:
delete from table1 where 范围
-- 更新:
update table1 set field1=value1 where 范围
-- 查找:
select * from table1 where field1 like ’%value1%’ ---like的语法很精妙,查资料!
--分组
  一张表,一旦分组 完成后,查询后只能得到组相关的信息。
  组相关的信息:(统计信息) count,sum,max,min,avg  分组的标准
  在SQLServer中分组时:不能以text,ntext,image类型的字段作为分组依据
  在select统计函数中的字段,不能和普通的字段放在一起;
  group by 子句中的表达式可以包含from子句中表、派生表或视图的列。这些列不必显示在select子句<select>列表中
<select>列表中任何非聚合表达式中的每个表列或视图列都必须包括在group by列表中:
  --允许:
  select colA,colB from tb1 group by colA,colB;
  select colA + colB from tb1 group by colA,colB;
  select colA + colB from tb1 group by colA + colB;
  select colA + colB + constant from tb1 group by colA,colB; --constant表示常量
  --不允许
  select colA,colB from tb1 group by colA + colB;
  select colA + constant + colB from tb1 group by colA + colB;

    - 如果 select 子句 <select list> 中包含聚合函数,则 GROUP BY 将计算每组的汇总值。这些函数称为矢量聚合。
    - 执行任何分组操作之前,不满足 where子句中条件的行将被删除。
    - having 子句与 group by 子句一起用来筛选结果集内的组。
    - 如果组合列包含 null 值,则所有的 null 值都将被视为相等,并会置入一个组中。
    - 不能使用带有别名的 GROUP BY 来替换 AS 子句中的列名,除非别名将替换 FROM 子句内派生表中的列名。
    - 将不删除 GROUPING SETS 列表中的重复分组集。在以下情况下可能会生成重复分组集:多次指定一个列表达式,或者在 GROUPING SETS 列表中列出同样由 CUBE 或 ROLLUP 生成的列表达式。
    - ROLLUP、CUBE 和 GROUPING sets 支持区分聚合,例如,avg(distinct column_name)、count(distinct column_name) 和 SUM (DISTINCT column_name)。
    - 不能在索引视图中指定 ROLLUP、CUBE 和 GROUPING SETS。
    - 不能直接针对具有 ntext、text 或 image 的列使用 GROUP BY 或 HAVING。这些列可以在返回其他数据类型的函数(如 SUBSTRING() 和 CAST())中用作参数。
    - 不能直接在 <column_expression> 中指定 xml 数据类型方法。相反,可引用内部使用 xml 数据类型方法的用户定义函数,或引用使用这些数据类型方法的计算列。
    - 对于 GROUPING SETS、ROLLUP 和 CUBE 的 GROUP BY 限制
-- 排序:
select * from tb1 order by field1,field2 [desc]
-- 总数:
select count as totalcount from table1
-- 求和:
select sum(field1) as sumvalue from table1
-- 平均:
select avg(field1) as avgvalue from table1
-- 最大:
select max(field1) as maxvalue from table1
-- 最小:
select min(field1) as minvalue from table1
-- in
select * from tb_user where a [not] in ('v1','v2','v3','v4')
-- between ; between限制查询数据范围时包括了边界值,not between不包括
select * from tb1 where time between t1 and t2
select a,b,c, from tb1 where a not between v and v
-- top
select top 10 * from tbName where id < 5
--注意: n到结尾数据
select top n * from tbName order by id desc

11. 查询运算符

-- 1. UNION 运算符
UNION 运算符通过组合其他两个结果表(例如 TABLE1 和 TABLE2)并消去表中任何重复行而派生出一个结果表。当 ALL 随 UNION 一起使用时(即 UNION ALL),不消除重复行。两种情况下,派生表的每一行不是来自 TABLE1 就是来自 TABLE2。
-- 2. EXCEPT 运算符
EXCEPT 运算符通过包括所有在 TABLE1 中但不在 TABLE2 中的行并消除所有重复行而派生出一个结果表。当 ALL 随 EXCEPT 一起使用时 (EXCEPT ALL),不消除重复行。
-- 3. INTERSECT 运算符
INTERSECT 运算符通过只包括 TABLE1 和 TABLE2 中都有的行并消除所有重复行而派生出一个结果表。当 ALL 随 INTERSECT 一起使用时 (INTERSECT ALL),不消除重复行。
-- 注:使用运算词的几个查询结果行必须是一致的。

12. 外连接

-- 1. left (outer) join: 左外连接(左连接):结果集几包括连接表的匹配行,也包括左连接表的所有行。SQL: 
select a.a, a.b, a.c, b.c, b.d, b.f from a LEFT OUT JOIN b ON a.a = b.c
-- 2. right (outer) join:
右外连接(右连接):结果集既包括连接表的匹配连接行,也包括右连接表的所有行。
-- 3. full/cross (outer) join:
全外连接:不仅包括符号连接表的匹配行,还包括两个连接表中的所有记录。

13. 数据库操作

-- 1. 分离数据库:
exec sp_detach_db dbName;
-- 2. 附加数据库:
exec sp_attach_db --附加需要完整的路径名
@dbName = N'Test',   --要附加数据库的名字
@filename1 = N'E:\xms-work\vs-test\Test.mdf',
@filename2 = N'E:\xms-work\vs-test\Test_log.ldf';
-- 3. 修改数据库名称 exec sp_renamedb 'oldName','newName'

14. 表操作

-- 1. 复制表结构
  -- 1.1
    select * into tbNew from tbOld where 1<>1
  -- 注:"where 1=1"表示全选,"where 1=2"表示全不选
  -- 1.2
    select top 0 * into tbNew from tbOld
-- 2. 拷贝表数据(同数据库)
    insert into tbNew(a,b,c) select d,e,f from tbOld

15. 在线视图查询

select* from(select id,username from tb_user)T where t.id<10

16. 两张关联表,删除主表中已经在副表中没有的信息

delete from tb1 where not exists (
  select * from tb2 where tb1.field1=tb2.field1 )

17. 随机取出10条数据

select top 10 * from tablename order by newid()
-- 随机选择记录
select newid()

18. 删除重复记录

delete from tbName where id not in (
select max(id) from tbName group by col1,col2,...)

19. 列出数据库中所有的表名

select name from sysobjects where type='U' // U代表用户

20. 列出数据库中所有的列名

1. select name from syscolumns where id=object_id('tbName')
2. select name from syscolumns where id in (
    select id from sysobjects where type = 'u' and name = '表名')

21. 初始化表

truncate table tbName

22. 查看与某一个表相关的视图、存储过程、函数

select a.* from sysobjects a, syscomments b 
where a.id = b.id and b.text like '%tbName%'
-- 注: type='P',表示存储过程;type='FN',表示函数

23. 选择10到15的记录

1. select top 5 * from (select top 15 * from taName order by id asc) A order by id desc
2. select top 5 * from tbName where id in(select top id from tbName) order by id desc

SQL Server 语句整理的更多相关文章

  1. 基本的SQL Server 语句,包含 增、删、改、查 程序员必会

    这是我以前学习时, 整理的一套基础SQL Server增.删.改.查 等语句 ,初学者可以从上往下学完. 也方便自己忘记时翻看! create database SQLschool go --批 go ...

  2. 提升SQL Server速度整理索引碎片

    转载:http://wenku.baidu.com/view/f64c8a707fd5360cba1adbea.html SQL Server2005索引碎片分析和解决方法   毫无疑问,给表添加索引 ...

  3. sql server 碎片整理——DBCC SHOWCONTIG

    转自: 1.http://blog.sina.com.cn/s/blog_6d2675450101ks6i.html 2.http://www.cnblogs.com/CareySon/archive ...

  4. SQL SERVER 语句大全

    ·SQL的简单查询实例教程关键词:SQL语句大全 中文网 整理编辑,经典SQL语句大全(SQL语句大总结),欢迎网友投稿 下列语句部分是Mssql语句,不可以在access中使用.SQL分类:DDL— ...

  5. Oracle、Mysql、Sql Server语句的区别

    1.空值的处理——判断是否为空,为空时取一个值,不为空时取另一个值 1).Sql Server 中 ISNULL(check_expression,replacement_value) 解释:如果ch ...

  6. SQL Server通过整理索引碎片和重建索引提高速度

    本文章转载:http://database.51cto.com/art/201108/282408.htm SQL Server数据库中,当索引碎片太多时,就会拖慢数据库查询的速度.这时我们可以通过整 ...

  7. sql server语句

    一.基础1.说明:创建数据库CREATE DATABASE 数据库名2.说明:删除数据库drop database 数据库名3.说明:备份sql server--- 创建 备份数据的 deviceUS ...

  8. Sql Server语句大全

    T-SQL语句大全 --跳转到SQL myDemo USE [SQL myDemo] go --声明变量id declare @id int --为变量赋值:直接赋值 --将cid为3的cname值赋 ...

  9. 常用SQL Server 语句

       常用SQL语句大全 1.//创建数据库 CREATE DATABASE DBName 2.//删除数据库 DROP DATABASE DBName 3.//备份SQL SERVER --- 创建 ...

随机推荐

  1. Python 调用自定义包

    创建包 # mkdir -p /python/utils # touch /python/utils/__init__.py # vi /python/utils/Log.pyimport timed ...

  2. html5中插入视频和音频

    <audio src="1.mp3" controls></audio> <video src="1.mp4" controls& ...

  3. #Javascript:this用法整理

    常用Javascript的人都知道,[this這個關鍵字在一個函式內究竟指向誰]的這個問題很令人頭大,本人在這裡整理了一下Javascript中this的指向的五種不同情況,其中前三種屬於基本的情況, ...

  4. Nodejs开发框架Express3.0开发手记–从零开始

    转载请注明出处: http://blog.fens.me/nodejs-express3/ 程序代码已经上传到github有需要的同学,自行下载. https://github.com/bsspiri ...

  5. spring来了-01-概述

    思考 对象创建能否写死? 对象创建细节 对象数量 action       多个    [需要维护成员变量] service      一个    [不需要维护成员变量] dao           ...

  6. JavaScript:闭包

    根据MDN上的解释『闭包是指函数有自由独立的变量.换句话说,定义在闭包中的函数可以“记忆”它创建时候的环境.』 闭包有两个主要的作用: 1.访问内部函数的局域变量: 2.将创建的变量永久保存在内存中, ...

  7. 纯css3代码写下拉菜单效果

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  8. ubuntu14 eclipse luna 无法显示菜单 , 解决方案

    使用命令行 , 输入 Exec=env UBUNTU_MENUPROXY=0 <eclipse的安装路径>/eclipse 就可以了 或者建立一个Eclipse的快捷方式,eclipse. ...

  9. hdu 3038 How Many Answers Are Wrong ( 带 权 并 查 集 )

    How Many Answers Are Wrong Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Ja ...

  10. <<薪资至少10K的一道题,你能拿下吗>>练习

    偶尔要写写算法,是我平时用来保持感觉的常用的方法.今天看到园子里一面试题,看了一下感觉也能实现,不过过程确实艰的,自认为自己对算法的感觉还不错.不过这题确实我也用了差不多一下午的时间,基本上把工作时间 ...