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. Linux下利用rsync实现多服务器文件同步

    windows做为文件服务器,使用rsync的windows服务版本,然后配置好就可以了.需要的朋友可以参考下. windows做为文件服务器,使用rsync的windows服务版本:cwRsyncS ...

  2. RecyleView

    RecyclerView是经典的ListView的进化与升华,它比ListView更加灵活,但也因此引入了一定的复杂性. 我们知道,ListView通过使用ViewHolder来提升性能.ViewHo ...

  3. JSP Scripting Element

    There are five different types of scripting elements Scripting Element Example Comment <%-- comme ...

  4. ogre入门笔记

    ogre作为一款开源的非商业渲染引擎, 除去效率不谈, 其设计结构十分优雅, 值得游戏从业者拥有和学习.本篇笔记基于ogre v1.9. 1.代码模块 ogre的核心代码分布如下图: ogreMain ...

  5. Java多线程基础:进程和线程之由来

    转载: Java多线程基础:进程和线程之由来 在前面,已经介绍了Java的基础知识,现在我们来讨论一点稍微难一点的问题:Java并发编程.当然,Java并发编程涉及到很多方面的内容,不是一朝一夕就能够 ...

  6. Python 练习 21

    #!/usr/bin/python # -*- coding: UTF-8 -*- h = 0 leap = 1 from math import sqrt from sys import stdou ...

  7. 谈谈JPA-03-基本注解

    @Entity @Entity 标注用于实体类声明语句之前,指出该Java 类为实体类,将映射到指定的数据库表.如声明一个实体类 Customer,它将映射到数据库中的 customer 表上. @T ...

  8. HTML5自学笔记[ 8 ]历史管理

    触发历史管理的三种方法: 跳转页面 改变hash值 pushState(在服务器环境下运行) 用hash值来触发历史管理: <!doctype html> <html lang=&q ...

  9. Shell基础:变量类型 & 运算符

    Shell变量 Shell支持三种类型的变量 用户自定义变量:用户自定义的变量,变量名以英文字母或下划线开头,区分大小写. 位置变量:根据位置传递参数给脚本的变量,默认支持9个位置变量 $1,$2,$ ...

  10. Or

    1.  数据库表空间和数据文件 2.关于数据库端口的解析 SQLSever  1433 MySql     3306 Oracle     1521 3.关于listener.ora位置 修改该界面上 ...