• 1. 第一章SQL Server2005
  • 2. 本章目标了解SQLServer2005的优点和新特性 熟识SQLServer2005的5个版本 掌握SQLServer2005的安装,以及管理工具的使用 熟练使用SQLServer2005创建数据库表、约束 了解SQLServer2005的安全模式
  • 3. SQL Server 2005SQL Server 2005 优点 SQL Server 2005 新特性 SQL Server 2005 新功能 企业数据管理 开发者的生产效率 商业智能
  • 4. SQL Server 2005 版本SQL Server 2005一共有5个版本,它们分别为: 企业版——Enterprise Edition 开发版——Development Edition 工作群版——Workgroup Edition 标准版——Standard Edition 简易版——Express Edition SQL Server 2005的不同版本能够满足企业和个人不同的性能、运行以及价格要求。
  • 5. SQL Server 2005 数据平台 SQL Server 2005为它的使用者提供了强大的、界面友好的工具,同时降低了从移动设备到企业数据系统的多平台上创建、部署、管理和使用企业数据和分析应用程序的复杂性。
  • 6. SQL Server 2005 安装SQL Server 2005安装的四大要求—— CPU和内存要求 硬盘空间要求 操作系统要求 其它要求 安装前准备事项—— Microsoft Windows Insta]ler 3.1或更高版本 MDAC 2.8 SPl或更高版本 Microsoft Windows.NET Framework 2.0
  • 7. SQL Server 2005 后台服务SQL ServerSQL Server Active Directory HelperSQL Server BrowserSQL Server Integration ServicesSQL Server AgentSQL Server Reporting ServicesSQL Server VSS Writer SQL Server FullText Search
  • 8. SQL Server 2005 客户端管理工具SQL Server Management Studio Notification Services命令提示 Reporting Services配置 SQL Server Configuration Manager SQL Server错误和使用情况报告 SQL Server外围应用配置器 SQL Server Profiler Visual Studio 2005
  • 9. SQL Server Management Studio
  • 10. 示例数据库安装SQL Server 2005示例数据库—— AdventureWorks AdventureWorksDW 附加SQL Server 2000示例数据库—— Northwind Pubs
  • 11. 回顾数据库的基础知识数据库文件的组成: 主数据文件:*.mdf 次要数据文件:*.ndf 日志文件:*.ldf 数据库的其他属性: 文件存放位置,分配的初始空间,属于哪个文件组 文件增长:可以按百分比或实际大小指定增长速度 文件容量设置:可以指定文件增长的最大值或不受限
  • 12. 创建数据库 CREATE DATABASE 数据库名 ON [PRIMARY] ( <数据文件参数> [,…n] [<文件组参数>] ) [LOG ON] ( <日志文件参数> [,…n] )T-SQL创建数据库的语法:主文件组,可选参数,默认
  • 13. 创建数据库示例CREATE DATABASE stuDB ON PRIMARY --默认就属于PRIMARY主文件组,可省略 ( NAME='stuDB_data', --主数据文件的逻辑名 FILENAME='D:\project\stuDB_data.mdf', --主数据文件的物理名 SIZE=5mb, --主数据文件初始大小 MAXSIZE=100mb, --主数据文件增长的最大值 FILEGROWTH=15% --主数据文件的增长率 ) LOG ON ( NAME='stuDB_log', FILENAME='D:\project\stuDB_log.ldf', SIZE=2mb, FILEGROWTH=1MB ) GO 数据文件的具体描述日志文件的具体描述
  • 14. 创建数据库示例CREATE DATABASE employees ON ( /*-主数据文件的具体描述-*/ NAME = 'employee1', FILENAME = 'D:\project\employee1_Data.mdf' , SIZE = 10, FILEGROWTH = 10% ), ( /*-次要数据文件的具体描述-*/ NAME = 'employee2', FILENAME = 'D:\project\employee2_Data.ndf' , SIZE = 20, MAXSIZE = 100, FILEGROWTH = 1 ) LOG ON ( /*-日志文件1的具体描述-*/ NAME = 'employeelog1', FILENAME = 'D:\project\employeelog1_Log.ldf' , SIZE = 10, FILEGROWTH = 1 ), ( /*-日志文件2的具体描述-*/ NAME = 'employeelog2', FILENAME = 'D:\project\employeelog2_Log.ldf' , SIZE = 10, MAXSIZE = 50, FILEGROWTH = 1 ) GO
  • 15. 删除数据库如果SQL Server中已存在数据库stuDB,运行下列语句,会出现什么问题? CREATE DATABASE stuDB ON ( .... ) LOG ON ( .... ) GO
  • 16. USE master --设置当前数据库为master,以便访问sysdatabases表 GO IF EXISTS(SELECT * FROM sysdatabases WHERE name ='stuDB') DROP DATABASE stuDB CREATE DATABASE stuDB ON ( ….. ) LOG ON ( … ) GO删除数据库删除数据库的语法:DROP DATABASE 数据库名 EXISTS()语句:检测是否存在stuDB数据库如果存在stuDB数据库,则删除
  • 17. 回顾表的基础知识 建表的基本步骤: 确定表中有哪些列 确定每列的数据类型 给表添加各种约束 创建各表之间的关系 SQL Server中的数据类型 整型数据:int smallint 浮点数据:float numeric ……字符数据 固定长度:char(6) 可变长度: varchar(10) unicode编码:nchar(10) ……布尔数据(真/假) bit: 1/ 0 货币数据 money日期数据 datetime
  • 18. 创建表建表的语法 CREATE TABLE 表名 ( 字段1 数据类型 列的特征, 字段2 数据类型 列的特征, ... )列的特征: 包括该列是是否为空(NULL)、是否是标识列(自动编号)、是否有默认值、是否为主键等。
  • 19. 建表示例USE stuDB --将当前数据库设置为stuDB GO CREATE TABLE stuInfo /*-创建学员信息表-*/ ( stuName VARCHAR(20) NOT NULL , --姓名,非空(必填) stuNo CHAR(6) NOT NULL, --学号,非空(必填) stuAge INT NOT NULL, --年龄,INT类型默认为4个字节 stuID NUMERIC(18,0), --身份证号 stuSeat SMALLINT IDENTITY (1,1), --座位号,自动编号 stuAddress TEXT --住址,允许为空,即可选输入 ) GONUMERIC (18,0) 代表18位数字,小数位数为0IDENTITY(起始值,递增量)
  • 20. 建表示例CREATE TABLE stuMarks ( ExamNo CHAR(7) NOT NULL, --考号 stuNo CHAR(6) NOT NULL, --学号 writtenExam INT NOT NULL, --笔试成绩 LabExam INT NOT NULL --机试成绩 ) GO
  • 21. 删除表如果当前数据库中已存在stuInfo表,再次创建时系统将提示出错 。如何解决呢?
  • 22. 删除表删除表的语法:DROP TABLE 表名USE stuDB --将当前数据库设置为stuDB ,以便在stuDB数据库中建表 GO IF EXISTS(SELECT * FROM sysobjects WHERE name=’stuInfo’ ) DROP TABLE stuInfo CREATE TABLE stuInfo /*-创建学员信息表-*/ ( ….. ) GO
  • 23. 回顾SQL Server的约束约束的目的:确保表中数据的完整型 常用的约束类型: 主键约束(Primary Key Constraint):要求主键列数据唯一,并且不允许为空 唯一约束(Unique Constraint):要求该列唯一,允许为空,但只能出现一个空值。 检查约束(Check Constraint):某列取值范围限制、格式限制等,如有关年龄的约束 默认约束(Default Constraint):某列的默认值,如我们的男性学员较多,性别默认为“男” 外键约束(Foreign Key Constraint):用于两表间建立关系,需要指定引用主表的那列
  • 24. 添加约束 添加约束的语法:ALTER TABLE 表名 ADD CONSTRAINT 约束名 约束类型 具体的约束说明约束名的取名规则推荐采用:约束类型_约束字段 主键(Primary Key)约束:如 PK_stuNo 唯一(Unique Key)约束:如 UQ_stuID 默认(Default Key)约束:如 DF_stuAddress 检查(Check Key)约束:如 CK_stuAge 外键(Foreign Key)约束:如 FK_stuNo
  • 25. 添加约束示例ALTER TABLE stuInfo ADD CONSTRAINT PK_stuNo PRIMARY KEY (stuNo) ALTER TABLE stuInfo ADD CONSTRAINT UQ_stuID UNIQUE (stuID) ALTER TABLE stuInfo ADD CONSTRAINT DF_stuAddress DEFAULT ('地址不详') FOR stuAddress ALTER TABLE stuInfo ADD CONSTRAINT CK_stuAge CHECK(stuAge BETWEEN 15 AND 40) ALTER TABLE stuMarks ADD CONSTRAINT FK_stuNo FOREIGN KEY(stuNo) REFERENCES stuInfo(stuNo) GO添加主键约束(stuNo作为主键)添加唯一约束(因为每人的身份证号全国唯一)添加默认约束(如果地址不填,默认为“地址不详”)添加检查check约束,要求年龄只能在15-40岁之间添加外键约束(主表stuInfo和从表stuMarks建立关系,关联字段为stuNo)
  • 26. 添加约束示例
  • 27. 删除约束如果错误地添加了约束,我们还可以删除约束 删除约束的语法ALTER TABLE 表名 DROP CONSTRAINT 约束名 例如:删除stuInfo表中地址默认约束 ALTER TABLE stuInfo DROP CONSTRAINT DF_stuAddress
  • 28. 回顾SQL Server的安全模型数据库 1数据库 2数据库 3表 1表 2表 1表 2表 1表 2增删 改查增删 改查增删 改查增删 改查增删 改查增删 改查数据库用户      数据库用户      数据库用户      登录帐号      SQLserver三层安全管理
  • 29. 登录方式回顾登录验证有两种方式: SQL身份验证:适合于非windows平台的用户或Internet用户, 需要提供帐户和密码 Windows身份验证:适合于windows平台用户,不需要提供密码,和windows集成验证 登录帐户相应有两种:SQL 帐户和Windows帐户
  • 30. 创建登录添加 Windows登录帐户 EXEC sp_grantlogin ‘huayuadmin\huayu123‘ 添加 SQL登录帐户 EXEC sp_addlogin ‘zhangsan', ‘haha’EXEC表示调用存储过程, 存储过程类似C语言的函数内置的系统管理员 帐户sa 密码默认为空,建议修改密码 域名\用户名用户名,密码
  • 31. 创建登录
  • 32. 系统内置的数据库用户dbo 用户 表示数据库的所有者(DB Owner) 无法删除 dbo 用户,此用户始终出现在每个数据库中 guest 用户 适用于没有数据库用户的登录帐号访问 每个数据库可有也可删除
  • 33. 向数据库用户授权 EmployeesEmployeeID1 2 3LastNameDavolio Fuller Leverling FirstName Nancy Andrew JanetReportsTo2 2 ...delete FROM EmployeesSELECT * FROM Employees
  • 34. 总结SQL Server 2005一共有5个版本,它们分别为:Enterprise Edition (企业版)、Development Edition (开发版)、Workgroup Edition (工作群版)、Standard Edition (标准版)、Express Edition (简易版) SQL Server 2005示例数据库包括AdventureWorks、AdventureWorksDW 使用SQL Server 2005创建数据库表、约束