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需要从了解其新版本的特点和变化入手,通过文档、实例、教程和专家的指导,逐步熟悉新工具的使用,最终达到能够独立进行数据库设计、管理和优化的水平。通过不断的实践和学习,SQL ...
学习SQL SERVER 2005系列-图解SQL SERVER2005的安装
第2部分(第3~9章)是本书的重点,也是读者深入学习SQL Server 2005的基础,详细介绍了SQL Server 2005的安装和配置过程,如何创建和管理数据库、数据表,以及如何对数据进行查询、修改、输出等内容;第3部分(第10~14章)...
- "SQLServer2005教程.pdf":可能是一份全面的教程,涵盖数据库设计、查询、管理等方面。 - "SQL Server 2005基础入门教程.pdf":同上,可能侧重于基础操作和使用技巧。 - "SQL2005学习教程较为详细.ppt":可能是PPT...
《基于SQL Server 2005学习SQL》 SQL(Structured Query Language)是用于管理和处理关系数据库的标准语言,而SQL Server 2005作为微软公司的一款强大的数据库管理系统,为开发者提供了广泛的功能和工具,使其在...
**SQLServer2005教程概述** SQL Server 2005是微软公司推出的一款关系型数据库管理系统,属于SQL Server系列中的一个重要版本。它在2005年发布,为开发者和企业提供了全面的数据管理和分析解决方案。这个教程旨在...
学习SQL Server 2005,我们需要掌握T-SQL(Transact-SQL)语言,这是SQL的一个扩展,专为Microsoft SQL Server设计。 接着,我们深入到SQL Server 2005的核心组件。如`AdventureWorks`示例数据库,这是一个广泛使用...
《SQLServer2005数据库开发详解》是针对SQL Server 2005这一数据库管理系统进行深入探讨的教程。该教程旨在帮助初学者从零开始,逐步掌握SQL Server 2005的核心技术和开发方法,直至达到精通的程度。在本文中,我们...
了解这些组件的功能和交互方式是学习SQL Server 2005的第一步。 **2. 数据库设计与管理** 在《SQL Server 2005实用教程》中,你会学习如何创建数据库、表、索引,以及管理用户权限。理解关系模型、正常化原则和数据...
通过深入学习SQL Server 2005的课件,不仅可以掌握数据库管理的基础知识,还能了解如何利用这个平台构建高效、安全且可扩展的企业级数据解决方案。无论你是初学者还是经验丰富的DBA,都能从中获益匪浅,提升自己的...
8 学习SqlServer 2005必须的先学一门编程语言么 9 数据结构和数据库的区别 10 什么是连接【重点】 11 有了编程语言为什么还需要数据库 12 建议初学者从三个方面学习数据库 13 如何建数据库 14 如何删除数据库 15 ...
总的来说,通过"SQL Server 2005盛宴系列之六"的学习,你可以掌握SQL Server Express 2005的基本操作,理解其在实际开发中的作用,以及如何利用它来构建高效、安全的数据驱动应用程序。对于想要入门数据库管理和开发...
SQL Server 2005的示例数据库,如AdventureWorks,是为了帮助用户更好地理解和学习SQL Server的功能而提供的实际数据库模型。 AdventureWorks是一个广泛使用的示例数据库,它包含了制造业公司的各种业务数据,如...
对于学习SQL SERVER2005数据库安全管理机制的理解.pdf
- 免费:SQL Server 2005 Express是微软提供的一款免费数据库产品,适合学习和开发用途。 - 小型数据库:适用于存储和管理中小规模的数据,最大数据库大小为4GB。 - 强大的查询引擎:支持T-SQL语言,具备复杂查询...
了解基本的SQL语法是学习SQL Server 2005的基石。SQL(结构化查询语言)用于管理和处理数据库,包括数据的增、删、改、查操作。例如,`SELECT`语句用于查询数据,`INSERT`用于插入新数据,`UPDATE`用于更新现有数据...
总的来说,“ACCP5.0sql server2005 PPT”是一个全面的教程,涵盖了SQL Server 2005的基础知识和T-SQL的高级查询技术,是数据库新手或希望深入学习SQL Server 2005的专业人士的理想学习资源。通过深入学习,你可以...
Professional SQL Server 2005 Programming是《SQL Server 2005高级程序设计》原代码 是想学习SQL Server 2005数据库的必备书籍,简单,通俗,易懂,强烈建议大家买!全而精!!
学习SQL Server 2005,你需要理解其架构,包括数据库引擎、Analysis Services、Integration Services和Reporting Services等组件。 2. **数据库设计**:章节中的源码可能涉及到关系数据库的设计原则,如第三范式(3...
在学习SQL Server 2005时,首先需要了解的是关系数据库模型的基础,包括实体、属性、键、索引等概念。SQL Server 2005支持标准的SQL语言,如DDL(Data Definition Language)用于定义数据库结构,DML(Data ...