关系模型:一对一关系 一对多关系 多对多关系 SQL Server 2005体系结构
SQL Server 系统由4个部分组成,每个部分对应一个服务,它们分别是:数据库引擎、Analysis Services、Reporting Services和Intergration Srvices。
默认有5个数据库:master、model、msdb、rempdb和resource数据库 数据库存储文件 主数据文件.mdf 辅助数据文件.ndf 事物日志文件.ldf
表:表是数据库中实际存储数据的对象.
视图,不包含任何数据,它总是基于表,用来提供浏览数据的不同方式. Use xxx Go
CREATE TABLE 学生信息( 学号 int IDENTITY,
姓名 nvarchar(10) NOT NULL, 所在班级 int NOT NULL, 性别 nvarchar (5) NOT NULL, 政治面貌 nvarchar(5) NULL, 民族 nvarchar (10) NOTNULL, 籍贯 nvarchar (30) NOT NULL, 奖惩情况 nvarchar (100) NULL, 备注 nvarchar (200) NULL, )
默认值 默认值用来填写用户忘记输入的数据. 使用DEFAULT 关键字对字段进行定义默认值 民族 nvarchar(10) DEFAULT ‘汉’. IDENTITY的应用 标识字段
一个标识字段唯一标识表中每条记录的特殊字段,当一条新记录添加到这个表中时,这个字段被自动赋给一个新值.默认情况下是+1递增. 格式如下 IDENTITY(seed,incre) USE 人事管理系统 GO
CREATE TABLE 员工信息( 员工编号 INT IDENTITY (2,2) 员工姓名 NVARCHAR(10) …)
在创建表时定义主键约束
在创建表时,定义主键约束的语法如下 CREATE TABLE table_name(
(column_name) datatype
[CONSTRAINT constraint_name] {PRIMARY KEY}
[{CLUSTERED | NONCLUSTERED}[,…n] [[,CONSTRAINT constraint_name] {PRIMARY KEY}
[{CLUSTERED |NONCLUSTERED}] (column_name[,..n])[,…n] )
Constraint_name 约束的名字,约束是数据库对象,所以,约束的命名必须遵守数据库对象命名的习惯.
CLUSTERED 表示在该列上建立聚集索引
NONCLUSTERED 表示在该列上建立非聚集索引.
新建一个 学生信息 表 给学号定义一个主键约束,可使用如下语句 CREATE TABLE 学生信息( 学号 INT PRIMARY KEY, 姓名 NCHAR(5) NOT NULL …)
也可以
CREATE TABLE 学生信息( 学号 INT NOT NULL,
姓名 NCHAR (5) NOT NULL, CONSTRAINT PK_学号 PRIMARY KEY (学号) )
PK_学号_姓名
PRIMARY KEY (学号,姓名)
ALTER TABLE ,,, ADD
CONSTRAINT PK_学号 PRIMARY KEY (学号)
CHECK约束通过检查输入表列的数据的值来维护值域的完整性,它就像一个过滤器依次检查每个要进入数据库的数据,只有符合条件的数据才能允许通过.
[CONSTRAINT CREATE TABLE CJ( 编号 INT PRIMARY KEY, 课程编号 INT REFERENCES 课程表, 学号 INT PEFERENCES 学生信息, 姓名 NCHAR(4) NOT NULL, 成绩 INT NOT NULL CONSTRAINT CK_成绩 CHECK (成绩 BETWEEN 0 AND 100) ) USE XXX GO CREATE TABLE CJ BH INT PRIMARY KEY, .. .. .. 成绩 INT CHECK (成绩BETWEEN 0 AND 100) 索引是一个单独的、物理的数据库结构,它是某个表中一列或者若干列的集合和相应的指向表中物理标识这些值的数据页的逻辑指针清单。 索引依赖于表建立。 两种基本类型的索引:聚集索引和非聚集索引。 DISTINCT 关键字 删除重复行 USE XX SELECT DISTINCT 籍贯 FROM 学生信息。 TOP 关键字 SELECT [TOP N] [*column] FROM TABLE 例如 USE XXX SELECT DISTINCT TOP 8 籍贯 FROM 学生信息。 Transact-SQL语言基础 常量,也称为文字值或标量值,是指程序运行中值不变的量 字符常量,二进制常量,十禁止常量,十六进制常量,日期常量,货币常量. 变量 利用变量可以存储程序执行过程中涉及的数据, 系统全局变量 CONNECTION 自服务器上依次启动以来它上面已建立的连接数 CPU_BUSY 自SQL SERVER启动以来系统已经工作的毫秒数 CURSOR_ROWS 最新打开游标中的行数 DATEFIRST SET DATEFIRST 参数的当前值,用来控制每周第一天的日期 DBTS 上一次使用的TIMESTAMP值 ERROR 最新TSQL错误的错误号 VERSION SQL SERVER 版本信息 局部变量,是作用域局限在一定范围内的TSQL对象. 要创建局部变量,使用DECLARE语句 DECLARE{{@local_variable[AS]data_type} |{@cursor_variable_name CURSOR} |{@table_variable_name @local_variable 是变量名称 Data_type 是任何由系统提供的或用户定义的数据类型,变量不能是text.ntext.或image数据类型 Table_type_definition 用于定义表数据类型.表生命包括列定义.名称.数据类型和约束.允许的约束类型只包括PRIMARY KEY . UNIQUE KEY . NULL 和CHECK. SET @ local_variable = expression SELECT @ local_variable = expression [,…n] DECLARE @Homepage char(100) SET @Homepage=’http://www.fdsaf.com’ RETURN 无条件退出语句 RETURN [integer_expression] Integer_sfdasdfasf 参数返回一个整数值 BREAK 中断语句 GOTO 跳转语句 CONTINUE 语句 日期和时间函数 DATEADD 返回给指定日期加上一个时间间隔后的新DATETIME 值 DATEDIFF 返回跨两个指定日期的日期边界数和时间边界数 DATENAME 返回表示指定日期的指定日期部分的字符串 DATEPART 返回表示指定日期的指定日期部分的整数 DAY 返回一个整数,标识指定日期的天DATEPART部分 GETUTCDATE 返回标识当前的UTC时间(通用协调时间或格林尼治标准时间)的datetime值当前的UTC时间得自当前的本地时间和运行MICROSOFT SQL SERVER 2005实力的计算机操作系统中的时区设置 MONTH 返回标识指定日期的月部分的整数 YEAR …年 SQL SERVER2005 事务类型 自动提交事务 每条单独的语句斗士一个事务,它是SQL 默认的事务管理模式,每个T-SQL语句完成时,都被提交或回滚 显式事务 每个事务均以BEGIN TRANSACTION 语句显式开始,以COMMIT 或ROLLBACK语句显式结束 隐式事务 在前一个事务完成时新事务隐式启动,但每个事务仍以COMMIT 或ROLLBACK语句显式完成 批处理级事务 只能应用于多个活动结果集 (MARS ),在MARS 回话中启动的TRANSACT-SQL显式或隐式事务变为批处理级事务.当批处理完成时没有提交或回滚的批处理级事务自动由SQL SERVER进行回滚 什么是触发器 触发器(TRIGGER)是一种特殊的存储过程,它与表紧密相连,可以看作是表定义的一部分. 触发器作用 强化约束 跟踪变化 级联运行 SQL SERVER 2005为每个触发器语句都创建了两种特殊的表:DELETE 表和INSERTED 表. 服务器角色 SQL SERVER 2005 提供了4种数据库备份类型 完整数据库备份 差异数据库备份 事务日志备份 文件组备份 3种恢复模型 完全恢复模型 大容量日志记录恢复模型 简单恢复模型 因篇幅问题不能全部显示,请点此查看更多更全内容