`
senton
  • 浏览: 205836 次
  • 性别: Icon_minigender_1
  • 来自: 紫禁城
社区版块
存档分类
最新评论

学习SQL server2005

阅读更多

SQL 语言分类:
 DQL:数据查询语言,比如select
 DML:数据操作语言,比如update
 DCL:数据控制语言,比如revoke
 DDL:数据定义语言,比如create
 CCL:通用命令语言,比如declare

数据的完整性:
 1。实体完整性:针对行,建主键,唯一约束,标识列。
 2。引用完整性:多个表,建外键,注意:外键表所引用的数据在主键表中必须存在。
 3。域完整性:针对于列,建检查约束,默认值,not null 属性。
 4。用户定义的完整性:建存储过程和触发器。

数据库文件和日志文件:
 1。主要数据文件,是指数据库起始点并且指向数据库的其他文件,每个数据库都有一个主要数据文件,扩展名(.mdf)
 2。次要数据文件,包括除主数据文件以外的所有数据文件,可有0个或多个,扩展名(.ndf)
 3。日志文件,包含所有用于恢复数据库的日志信息。每个数据库至少要有一个日志文件,也可以有多个。
 
数据库配置选项:
 1。exec sp_dboption 'pubs','read only','true' 含义:把pubs设为只读
 2。exec sp_dboption 'pubs',autoshrink,true 含义:设置pubs数据库自动周期性收缩。
 3。exec sp_dboption 'pubs','single user' 含义:设置pubs数据库在同一时间只允许一个用户访问。
 4。dbcc shrinkdatabase(pubs,10) 含义:收缩pubs数据库的大小。并允许其有10%的未用空间。
 5。修改数据库名称:
 alter database 原名 modify name=新名
 6。删除数据库:
 use master
 go
 if DB_id('Study') is not null
  drop database Study
 go
 
NULL 既不是0也不是""(空字符串),可以理解成“任何不确定的值”

移动数据库:可以使用分离和附加,或者备份和还原。

建表规则:
  1。每个表必须有一个键字段。
  2。不能存在重复键
  3。每个表必须包含单个实体的信息
  4。表的每个字段必须依赖于主键字段
  5。所有非主键字段不能相互依赖。
  
T-SQL语句中的通配符:
 1。'_' :一个字符
 2。'%' :任意长度的字符串
 3。'[]':括号中指定范围内的一个字符
 4。'[^]':不在括号中指定范围内的任意一个字符。
 
使用select into 将一个表中的数据添加到另一个表中:
 1。 insert into 表名(列表) select 选择列表 from 源表
 2。 select 选择列表 into 新建表名 from 源表
 注意:
 1).以上两种语句功能类似,但是不完全一样,前者是将一个结果集插入到一个现有的表中,而后者是利用结果集创建一个新表。
 2).采用第一种形式,你必须保证目的表存在。并且源表中列的数据类型与目的表中相应列的数据类型匹配。
 3).采用第一种形式,如果在源表中没有出现的列,你必须为目的表的列指定默认值,或者允许该列为空,否则不会成功。
 4).采用第二种形式,如果新表在数据库中存在,系统将会提示出错。
 
delete 和 truncate
 两者都能删除表中的所有行,并且保留表结构。
 不同之处在于:delete删除表数据时,会写日志,而truncate就不会写日志,所以在删除大量数据时如果不想写到日志文件中去的话用truncate的效率会高的多。

备份表:
 select * into 新表名 from 旧表名 [where 0=1]
 可选部分含义:如果只想要表结构的话可加上此条件。

使用top关键字:
 select top 10 * from 表名  (显示前十行)
 select top 40 percent * from 表名 (返回前百分之40的行)

distince关键字:忽略重复行

group by分组:
 注意:使用此语句时对select列表中的项目是有限制的,仅允许以下几项:
 1。分组列
 2。为每个分组返回一个值的表达式,例如用一个列名作为参数的聚合函数

where , having, 和 group by
 where搜索条件应用于分组操作发生之前,而having条件应用于分组操作之后,所以having可以包含聚合函数,而where不能,where子句用于筛选由from子句中指定的操作产生的行,group by 子句用于将where子句的输出结果进行分组,having用于筛选汇总后的行,
 where --> group by --> having
 
常用时间函数:
 函数名:              含义:
 getdate()              当前日期
 day('2/18/2004')          取天,返回18
 month('2/18/2004')         取月,返回2 
 year('2/18/2004')          取年,返回2004
 datepart(month,'2/18/2004')     取月,返回2
 datediff(day,'3/15/2004',getdate()) 返回指定日期与当前日期相差的天数
 dateadd(day,50,getdate())           在当前日期上加50天
 
alter table 表名 add 列名 数据类型[是否可以为空] constraint 约束名 default(给定的默认值) with values
 with values 选项表示用给定的默认值填充现有行中刚添加的列的值

主键的特点:
 (1) 主键(列)不允许空值。
 (2) 不能存在具有相同的主键值的两个行,因此主键值总是唯一标识单个行的。
 (3) 表中可以有不止一个列唯一标识行,每个列都称作候选键。只有一个候选键可以选作表的主键,所有其它候选键称作备用键。
 (4) 尽管表不要求具有主键,但定义主键是很好的做法。

当一个表(这里称为外键表)的某列应用另一个表(主键表)的主键或者唯一键列作为外键时,如果想要删除或者修改主键表中被引用的列的数据,可以给定两种方法,即“级联更新”和“级联删除”,指定级联更新时,在修改主键列信息时,数据库管理系统会自动修改外键列中的相应的数据,与此类似,在指定级联删除时,在删除主键表中的数据时外键表中的相关数据行也一起被删除,纵然可以这样,一般都不建议这样做,因为这样就失去了外键应有的作用。语法如下:
通过使用级联引用完整性约束,你可以定义当用户试图删除或更新现有外键指向的键时,SQL Server 2005 执行的操作。

CREATE TABLE 和 ALTER TABLE 语句的 REFERENCES 子句支持 ON DELETE 和 ON UPDATE 子句:

[ ON DELETE { NO ACTION | CASCADE | SET NULL | SET DEFAULT } ]

[ ON UPDATE { NO ACTION | CASCADE | SET NULL | SET DEFAULT } ]

如果没有指定 ON DELETE 或 ON UPDATE,则默认为 NO ACTION。

ON DELETE NO ACTION

指定如果试图删除某一行,而该行的键被其他表的现有行中的外键所引用,则产生错误并回滚 DELETE 语句。

ON UPDATE NO ACTION

指定如果试图更新某一行中的键值,而该行的键被其他表的现有行中的外键所引用,则产生错误并回滚 UPDATE 语句。

CASCADE、SET NULL 和 SET DEFAULT 允许通过删除或更新键值来影响指定具有外键关系的表,这些外键关系可追溯到在其中进行修改的表。如果为目标表也定义了级联引用操作,那么指定的级联操作也将应用于删除或更新的那些行。不能为具有 timestamp 列的外键或主键指定 CASCADE。

ON DELETE CASCADE

指定如果试图删除某一行,而该行的键被其他表的现有行中的外键所引用,则也将删除所有包含那些外键的行。

ON UPDATE CASCADE

指定如果试图更新某一行中的键值,而该行的键值被其他表的现有行中的外键所引用,则组成外键的所有值也将更新到为该键指定的新值。

注意: 
如果 timestamp 列是外键或被引用键的一部分,则不能指定 CASCADE。

ON DELETE SET NULL

指定如果试图删除某一行,而该行的键被其他表的现有行中的外键所引用,则组成被引用行中的外键的所有值将被设置为 NULL。目标表的所有外键列必须可为空值,此约束才可执行。

ON DELETE SET NULL

指定如果试图更新某一行,而该行的键被其他表的现有行中的外键所引用,则组成被引用行中的外键的所有值将被设置为 NULL。目标表的所有外键列必须可为空值,此约束才可执行。

ON DELETE SET DEFAULT

指定如果试图删除某一行,而该行的键被其他表的现有行中的外键所引用,则组成被引用行中的外键的所有值将被设置为它们的默认值。目标表的所有外键列必须具有默认值定义,此约束才可执行。如果某个列可为空值,并且未设置显式的默认值,则会使用 NULL 作为该列的隐式默认值。因 ON DELETE SET DEFAULT 而设置的任何非空值在主表中必须有对应的值,才能维护外键约束的有效性。

ON UPDATE SET DEFAULT

指定如果试图更新某一行,而该行的键被其他表的现有行中的外键所引用,则组成被引用行中的外键的所有值将被设置为它们的默认值。目标表的所有外键列必须具有默认值定义,此约束才可执行。如果某个列可为空值,并且未设置显式的默认值,则会使用 NULL 作为该列的隐式默认值。因 ON UPDATE SET DEFAULT 而设置的任何非空值在主表中必须有对应的值,才能维护外键约束的有效性

联接:
 1.内联:
 语法:select 列表 from table1 join table2 on 条件表达式
 2.外联:
  1).左外联:
  语法:select 列表 from 左表 left join 右表 on 条件表达式
  查询结果为左表中的全部数据加上右表中符合条件的数据
  2).右外联:
  语法:select 列表 from 左表 right join 右表 on 条件表达式
  查询结果为右表中的全部数据加上左表中符合条件的数据 

分享到:
评论

相关推荐

    学习SQL Server 2005:从哪里开始?.pdf

    总结来说,学习SQL Server 2005需要从了解其新版本的特点和变化入手,通过文档、实例、教程和专家的指导,逐步熟悉新工具的使用,最终达到能够独立进行数据库设计、管理和优化的水平。通过不断的实践和学习,SQL ...

    学习SQL SERVER 2005系列-图解SQL SERVER2005的安装

    学习SQL SERVER 2005系列-图解SQL SERVER2005的安装

    SQL Server 2005数据库简明教程PPT

    第2部分(第3~9章)是本书的重点,也是读者深入学习SQL Server 2005的基础,详细介绍了SQL Server 2005的安装和配置过程,如何创建和管理数据库、数据表,以及如何对数据进行查询、修改、输出等内容;第3部分(第10~14章)...

    SQL Server 2005基础教程

    - "SQLServer2005教程.pdf":可能是一份全面的教程,涵盖数据库设计、查询、管理等方面。 - "SQL Server 2005基础入门教程.pdf":同上,可能侧重于基础操作和使用技巧。 - "SQL2005学习教程较为详细.ppt":可能是PPT...

    基于sql server 2005学习sql

    《基于SQL Server 2005学习SQL》 SQL(Structured Query Language)是用于管理和处理关系数据库的标准语言,而SQL Server 2005作为微软公司的一款强大的数据库管理系统,为开发者提供了广泛的功能和工具,使其在...

    SQLServer2005教程

    **SQLServer2005教程概述** SQL Server 2005是微软公司推出的一款关系型数据库管理系统,属于SQL Server系列中的一个重要版本。它在2005年发布,为开发者和企业提供了全面的数据管理和分析解决方案。这个教程旨在...

    SQL Server 2005中文版关系数据库基础与实践教程.zip

    学习SQL Server 2005,我们需要掌握T-SQL(Transact-SQL)语言,这是SQL的一个扩展,专为Microsoft SQL Server设计。 接着,我们深入到SQL Server 2005的核心组件。如`AdventureWorks`示例数据库,这是一个广泛使用...

    SQLServer2005数据库开发详解

    《SQLServer2005数据库开发详解》是针对SQL Server 2005这一数据库管理系统进行深入探讨的教程。该教程旨在帮助初学者从零开始,逐步掌握SQL Server 2005的核心技术和开发方法,直至达到精通的程度。在本文中,我们...

    《SQL Server 2005实用教程》实验答案例题源码习题答案

    了解这些组件的功能和交互方式是学习SQL Server 2005的第一步。 **2. 数据库设计与管理** 在《SQL Server 2005实用教程》中,你会学习如何创建数据库、表、索引,以及管理用户权限。理解关系模型、正常化原则和数据...

    数据库(sql server2005)课件

    通过深入学习SQL Server 2005的课件,不仅可以掌握数据库管理的基础知识,还能了解如何利用这个平台构建高效、安全且可扩展的企业级数据解决方案。无论你是初学者还是经验丰富的DBA,都能从中获益匪浅,提升自己的...

    SqlServer2005自学视频.zip

    8 学习SqlServer 2005必须的先学一门编程语言么 9 数据结构和数据库的区别 10 什么是连接【重点】 11 有了编程语言为什么还需要数据库 12 建议初学者从三个方面学习数据库 13 如何建数据库 14 如何删除数据库 15 ...

    SQL Server 2005盛宴系列之六:新的选择――SQL Server Express 2005.zip

    总的来说,通过"SQL Server 2005盛宴系列之六"的学习,你可以掌握SQL Server Express 2005的基本操作,理解其在实际开发中的作用,以及如何利用它来构建高效、安全的数据驱动应用程序。对于想要入门数据库管理和开发...

    SQL Server 2005示例数据库

    SQL Server 2005的示例数据库,如AdventureWorks,是为了帮助用户更好地理解和学习SQL Server的功能而提供的实际数据库模型。 AdventureWorks是一个广泛使用的示例数据库,它包含了制造业公司的各种业务数据,如...

    对于学习SQL SERVER2005数据库安全管理机制的理解.pdf

    对于学习SQL SERVER2005数据库安全管理机制的理解.pdf

    sqlserver 2005 express X64

    - 免费:SQL Server 2005 Express是微软提供的一款免费数据库产品,适合学习和开发用途。 - 小型数据库:适用于存储和管理中小规模的数据,最大数据库大小为4GB。 - 强大的查询引擎:支持T-SQL语言,具备复杂查询...

    SQL Server 2005基础教程_配套课件和脚本

    了解基本的SQL语法是学习SQL Server 2005的基石。SQL(结构化查询语言)用于管理和处理数据库,包括数据的增、删、改、查操作。例如,`SELECT`语句用于查询数据,`INSERT`用于插入新数据,`UPDATE`用于更新现有数据...

    ACCP5.0sql server2005 PPT

    总的来说,“ACCP5.0sql server2005 PPT”是一个全面的教程,涵盖了SQL Server 2005的基础知识和T-SQL的高级查询技术,是数据库新手或希望深入学习SQL Server 2005的专业人士的理想学习资源。通过深入学习,你可以...

    Professional SQL Server 2005 Programming-SQL Server 2005高级程序设计原代码

    Professional SQL Server 2005 Programming是《SQL Server 2005高级程序设计》原代码 是想学习SQL Server 2005数据库的必备书籍,简单,通俗,易懂,强烈建议大家买!全而精!!

    《Microsoft SQL Server 2005技术内幕》_源码

    学习SQL Server 2005,你需要理解其架构,包括数据库引擎、Analysis Services、Integration Services和Reporting Services等组件。 2. **数据库设计**:章节中的源码可能涉及到关系数据库的设计原则,如第三范式(3...

    数据库技术与应用--SQL Server 2005教程(詹英主编)

    在学习SQL Server 2005时,首先需要了解的是关系数据库模型的基础,包括实体、属性、键、索引等概念。SQL Server 2005支持标准的SQL语言,如DDL(Data Definition Language)用于定义数据库结构,DML(Data ...

Global site tag (gtag.js) - Google Analytics