169it科技资讯
169it -->


当前位置:  数据库>sqlserver

总结一周内学习的Sql经验(一)

    来源: 互联网  发布时间:2014-10-14

—周学习总结

1.在建表是定义的数据类型和我们插入数据时数据类型不一致

2.注意join 和 left join在运用中的差别。

3.group by 原则:select 后面的所有列中,没有聚合函数的列,必须出现在group by 后面。

4.当我们在统计排名的时候,如果出现相同的排名要记得使用 with ties。

5.order by 默认升序排序,也可以用ASC标识,降序desc。

6.distinct 去重复

7.批插入 insert into table_name

           select   __________union

    select  __________union

            select ___________

union all,和union的区别。

8.truncate table name与drop table name 的区别在与 drop 只是删除了表的内容,truncate就像删除了那块存放表的内存空间

  这也是自增段还原为1 的方法。

9.删除表的时候不能有外键的约束

10.用case语句实现对成绩的行列置换。

11.当2表中存在相互的外键约束的时候在我们建表的时候应该吧这2个外键约束拿出来放在一起执行。

    在插入数据的时候其中一表的外键约束先设为null值,然后将另外一表的数据插入,最后在对之前的外键约束

    进行数据更新。

12.事务和存储过程——银行的转账例子。

13.视图只给用户访问一张表的权限,隐藏方法,只显示终端给用户。

14.一张表中只能有一个聚集索引,数据的物理排序只能有一中方式,可以有多个非聚集排序。

15.触发器我的简单理解就是在你对其中的一表做操作的时候对其他的表有影响。这时候需要有触发器来触发修改另外表的相关内容。


    
相关技术文章:
    ▪sql存储过程详解

     1,不带参数的存储过程 2,带输入参数的存储过程 3,带输入和输出参数的存储过程 4,带返回值的存储过程 不带参数的存储过程 例如,以下存储过程返回Employees表中所有职员的记录。 存储过程代码: USE TSQLFundamentals2008; GO IF OBJECT_ID('usp_ProcDemoNoParam','P') IS NOT NULL DROP PROC usp_ProcDemoNoParam; GO -- 1,不带参数 CREATE PROC usp_ProcDemoNoParam AS BEGIN SELECT * FROM HR.Employees; END GO 调用代码: USE TSQLFundamentals2008; GO -- 1,不带参数存储过程的调用 ......


    ▪SQL Server UPDATE语句的用法详解

     SQL Server UPDATE语句用于更新数据,下面就为您详细介绍SQL Server UPDATE语句语法方面的知识,希望可以让您对SQL Server UPDATE语句有更多的了解。 现实应用中数据库中的数据改动是免不了的。通常,几乎所有的用户数据库中的大部分数据都要进行某种程度的修改。在SQL Server数据库中要想修改数据库记录,就需要用UPDATE语句,UPDATE语句就是为了改变数据库中的现存数据而存在的。这条语句虽然有一些复杂的选项,但确实是最容易学习的语句之一。这是因为在大多数情况下,这条语句的高级部分很少使用。在用户看来,UPDATE语句只是用来改变指定行中的数据。但实际......


    ▪MSSQL事务的存储过程

     在酒店管理系统开发中,我们会创建房间表和房间类型表(房型表)这两个表,如下图所示: 房型表:RoomType             房间表:Room   首先这两个表的关系:Room是从表,RoomType是主表,两表有主外键关系,RoomType.rTypeId=Room.rTypeId 分析这两个表,我们会发现这样一个问题:在房间表和房型表管理中,当我们修改或者删除一个RoomType表,对应的Room表我们也要做修改和删除,那么我们怎么解决这个问题呢?首先可以在数据库中设置级联删除,或者利用触发器也可以解决、、、这些方法都有一定的弊端,在实际开发中,我们会采取使......


 
最新技术文章:
    ▪Sql Server里删除数据表中重复记录的例子

     [项目] 数据库中users表,包含u_name,u_pwd两个字段,其中u_name存在重复项,现在要实现把重复的项删除! [分析] 1、生成一张临时表new_users,表结构与users表一样; 2、对users表按id做一个循环,每从users表中读出一个条记录,判断new_users中是否存在有相同的u_name,如果没有,则把它插入新表;如果已经有了相同的项,则忽略此条记录; 3、把users表改为其它的名称,把new_users表改名为users,实现我们的需要。 [程序] 代码如下: declare ......


    ▪如何查看SQLSERVER中某个查询用了多少TempDB空间

         在SQL Server中,TempDB主要负责供下述三类情况使用: 内部使用(排序、hash join、work table等) 外部使用(临时表,表变量等) 行版本控制(乐观并发控制)       而对于内部使用,一些比较复杂的查询中由于涉及到了大量的并行、排序等操作时就需要大量的内存空间,每一个查询在开始时都会由SQL Server预估需要多少内存,在具体的执行过程中,如果授予的内存不足,则需要将多出来的部分由TempDB处理,这也就是所谓的Spill to TempDB。     通过下述语句可以观察到某个查询对TempDB造成了多少读写: ......


    ▪在SQL Server中使用ISNULL执行空值判断查询

     有如下查询: 代码如下: select isnull(lastchanged,'') as lastchanged from vhhostlist where s_comment='test202' 本来,ISNULL函数只有一个参数,它表示的含义就是判断这个参数的值是否为NULL,是NULL则返回TRUE,否则返回FALSE; 但是,在SQLServer的查询语句中,isnull需要两个参数,它的含义是如果参数1为NULL,则以参数2为isnull函数的返回值; 即,上面查询的的含义是,查询vhhostlist表中s_comment='test202'那一行lastchanged字段的值,如果它为NULL,则返回一个空字符串; 记得以前不懂这个的时候,遇到这样一......


 


站内导航:


特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

©2012-2015,169IT.COM,站长邮箱:www_169it_com#163.com(请将#改为@)

浙ICP备11055608号