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. Falcon:三代reads比对组装工具箱

    主页:github: PacificBiosciences/FALCON 简介 Falcon是一组通过快速比对长reads,从而来consensus和组装的工具. Falcon工具包是一组简单的代码集 ...

  2. java 多线程8(join)

    join():  加入.一个线程如果执行了join语句,那么就有新的线程加入,执行该语ij 句的线程必须要让步给新加入的线程先完成任务,然后才能继续执行. import java.util.Scann ...

  3. linux redis 安装

    linux下redis安装   我用的系统是:redhat [root@infa ~]# wget http://download.redis.io/releases/redis-2.8.12.tar ...

  4. cocos2dx从入门到精通课程

    一.移动开发基础 二.cocos2dx跨平台理论 三.cocos2dx框架 四.cocos2dx内存管理 五.cocos2dx的事件与消息机制 六.cocos2dx的定时器 七.cocos2dx的渲染 ...

  5. 扒一扒JavaScript 预解释

    带var关键字预解释 让我们先看下这段代码执行的结果: 代码如下: alert(n);//弹出undefinedvar n = 10; 弹出的结果是undefined,为何不是10?让我们再看下面这段 ...

  6. jmeter 建立一个网络服务的测试计划

    如何创建一个 测试计划 测试一个网络服务. 你会 创建5个用户发送请求到一页. 同时,你会告诉用户运行测试两次. 的总数 请求用户请求(5)x(1)x(重复2次)= 10 HTTP请求. 来 建立测试 ...

  7. Mybatis 学习-1

    本次MyBatis基础实例教程主要讲述MyBatis在项目中的配置方法,实体对象的关系映射.关联关系,以及如何实现一个BaseDao的功能 实例数据库的表结构 CREATE TABLE `blog_u ...

  8. SELECTION-SCREEN 文本丢失

    最近有点无聊....随便找点东西填了... 自从系统上线,经常出现程序的的文本丢失,然后选择界面就变成英文的了....一直在出现,就是解决不了,不知道到底是哪里的问题 严重怀疑是服务器上文件丢失... ...

  9. Oracle存储过程写法

    create or replace procedure QIANFEIGL_JIAOKUANDY( cebenh varchar2, kehuh varchar2, hetongh varchar2, ...

  10. linux win 的换行转换

    Linux和Windows和换行符不一样.Windows下是CRLF(\r\n或0d0a),Linux下是LF(\n或0a).在Linux下有时会遇到从Windows过来的文本文件,这些文件带了Win ...