学习sqlserve的一些笔记

创建表:

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

表数据的增删改查:
          

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

修改表结构:

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

去除重复记录:

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

排序:

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

  

查询数据前多少条:

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

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

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

        % 匹配任意多个字符

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

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

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

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

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

自定义转义符:escape

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

空值判断:

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

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

联合结果集:union,union all
  

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

T-SQL:
    声明变量:

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

    变量赋值:

1 set @name = ‘张三‘

    循环:

1 while 条件
2       begin
3         ..........
4       end

    条件判断:

1 if 条件
2 begin
3   ....
4 end
5 else
6 begin
7   ...
8 end

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

  

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

 

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

1 create proc 存储过程名称
2 as
3 begin
4   .......
5 end

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

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

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

 1 create  proc  usp_getPage
 2 @pageSize  int = 6,                          //每页的条数
 3 @pageIndex  int = 1,                         //当前要查看第几页
 4 @pageCount  int  output,                     //共多少页,输出参数
 5 @recordCount  int  output                    //共多少条记录,输出参数
 6 as
 7 begin
 8   select  *
 9   from  (select  * ,rownumber = row_number()  over(order  by  id  asc)  from  表名)  as  temp  10     where  temp.rownumber  between  (@pageIndex - 1)*@pageSize + 1  and  @pageSize*pageIndex   11     set  @recordCount = (select  count(*)  from  表名)     //计算表中记录
12     set  @pageCount = ceiling(@recordCount*1.0/pageSize)  //计算页数,ceiling()向上取整13 end
14  15 declare  @rc  int,@pc  int         //用于传递给输出参数
16 exec usp_getPage @pageSize = 6, @pageIndex = 1, @recordCount = @rc  output, @pageCount = @pc  output //执行带参数的存储过程
17 print  @rc                         //打印总记录条数
18 print  @pc                         //打印总页数

创建触发器:

1 create trigger 触发器名称 on 表名
2 after insert,delete,update        //当进行增加、删除、修改时触发
3 as
4 begin
5   ........
6 end
时间: 2024-10-09 15:20:45

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

学习HTML的一些笔记

初学网页制作,发现很大一本书概括起来不过是以下一系列的标记,记下这些经常用到的标记和知道怎么熟练使用就好了,还有其它的用到时再去查 <b></b>粗体<em></em>斜体 强调<i></i>斜体 不强调<strong></strong>强调<sup></sup>上标标记<sub></sub>下标标记<big></big>字体大小<s

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

学习Logistic Regression的笔记与理解 1.首先从结果往前来看下how logistic regression make predictions. 设我们某个测试数据为X(x0,x1,x2···xn),Θ(θ0,θ1,θ2,···θn)为我们的学习算法所学到的参数,那么 写成向量的话就变成 Z就是我们得到的结果,但是logistic regression只能处理二值数据,这个Z是一个连续值,它的范围可以很广.为了把这个Z化为二值变量,引人Sigmoid函数 这个函数的图形如下所示

&lt;&lt;Linux 命令行大全学习1~2章笔记&gt;&gt;暑假学习

 <<Linux 命令行大全学习1~2章笔记>>暑假学习 第一章:shell是什么? 1 shell Shell是一个和Linux内核交互的解释性程序,我们在图形用户下通过shell终端仿真器可以和操作系统进行交互. 2本章命令行 date:显示时间 cal:  显示日历 df: 显示磁盘驱动器内存 free:显示系统内存 exit:退出终端 第二章:导航 2.1理解文件系统树 Linux系统采用树的结构表示系统的文件.目录和设备文件. 2.2当前工作目录 树的顶部是根目录,通常/

《Python学习手册》读书笔记【转载】

转载:http://www.cnblogs.com/wuyuegb2312/archive/2013/02/26/2910908.html 之前为了编写一个svm分词的程序而简单学了下Python,觉得Python很好用,想深入并系统学习一下,了解一些机制,因此开始阅读<Python学习手册(第三版)>.如果只是想快速入门,我在这里推荐了几篇文章,有其他语言编程经验的人简单看一看就可以很快地开始编写Python程序了. 黑体表示章节, 下划线表示可以直接在原文对应位置查到的专有技术名词. 原书

学习编程是否做笔记的思考

做编程是否做笔记的思考: 做笔记的目的是将来怕忘.什么东西是重要的怕将来忘掉?1.需要记得东西:你自己的体会.经验.这些东西怕忘了,需要记笔记.2.什么不用记: 网上.书上随手可得的东西,没必要花时间记. 语言只是一门工具,精通工具的唯一手段就是熟练使用. 此外,编程又是一门语言,语言就是要多练才能熟练掌握. 所以,通常来说,学编程的时候不需要做笔记. 回到学习一门新语言的问题.可以有两种办法检验你是否学会了一门新语言:你可以用这个语言,做个实际项目:或者你可以教别人学会这个语言. 注:主要是自

IOS阶段学习第四天笔记(循环)

    IOS学习(C语言)知识点整理笔记 一.分支结构 1.分支结构分为单分支 即:if( ){ } ;多分支 即:if( ){ }else{ }  两种 2.单分支 if表达式成立则执行{ }里的语句:双分支 if表达式不成立 则执行else{ }里面的语句 3.字符串的输出系统会从数组地址一直打印到字符 ‘\0’为止,如果没有正确初始化,可能会打印出数组外的信息 4.如果分支结构里面只有一条执行语句可省略外面的大括号{} . 二.开关语句 1.语句结构 :switch (参数) case

IOS阶段学习第三天笔记(运算符)

                                         IOS学习(C语言)知识点整理笔记 1.运算符 一.算术运算符 1)表达式由变量.常量.运算符构成,有确定的类型和值 2)算术运算符包括: +(加),-(减),*(乘),/(除),%(模) 3)算术运算符优先级 括号()> * ,/ ,%  >+,- 4)%表示取余.取模  a%b 表示a除以b取余数 5)整数相除保留两位小数处理方法如: printf(“%.2f”,(float)14/9); 6)自增自减运算符

学习 慕课网 PHP工程师学习计划--我的笔记汇总

为了进一步学习PHP,本周我选定了慕课网的PHP工程师学习计划, 从今天2015-07-06 10:24:47开始从头学习:计划本周尽快学习完成本课程,谨此作为笔记. 有个好的学习计划和思路非常非常重要,非常感谢慕课网提供本套学习计划,希望更多地学习平台能提供像这样全面一条龙学习思路清晰地教程. 计划图:链接 我的学习状况:2015-07-06 10:29:46 笔记汇总 入门必学  篇 web基础 htmlcss基础 (笔记已完成)  

IOS 阶段学习第24天笔记(Block的介绍)

IOS学习(OC语言)知识点整理 一.Block 的介绍 1)概念: block 是一种数据类型,类似于C语言中没有名字的函数,可以接收参数,也可以返回值与C函数一样被调用 封装一段代码 可以在任何地方调用 block 也可以作为函数参数,以及函数返回值 2)Block 实例代码 1 //定义了一个block类型MyBlock,MyBlock类型的变量只能指向带两个int的参数和返回int的代码块 2 typedef int (^MyBlock)(int,int); 3 //定义一个函数指针 4