创建表:

 create table 表名
{
  //定义列名
  id int identify(1,1) primary key,//自动编号:从1开始每次增长1,约束:主键约束
  name nvarchar(50) not null   //非空约束
}

表数据的增删改查:
          

 insert   into   表名 values()
delete from 表名
update 表名 set
select * from 表名
注:当删除表中所有数据还可使用truncate table 表名,它不能加where条件但是比delect所有表数据效率高,因为它通过释放数据页来删除数据,在事务日志中只记录数据页的释放;而且删除数据后计数器重置为定义的种子,如果没有定义种子,则使用默认值1。

修改表结构:

 alter table 表名
          add 列名 数据类型              //增加一列
          drop column 列名                //删除一列
          alter column 表名 数据类型 not null    //修改一列,并添加非空约束
          add constraint PK_表名_列名 primary key(列名)   //添加主键约束
          add constraint UQ_表名_列名 unique(列名)      //添加唯一约束
          add constraint DF_表名_列名 default(值) for 列名   //添加默认约束
          add constraint CK_表名_列名 check(列的条件表达式)   //添加检查约束
          add constraint FK_表名_列名 foreign key(外键表的列名) references 主键表名(主键表的列名)   //添加外键约束
          drop constraint 约束名1,约束名2............    //删除约束

去除重复记录:

 select distinct .... from 表名 ......     //对查询的结果集去重(针对每一列都相同的情况)

排序:

 select * from 表名 order by 列名 desc      //按照列名降序排序,默认为asc升序排序
2 注:order by语句必须放在整个sql语句的后面。

  

查询数据前多少条:

 select top
       值                  //如:5,则表示查询该表前5条
       (表达式)              //如:(2*2),则表示查询该表的前4条
       值 percent             //如:30 percent,则表示查询该表的前30%
             * from 表名

模糊查询:
    通配符:_ 表示任意的单个字符

 例如:select * from 表名 where 列名 like '张_'            //表示查询出 张字开头,单个任意字符结尾 的数据

        % 匹配任意多个字符

 例如:select * from 表名 where 列名 like '%张%'           //表示查询出 包含张字 的数据

        [] 表示范围内的单个字符

 例如:select * from 表名 where 列名 like '张[0-9]'     //表示查询出 张开头,0-9中任意数字结尾 的数据

        [^] 不在指定范围内的单个字符

 例如:select * from 表名 where 列名 like '[^0-9]'   //表示查询出 不是0-9中任意数字 的单个字符

自定义转义符:escape

 例如:select * from 表名 where 列名 like '%/[%' escape '/'     //定义/为转义符,此语句表示查询出所有包含[的数据

空值判断:

 select * from 表名 where 列名
                 is null         //判断为空
                 is not null      //判断部位空

类型转换函数:cast(表达式 as 数据类型)、convert(数据类型,表达式[,格式])
       注:[]表示参数可写可不写。

联合结果集:union,union all
  

 例如:select 列名1,列名2 from 表1
                   union all
                         select 列名3,列名4 from 表2
注意:联合的结果集列名默认使用第一个结果集中的列名,每个结果集必须有相同的列数,每一列的数据类型必须相容。
区别:union会去除重复列,所以效率较低。

T-SQL:
    声明变量:

 declare @name nvarchar(50),@age int = 18

    变量赋值:

 set @name = '张三'

    循环:

 while 条件
      begin
        ..........
      end

    条件判断:

 if 条件
begin
  ....
end
else
begin
  ...
end

事务:
    特性ACID:
    原子性(Atomicity):事务是一个完整的操作,事务的各个步骤是不可分割的,要么全部执行,要么全都不执行。
    一致性(Consistency):当事务完成时,数据必须处于一致状态。
    隔离性(Isolation):对数据进行修改的所有并发事务是彼此隔离的。
    持久性(Durability):事务完成后,它对数据库的修改被永久保持。

  

 例子:
   begin transaction                //开始一个事务
   declare @sum int = 0               //声明一个变量,记录sql语句出错次数
     sql语句1
     set @sum = @sum + @@error        //@@error:如果sql语句没有错返回0
     sql语句2
     set @sum = @sum + @@error
     if @sum <> 0               //如果sum不等于0,表示有sql语句出错
     begin
       rollback                 //回滚
     end
     else
     begin
       commit                //提交该事务
     end 

 

存储过程:
      执行存储过程:exec 存储过程名称
      创建存储过程:

 create proc 存储过程名称
2 as
begin
  .......
end

      创建带参数的存储过程及执行:

 create proc usp_test                            //创建代参的存储过程
@name nvarchar(50),                        //定义参数
@age int output                        //定义输出参数
as
begin
  set @age = select 表.age from 表 where 表.name = @name    //参数的使用
end declare @num int                           //声明一个变量,传递给输出参数
exec usp_test @name = '张三',@age = @num output        //执行带参的存储过程
print @num                             //输出变量,即输出参数的值

  例子(存储过程实现分页):

 create  proc  usp_getPage
@pageSize int = 6, //每页的条数
@pageIndex int = 1, //当前要查看第几页
@pageCount int output, //共多少页,输出参数
@recordCount int output //共多少条记录,输出参数
as
begin
  select *
  from (select * ,rownumber = row_number() over(order by id asc) from 表名) as temp where temp.rownumber between (@pageIndex - 1)*@pageSize + 1 and @pageSize*pageIndex set @recordCount = (select count(*) from 表名) //计算表中记录
set @pageCount = ceiling(@recordCount*1.0/pageSize) //计算页数,ceiling()向上取整 end

declare @rc int,@pc int //用于传递给输出参数
exec usp_getPage @pageSize = 6, @pageIndex = 1, @recordCount = @rc output, @pageCount = @pc output //执行带参数的存储过程
print @rc //打印总记录条数
print @pc //打印总页数

创建触发器:

 create trigger 触发器名称 on 表名
after insert,delete,update     //当进行增加、删除、修改时触发
as
begin
  ........
end

学习sqlserve的一些笔记的更多相关文章

  1. canvas学习之API整理笔记(二)

    前面我整理过一篇文章canvas学习之API整理笔记(一),从这篇文章我们已经可以基本了解到常用绘图的API.简单的变换和动画.而本篇文章的主要内容包括高级动画.像素操作.性能优化等知识点,讲解每个知 ...

  2. 学习Logistic Regression的笔记与理解(转)

    学习Logistic Regression的笔记与理解 1.首先从结果往前来看下how logistic regression make predictions. 设我们某个测试数据为X(x0,x1, ...

  3. 转载-《Python学习手册》读书笔记

    转载-<Python学习手册>读书笔记 http://www.cnblogs.com/wuyuegb2312/archive/2013/02/26/2910908.html

  4. python学习第五次笔记

    python学习第五次笔记 列表的缺点 1.列表可以存储大量的数据类型,但是如果数据量大的话,他的查询速度比较慢. 2.列表只能按照顺序存储,数据与数据之间关联性不强 数据类型划分 数据类型:可变数据 ...

  5. 前端学习:JS(面向对象)代码笔记

    前端学习:JS(面向对象)代码笔记 前端学习:JS面向对象知识学习(图解) 创建类和对象 创建对象方式1调用Object函数 <body> </body> <script ...

  6. 《Data Structures and Algorithm Analysis in C》学习与刷题笔记

    <Data Structures and Algorithm Analysis in C>学习与刷题笔记 为什么要学习DSAAC? 某个月黑风高的夜晚,下班的我走在黯淡无光.冷清无人的冲之 ...

  7. Elasticsearch7.X 入门学习第八课笔记-----索引模板和动态模板

    原文:Elasticsearch7.X 入门学习第八课笔记-----索引模板和动态模板 版权声明:本文为博主原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明. 本文链接: ...

  8. Elasticsearch7.X 入门学习第七课笔记-----Mapping多字段与自定义Analyzer

    原文:Elasticsearch7.X 入门学习第七课笔记-----Mapping多字段与自定义Analyzer 版权声明:本文为博主原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处 ...

  9. Elasticsearch7.X 入门学习第五课笔记---- - Mapping设定介绍

    原文:Elasticsearch7.X 入门学习第五课笔记---- - Mapping设定介绍 版权声明:本文为博主原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明. 本 ...

随机推荐

  1. mysql数据类型长度

    1个字节= 8位  tinyint 为一个字节  2的8次方= 256 所以最多存储到256 日期和时间数据类型 MySQL数据类型 含义 date 3字节,日期,格式:2014-09-18 time ...

  2. php session阻塞页面分析及优化 (session_write_close session_commit使用)

    转: http://www.tuicool.com/articles/bqeeey 首先看下下面代码, session1.php 文件 <?php ini_set('session.save_p ...

  3. linux下iptables防火墙设置

    各位linux的爱好者或者工作跟linux相关的程序员,我们在工作中经常遇到应用服务器端口已经启动, 在网络正常的情况下,访问不到应用程序,这个跟防火墙设置有关 操作步骤 1.检查有没有启动防火墙 s ...

  4. 七大排序的个人总结(二) 归并排序(Merge

    七大排序的个人总结(二)   归并排序(Merge  归并排序(Merge Sort): 归并排序是一个相当“稳定”的算法对于其它排序算法,比如希尔排序,快速排序和堆排序而言,这些算法有所谓的最好与最 ...

  5. 解决Axure发布分享预览的3个方法

    公司的同事制作的一个产品原型,要发给我,我当时正在客户这里,电脑上并没有Axure,客户又催得急,感到一阵无奈.这次回来之后,经过一番摸索,发现还是有办法的.这里给大家分享一下Axure发布分享预览的 ...

  6. 1.struts 防止表单重复提交 2. 拦截器

    1. 使用struts 防止表单提交 时, form 表单必须使用struts标签库编写,如<s:form/> 等,而不是html标签 2. 拦截器是struts2的核心.  interc ...

  7. python list和函数之间的复制和原地址修改问题

    def change(a): a.pop() #自带的方法都是原地址修改 a=[,,] change(a) print (a)#直接修改了3. def change(a): a=[,,,] #复制操作 ...

  8. 2018.08.28 洛谷P3345 [ZJOI2015]幻想乡战略游戏(点分树)

    传送门 题目就是要求维护带权重心. 因此破题的关键点自然就是带权重心的性质. 这时发现直接找带权重心是O(n)的,考虑优化方案. 发现点分树的树高是logn级别的,并且对于以u为根的树,带权重心要么就 ...

  9. cgo -rpath指定动态库路径

    // #cgo CFLAGS: -Wall // #cgo LDFLAGS: -Wl,-rpath="/home/liuliang/ffmpeg-build/lib" // #cg ...

  10. 【转】web应用缓慢故障分析

    在这以后里分享一篇关于web应用缓慢的分析过程,感觉挺有用的. 原文出处:http://xjsunjie.blog.51cto.com/999372/751585 友在一家购物网站做运维不久,今日打电 ...