1、SQL Server SQL Server 是微软推出的是微软推出的RDBMSRDBMS,,经历了经历了1010多年的发展历程多年的发展历程.使它形成了使它形成了具有强大具有强大DBMSDBMS的功能的功能,可视化的管理工具可视化的管理工具和强大的网络功能和强大的网络功能.SQL Server SQL Server 运行环境可选择运行环境可选择Windows Windows NT,Windows 2000NT,Windows 2000等等一、基本概念一、基本概念1.SQL Server 20001.SQL Server 2000的数据库对象的数据库对象6.1.42.2.数据库结构数据库结构(1
2、)SQL Server 2000(1)SQL Server 2000的三种物理文件的三种物理文件6.1.4文件类型文件类型文件扩展名文件扩展名主文件主文件.mdf.mdf次文件次文件.ndf.ndf日志文件日志文件.ldf.ldf 主文件是数据库的起点并指向数据库的其主文件是数据库的起点并指向数据库的其余文件。每个数据库都包含一个主文件。余文件。每个数据库都包含一个主文件。次文件保存所有主文件中容纳不下的数据。次文件保存所有主文件中容纳不下的数据。如果数据库非常大,则需要多个次文件,如果数据库非常大,则需要多个次文件,也可能使用多个独立磁盘驱动器上的次文也可能使用多个独立磁盘驱动器上的次文件,
3、以将数据分布在多个磁盘上。件,以将数据分布在多个磁盘上。(2 2)主文件与次文件的作用)主文件与次文件的作用.File_1File_2File_nUniversity DB4 SQL Server 20004 SQL Server 2000的系统数据库的系统数据库6.1.55 SQL Server 20005 SQL Server 2000的管理工具的管理工具1.1.查询分析器查询分析器2.导入和导出数据3.3.服务管理器服务管理器4.客户机网络连接工具和服务器网络连接工具5.5.联机丛书联机丛书6.6.企业管理器企业管理器7.事件侦探器8.在IIS中配置SQL XML支持6.21.1.查询分
4、析器查询分析器2.导入和导出数据3.3.服务管理器服务管理器4.客户机网络连接工具5.5.联机丛书联机丛书6.6.企业管理器企业管理器7.事件侦探器8.在IIS中配置SQL 6 6 基本操作基本操作1.1.服务器的连接服务器的连接2.2.查询分析器连接查询分析器连接3.3.查询分析器基本操作查询分析器基本操作start程序Microsoft Sever SQL服务管理器start程序Microsoft Sever SQL查询分析器SQL 语句编辑语句编辑SQL 语句执行(语句执行(F5)SQL 语句保存语句保存SQL 语句执行结果语句执行结果数据对象浏览器数据对象浏览器数据库的选择数据库的选择
5、二二 SQLSQL功能及实例功能及实例1.1.创建数据库创建数据库其语法为:其语法为:CREATE DATABASE数据库名数据库名 ON(NAME=逻辑数据文件名逻辑数据文件名,FILENAME=操作数据文件路径和文件名操作数据文件路径和文件名,SIZE=文件长度文件长度,MAXSIZE=最大长度最大长度,FILEGROWTH=文件增长率文件增长率),n LOG ON(NAME=逻辑日志文件名逻辑日志文件名,FILENAME=操作日志文件路径和文件名操作日志文件路径和文件名,SIZE=文件长度文件长度),n 6.3主文件名为主文件名为SalesSales,物理文件名为物理文件名为salesd
6、atasalesdata,保存位置在保存位置在D:sqlD:sqldb,db,文件初始大小为文件初始大小为10M10M最大限制为最大限制为50M50M文件增长为文件增长为10%10%日志文件名日志文件名Sales_logSales_log物理文件名为物理文件名为saleslogsaleslog 保存位置在保存位置在D:sqlD:sqlrecordrecord文件初始大小为文件初始大小为5M5M最大限制为最大限制为25M25M文件增长为文件增长为5M5M建立一个数据库,数据库名为建立一个数据库,数据库名为 Sales,Sales,例题例题 1 1在在D盘上建立文件夹盘上建立文件夹SQL在在SQL
7、文件夹下分别建立文件夹下分别建立DB文件夹和文件夹和RECORD 文件夹文件夹在查询分析器中输入以下语句在查询分析器中输入以下语句CREATE DATABASE CREATE DATABASE SalesSalesON ON(NAME=(NAME=Sales,Sales,FILENAME=FILENAME=D:sqldbsalesdata.mdfD:sqldbsalesdata.mdf,SIZE=SIZE=10MB,10MB,MAXSIZE=MAXSIZE=50MB,50MB,FILEGROWTH=FILEGROWTH=10%10%)LOG ONLOG ON(NAME=(NAME=Sales_
8、logSales_log,FILENAME=FILENAME=D:sqlrecordsaleslog.ldfD:sqlrecordsaleslog.ldf,SIZE=SIZE=5MB,5MB,MAXSIZE=MAXSIZE=25MB,25MB,FILEGROWTH=FILEGROWTH=5MB5MB)按按F5F5键或图标执行(如正确命名保存)键或图标执行(如正确命名保存)建立一个建立一个teacherteacher数据库,包括数据库,包括二二个文件,分别存放在个文件,分别存放在二二个磁盘上,每个文件为个磁盘上,每个文件为 100 MB 100 MB 的数据文件,最大限制为的数据文件,最大限制为
9、200MB200MB,文件增长为,文件增长为20 MB20 MB。建立两个。建立两个100 MB 100 MB 的事务日志文的事务日志文件,每个文件为件,每个文件为 100 MB 100 MB 的数据文件,最大限制为的数据文件,最大限制为200MB200MB,文件增长为文件增长为20 MB20 MB。文件名自定义。文件名自定义。例题例题 2 2CREATE DATABASECREATE DATABASE teacher teacher ONON(NAME=(NAME=teacher1,teacher1,FILENAME=FILENAME=d:sqlt_datateacher1dat.mdfd:
10、sqlt_datateacher1dat.mdf,SIZE=100MB,SIZE=100MB,MAXSIZE=200MB,MAXSIZE=200MB,FILEGROWTH=20MB),FILEGROWTH=20MB),(NAME=(NAME=teacher2,teacher2,FILENAME=FILENAME=e:sqlt_datateacher2dat.ndfe:sqlt_datateacher2dat.ndf,SIZE=SIZE=100MB,100MB,MAXSIZE=MAXSIZE=200MB,200MB,FILEGROWTH=FILEGROWTH=20MB20MB)依次在依次在D盘、
11、盘、E盘上设计盘上设计2组文件夹组文件夹在查询分析器中输入以下语句在查询分析器中输入以下语句LOG ON LOG ON(NAME=(NAME=teachlog1teachlog1,FILENAME=FILENAME=d:sqlt_recordteach1og1.ldfd:sqlt_recordteach1og1.ldf,SIZE=SIZE=100MB,100MB,MAXSIZE=MAXSIZE=200MB,200MB,FILEGROWTH=FILEGROWTH=20MB20MB),),(NAME=(NAME=teachlog2teachlog2,FILENAME=FILENAME=e:sqlt
12、_recordteach1og2.ldfe:sqlt_recordteach1og2.ldf,SIZE=SIZE=100MB,100MB,MAXSIZE=MAXSIZE=200MB,200MB,FILEGROWTH=FILEGROWTH=20MB20MB)按按F5F5键或图标执行(如正确命名保存)键或图标执行(如正确命名保存)思考题一:思考题一:1 1 在建立数据库时能实现数据与程序的独立在建立数据库时能实现数据与程序的独立性吗,什么独立性?性吗,什么独立性?2 2 在建库命令中有多少类型的逻辑名?在以在建库命令中有多少类型的逻辑名?在以后的查询或程序中使用建库中的哪个逻辑文后的查询或程序中使
13、用建库中的哪个逻辑文件名?件名?3 3 为什么需要次文件,一个数据库可以有多为什么需要次文件,一个数据库可以有多少主文件和次文件?少主文件和次文件?4 4 如果物理存储位置改变了,修改建库命令如果物理存储位置改变了,修改建库命令中什么内容?中什么内容?5 5 在建库中实现了什么映象?在建库中实现了什么映象?2.2.创建表创建表定义基本表的格式为:定义基本表的格式为:CREATE TABLE表名表名 (列名列名 数据类型数据类型 NULL|NOT NULL NULL|NOT NULL ,.,.n n )PRIMARY KEY PRIMARY KEY(列名列表)列名列表)FOREIGN KEY(外
14、码外码)REFERENCES参照表参照表(对应列对应列)1)NOT NULL|NULL:定义不允许或允许字段值为空。:定义不允许或允许字段值为空。2)PRIMARY KEY 定义该字段为主码定义该字段为主码3)FOREIGN KEY 指出表的外码和被参照表指出表的外码和被参照表6.3 6.3 建立一个学生文件,文件结构设计如下:建立一个学生文件,文件结构设计如下:学生表学生表(学号学号 char(9),姓名姓名 char(8),性别性别 char(2),年龄年龄 tinyint,所在院系所在院系 char(10),班级名班级名 char(10),入学年份入学年份 datetime)主码主码 学
15、号学号例题例题 1数据类型参见数据类型参见P147 表表6-1选择数据库,或在查询分析器中输入选择数据库,或在查询分析器中输入 USE数据库名数据库名执行该语句执行该语句在查询分析器中输入以下语句在查询分析器中输入以下语句CREATE TABLECREATE TABLE 学生表学生表(学号学号 Char(Char(9 9),),姓名姓名 char(char(8 8),),性别性别 char(char(2 2),),年龄年龄 tinyinttinyint,所在院系所在院系 char(10),班级名班级名 char(10),入学年份入学年份 datetime家庭地址家庭地址 char(50)cha
16、r(50)PRIMARY KEY(PRIMARY KEY(学号学号)按按F5F5键或图标执行(如正确命名保存)键或图标执行(如正确命名保存)建立一个文件,文件结构设计如下:建立一个文件,文件结构设计如下:成绩表成绩表(学号学号 char(9),课程号课程号 char(4),成绩成绩 tinyint)主码主码 学号学号,课程号课程号外码外码 学号学号 参照参照 学生表学生表(学号学号)外码外码 课程号课程号 参照参照 课程表课程表(课程号课程号)例题例题 2在查询分析器中输入以下语句在查询分析器中输入以下语句CREATE TABLE 成绩表成绩表(学号学号 char(9),课程号课程号 char
17、(4),成绩成绩 tinyintPRIMARY KEY(学号学号,课程号课程号)FOREIGN KEY(学号学号)REFERENCES 学生表学生表(学号学号),FOREIGN KEY(课程号课程号)REFERENCES 课程表课程表(课程号课程号)按按F5F5键或图标执行(如正确命名保存)键或图标执行(如正确命名保存)学生表,课程表已建立学生表,课程表已建立3.3.向表中添加记录向表中添加记录5.45.4用语句的方式向表中添加记录用语句的方式向表中添加记录INSERT INSERT 语句可给表添加新行。语句可给表添加新行。INSERT INSERT 语句在简单的情况下语句在简单的情况下有如下
18、形式:有如下形式:语法语法INSERTINSERT INTO INTO table_or_viewtable_or_view(column_listcolumn_list)VALUESVALUES data_valuesdata_values1 1)不同输入方式)不同输入方式InsertInsert 课程表课程表(课程号课程号,课程名课程名,先修课先修课)ValuesValues(C803C803,数据结构数据结构,C801C801)或或Insert Insert 课程表课程表ValuesValues(C803C803,数据结构数据结构,C801C801)2)空值的输入)空值的输入Insert
19、Insert 课程表课程表(课程号课程号,课程名课程名)ValuesValues(C801,离散数学离散数学)3 数据类型数据类型InsertInsert 学生表学生表(学号学号,年龄年龄,入学年份入学年份)ValuesValues(200009001200009001,22,22,2000-08-292000-08-29)思考题二:思考题二:1 1 在建立表文件时都定义了那些方面的内容?在建立表文件时都定义了那些方面的内容?2 2 为什么要定义为什么要定义PKPK和和FKFK3 3 没有定义一个数据项是否为空值,该数据项是没有定义一个数据项是否为空值,该数据项是否可以为空?否可以为空?4 4 在所建立的在所建立的4 4个表中,都使用那些数据类型?个表中,都使用那些数据类型?5 5 插入数据时什么条件下可以使用简单的命令格插入数据时什么条件下可以使用简单的命令格式?式?6 6 为什么数据不能用空格输入代替空值输入?为什么数据不能用空格输入代替空值输入?