数据库对象有两种对象名,即完全限定名和部分限定名。图完全限定名,数据库对象的全名,包括4个部分,即服务器名、数据库名、数据库架构名和对象名,其格式为:server.database.scheme.object盟部分限定名.T-SOL编程时往往很繁琐且没有必要.所以常省略全名中的某些部分。对象全名的前3各部分均可以省略,使用默认值,当省略中间的部分时,圆点符不可省略。服务器默认为本地服务器,数据库默认为当前数据库(注意!!),数据库架构为对象的容器,默认为dbo。SELECT*FROMPXSCJ.dbO.XSBSELECT*FROMPXSCJ..XSBSELECT*EFROMXSB/*将当前数据库先调整为PXSCJ*(2)物理数据库从DBA的角度来看,数据库是物理数据库,他是存储逻辑数据库的各种对象的实体。数据库的物理存储是指这些数据以什么方式存储在计算机磁盘上。a)数据库文件数据库在磁盘上是以文件为单位存储的,由数据库文件和日志文件组成。一个数据库至少包含一个主数据库文件和一个日志文件,有时还可能包括辅助数据文件和多个日志文件。-、主数据库文件,PrimaryDatabaseFile,简称主文件,正如其名字所示,该文件是数据库的关键文件,包含了数据库的启动信息,并且存储数据。每个数据库必须有且仅能有一个主文件,默认扩展名为.mdf福辅助数据库文件,SecondaryDatabaseFile,简称辅(助)文件,用于存储未包括在主文件内得其他数据。辅助文件说可选的,根据具体情况,可以创建多个辅助文件,也可以不使用辅助文件。一般当数据库很大时,有可能需要创建多个辅助文件:当数据库较小时,则只需要创建主文件,而不需要创建辅助文件。默认扩展名为.ndf。■日志文件,用于保存回复数据库所需的事物日志信息。每个数据库至少有一个日志文件,也可以有多个。扩展名为.ldf。默认实例的数据库文件存储位置是C:\ProgramFiles(x86)MicrosoftSQLServer\MSSQL10_50.MSSQLSERVERIMSSQLIDATAAEDATA文师主员共享inowCgaFiles)MicoQSMSMSSQSERMQA口格a口细t快速达间Pmastesmd2017/0/31204,096 KaOneDrie1,280.0l0171sso2017/0/3120Pmoden2.104 X0#吧航66K网路5.104XMSDBDat13610MSDBLogld PXSCI.md7/31214PXSCI_1Id2017/7/3121:44PReportServer.md2017/7/31.20.42017/7/31:20.46r togD2.304.K820rTempDBlogLD2017/1/312204Cnmpdh.md+
数据库对象有两种对象名,即完全限定名和部分限定名。 ◼ 完全限定名,数据库对象的全名,包括 4 个部分,即服务器名、数据库名、数据库 架构名和对象名,其格式为: server.database.scheme.object ◼ 部分限定名,T-SQL 编程时往往很繁琐且没有必要,所以常省略全名中的某些部分。 对象全名的前 3 各部分均可以省略,使用默认值,当省略中间的部分时,圆点符不 可省略。服务器默认为本地服务器,数据库默认为当前数据库(注意!!),数据库 架构为对象的容器,默认为 dbo。 SELECT * FROM PXSCJ.dbo.XSB SELECT * FROM PXSCJ.XSB SELECT * FROM XSB /*将当前数据库先调整为 PXSCJ*/ (2)物理数据库 从 DBA 的角度来看,数据库是物理数据库,他是存储逻辑数据库的各种对象的实体。 数据库的物理存储是指这些数据以什么方式存储在计算机磁盘上。 a) 数据库文件 数据库在磁盘上是以文件为单位存储的,由数据库文件和日志文件组成。一个数据库至 少包含一个主数据库文件和一个日志文件,有时还可能包括辅助数据文件和多个日志文件。 ◼ 主数据库文件,Primary Database File,简称主文件,正如其名字所示,该文件是数据库 的关键文件,包含了数据库的启动信息,并且存储数据。每个数据库必须有且仅能有一 个主文件,默认扩展名为.mdf ◼ 辅助数据库文件,Secondary Database File,简称辅(助)文件,用于存储未包括在主 文件内得其他数据。辅助文件说可选的,根据具体情况,可以创建多个辅助文件,也可 以不使用辅助文件。一般当数据库很大时,有可能需要创建多个辅助文件;当数据库较 小时,则只需要创建主文件,而不需要创建辅助文件。默认扩展名为.ndf。 ◼ 日志文件,用于保存回复数据库所需的事物日志信息。每个数据库至少有一个日志文件, 也可以有多个。扩展名为.ldf。 默认实例的数据库文件存储位置是: C:\Program Files (x86)\Microsoft SQL Server\MSSQL10_50.MSSQLSERVER\MSSQL\DATA
b)文件组为了便于分配和管理,SQLServer允许将多个数据文件归纳为同一组,并赋予此组一个名称,这就是文件组。文件组能够控制个文件的存放位置,使数据文件可以存放在不同的硬盘驱动器上,这样可以减轻单个磁盘驱动器的负载,提高数据库的存储效率,从而提高系统性能。■主文件组PrimaryFileGroup:包含主要数据文件和任何没有明确指派给其他文件组的其他文件,每个数据库中都有一个文件组作为默认文件组运行。■用户定义文件组SecondaryFileGroup:也称为次文件组,在CREATEDATABASE或ALTERDATABASE语句中使用FILEGROUP关键字指定文件组。PS:若不指定用户定义文件组,则所有数据文件都包含在主文件组中。在设计文件和文件组时,一个文件只能属于一个文件组。只有数据文件才能作为文件组的成员,日志文件不能作为文件组的成员。2.2.2数据库基本操作(1)创建数据库创建用户数据库有两种方式。一种是通过界面方式创建数据库,另一种是通过T-SQL命令方式创建数据库。SQLServer2008中使用界面方式创建数据库主要通过SSMS窗口中提供的图形化向导来进行。首先需要明确,创建数据库必须确定数据库名、所有者(创建数据库的用户)、数据库大小(最初的大小、最大的大小、是否允许增长以及增长方式)和存储数据库的文件。一般来说,允许数据库文件能够自动增长,但要设置一个上限,否则可能充满磁盘。对于新创建的数据库,默认数据文件初始大小为3M,最大大小不受限制(仅受硬盘空间的限制),允许数据库自动增长,增量为1M:默认日志文件初始大小为1M,最大大小不受限制(仅受硬盘空间的限制),充许日志文件自动增长,增长方式按10%比例自动增长。【例2-1】使用界面方式创建数据库TEST数据文件和日志文件的属性按默认值设置。STEP1.以系统管理员身份登录计算机,在桌面上单击"开始一→所有程序一MicrosoftSQLServer2008",选择并启动SQLServerManagementStudio。使用默认的系统配置连接到数据库服务器。STEP2.选择“对象资源管理器"中服务器目录下的"数据库"目录,右击鼠标,在弹出的快捷菜单中选择新建数据库菜单项,打开“新建数据库"窗口。STEP3.“新建数据库"窗口的左上方共有三个选项卡一“常规”、“选项和"文件组",这里只配置“常规"选项卡,其他选项卡使用系统默认设置。在“数据库名称"文本框中填写要创建的数据库名称"TEST",逻辑文件名可以直接修改,路径处设置路径文件。另外,可以通过单击自动增长标签栏的按钮,在弹出的对话框中可以设置数据库是否自动增长、增长方式、数据库文件最大文件大小。数据日志文件的自动增长设置对话框与数据文件的类似
b) 文件组 为了便于分配和管理,SQL Server 允许将多个数据文件归纳为同一组,并赋予此组一个 名称,这就是文件组。文件组能够控制个文件的存放位置,使数据文件可以存放在不同的硬 盘驱动器上,这样可以减轻单个磁盘驱动器的负载,提高数据库的存储效率,从而提高系统 性能。 ◼ 主文件组 Primary File Group:包含主要数据文件和任何没有明确指派给其他文件组的 其他文件,每个数据库中都有一个文件组作为默认文件组运行。 ◼ 用户定义文件组 Secondary File Group:也称为次文件组,在 CREATE DATABASE 或 ALTER DATABASE 语句中使用 FILEGROUP 关键字指定文件组。 PS:若不指定用户定义文件组,则所有数据文件都包含在主文件组中。在设计文件和文件组 时,一个文件只能属于一个文件组。只有数据文件才能作为文件组的成员,日志文件不能作 为文件组的成员。 数据库基本操作 (1)创建数据库 创建用户数据库有两种方式。一种是通过界面方式创建数据库,另一种是通过 T-SQL 命 令方式创建数据库。SQL Server2008 中使用界面方式创建数据库主要通过 SSMS 窗口中提供 的图形化向导来进行。 首先需要明确,创建数据库必须确定数据库名、所有者(创建数据库的用户)、数据库 大小(最初的大小、最大的大小、是否允许增长以及增长方式)和存储数据库的文件。 一般来说,允许数据库文件能够自动增长,但要设置一个上限,否则可能充满磁盘。对 于新创建的数据库,默认数据文件初始大小为 3M,最大大小不受限制(仅受硬盘空间的限 制),允许数据库自动增长,增量为 1M;默认日志文件初始大小为 1M,最大大小不受限制 (仅受硬盘空间的限制),允许日志文件自动增长,增长方式按 10%比例自动增长。 【例 2-1】使用界面方式创建数据库 TEST,数据文件和日志文件的属性按默认值设置。 STEP 1. 以系统管理员身份登录计算机,在桌面上单击“开始→所有程序→Microsoft SQL Server 2008”,选择并启动 SQL Server Management Studio。使用默认的系统配置 连接到数据库服务器。 STEP 2. 选择“对象资源管理器”中服务器目录下的“数据库”目录,右击鼠标,在弹出的快捷 菜单中选择“新建数据库”菜单项,打开“新建数据库”窗口。 STEP 3. “新建数据库”窗口的左上方共有三个选项卡——“常规”、“选项”和“文件组”,这里只 配置“常规”选项卡,其他选项卡使用系统默认设置。在“数据库名称”文本框中填写 要创建的数据库名称“TEST”,逻辑文件名可以直接修改,路径处设置路径文件。另 外,可以通过单击自动增长标签栏的按钮,在弹出的对话框中可以设置数据库是否 自动增长、增长方式、数据库文件最大文件大小。数据日志文件的自动增长设置对 话框与数据文件的类似
STEP4.在对象资源管理器的"数据库"目录下找到创建完成的TEST数据库。当然也可以使用Transact-SQL命令来创建数据库。与界面方式创建数据库相比,命令方式更为常用,使用也更为灵活。对于熟练的用户来说,使用T-SQL语言创建数据库是种习惯的方法,而且这样创建的数据库便于复制。【例2-2】使用T-SQL命令创建一个名为TEST的数据库,它有两个数据文件:初始大小为5MB,最大大小为50MB,按10%比例自动增长。日志文件初始为2MB,最大大小为5MB,按1MB增长。数据文件和日志文件的存放位置为SQLServer默认实例目录下。CREATE DATABASE TESTON PRIMARYNAME-"test_1i:ProgramFiles(x86)AMicrosoftSQLServerMSSQLio50.MSSQLSERVER\MsSQLDATAVtest1.mdf!FILENAMEIZE-5MEMAXSIZE-50MEFILEGROWTH-10147FILENAMXProgramFiles(xB6)>MicrosoftSQLServer\MSSQL10_50.MSSQLSERVER/MSSQL/DATAitest2.ndf)SIZE-5MBMAXSIZE-50MFILEGROWTH-10LOGONLUFILENAME-"c:NProgramFiles(B6)MicrosoftSQL Server\MSSQL10_50.MSSQLSERVERIMSSQLIDATAVtest_log.ldf.ZE-2MBMAXSIZE-5MBFILEGROWTH-1MIGO(2)修改和删除数据库在数据库成功创建后,数据文件名和日志文件名就不能改变,存储路径也不能改变。选择需要进行修改的数据库PXSCJ,右击鼠标,在出现的快捷菜单中选择属性"菜单项。选项卡列表中包括9个选项卡。a)改变数据文件的大小和增长方式。b)增加或删除数据文件。增加:当原有数据库的存储空间不够大时,除了可以采用扩大原有数据文件存储量的方法之外,还可以增加新的数据文件。从DBA的需求出发,采用多个数据文件来存储数据以避免数据文件过大。增加的文件是辅助数据文件,文件扩展名是.ndf。删除:当数据库中某些数据文件不再需要时,应及时将其删除。只能删除辅助数据文件而不能删除主数据文件。因为在主数据文件中存放着数据库启动信息,若将其删除,数据库将无法启动。c)增加或删除文件组。增加:在“文件组"选择页中,可以添加自定义文件组。并在“文件"选择页中,允许将辅助数据库文件分配给自定义的文件组,但日志文件不能作为文件组的成员。删除:使用界面方式删除文件组,文件组中的数据库文件会随之一起被删除;而使用T-SQL命令删除文件组时,如文件组中存在数据库文件则需先删除数据库文件,再删除文件组。d)数据库的重命名:选择要重命名的数据库,右击鼠标,在弹出的快捷菜单中选择"重
STEP 4. 在对象资源管理器的“数据库”目录下找到创建完成的 TEST 数据库。 当然也可以使用 Transact-SQL 命令来创建数据库。与界面方式创建数据库相比,命令 方式更为常用,使用也更为灵活。对于熟练的用户来说,使用 T-SQL 语言创建数据库是一 种习惯的方法,而且这样创建的数据库便于复制。 【例 2-2】使用 T-SQL 命令创建一个名为 TEST 的数据库,它有两个数据文件:初始大小为 5MB,最大大小为 50MB,按 10%比例自动增长。日志文件初始为 2MB,最大大小为 5MB, 按 1MB 增长。数据文件和日志文件的存放位置为 SQL Server 默认实例目录下。 (2)修改和删除数据库 在数据库成功创建后,数据文件名和日志文件名就不能改变,存储路径也不能改变。选 择需要进行修改的数据库 PXSCJ,右击鼠标,在出现的快捷菜单中选择“属性”菜单项。选项 卡列表中包括 9 个选项卡。 a) 改变数据文件的大小和增长方式。 b) 增加或删除数据文件。 增加:当原有数据库的存储空间不够大时,除了可以采用扩大原有数据文件存储量的方 法之外,还可以增加新的数据文件。从 DBA 的需求出发,采用多个数据文件来存储数据, 以避免数据文件过大。增加的文件是辅助数据文件,文件扩展名是.ndf。 删除:当数据库中某些数据文件不再需要时,应及时将其删除。只能删除辅助数据文件, 而不能删除主数据文件。因为在主数据文件中存放着数据库启动信息,若将其删除,数据库 将无法启动。 c) 增加或删除文件组。 增加:在“文件组”选择页中,可以添加自定义文件组。并在“文件”选择页中,允许将辅 助数据库文件分配给自定义的文件组,但日志文件不能作为文件组的成员。 删除:使用界面方式删除文件组,文件组中的数据库文件会随之一起被删除;而使用 TSQL 命令删除文件组时,如文件组中存在数据库文件则需先删除数据库文件,再删除文件组。 d) 数据库的重命名:选择要重命名的数据库,右击鼠标,在弹出的快捷菜单中选择“重
命名菜单项,输入新的数据库名称,即可更改数据库的名称。e数据库的删除:选择要删除的数据库,右击鼠标,在弹出的快捷菜单中选择删除菜单项,单击右下角的"确定"按钮,即可删除数据库。(3)备份数据库右键数据库→任务-备份选择目标备份位置>确定即可,备份文件的后缀名为.bak。(4)还原数据库右键数据库→还原数据库→目标数据库中写上数据库名称→原设备找到还原的数据库位置→在还原处打上勾单击确定即可→数据库中可以看到还原的PXSCJ数据库
命名”菜单项,输入新的数据库名称,即可更改数据库的名称。 e) 数据库的删除:选择要删除的数据库,右击鼠标,在弹出的快捷菜单中选择“删除” 菜单项,单击右下角的“确定”按钮,即可删除数据库。 (3)备份数据库 右键数据库➔任务-备份➔选择目标备份位置➔确定即可,备份文件的后缀名为.bak。 (4)还原数据库 右键数据库➔还原数据库➔目标数据库中写上数据库名称➔原设备找到还原的数据库 位置➔在还原处打上勾单击确定即可➔数据库中可以看到还原的 PXSCJ 数据库
2.3表结构设计在创建数据库之后,就需要建立数据表。表是数据库中最基本的数据对象,用于存放数据库中的数据。每个数据库包含了若干个表,每张表都由行和列组成。在创建表之前,先要确定表的名字、表的属性,同时确定表所包含的列名(字段名)、列的数据类型(长度)、是否可为空值、约束条件、默认值设置、哪些字段是主键、哪些字段是外键等等,这些属性构成了表结构。当表中有了记录后,建议不要轻易改变表结构,特别不要改变数据类型,以免产生错误。本课程教师演示学生管理系统PXSCJ数据库,包含三个表:学生表XSB、课程表KCB、成绩表CJB,以下是这三张表的结构设计。列名长度默认值说明数据类型是否可空6X学号无主键char8姓名x无char性别2X无char“男“或"女”18x无身份证号唯一性charV默认值无出生日期date专业20无charVint0总学分默认值[0,160]V备注200无varchar列名长度默认值说明数据类型是否可空3X无主键课程编号charx无20唯一性课程名称charV11开课学期[1,8]tinyint2V0学时smallint学分1x0tinyint长度列名数据类型是否可空默认值说明6X无学号主键,外键char3X无课程编号char主键,外键V0成绩int默认值[0, 100]
2.3 表结构设计 在创建数据库之后,就需要建立数据表。表是数据库中最基本的数据对象,用于存放数 据库中的数据。每个数据库包含了若干个表,每张表都由行和列组成。 在创建表之前,先要确定表的名字、表的属性,同时确定表所包含的列名(字段名)、 列的数据类型(长度)、是否可为空值、约束条件、默认值设置、哪些字段是主键、哪些字 段是外键等等,这些属性构成了表结构。当表中有了记录后,建议不要轻易改变表结构,特 别不要改变数据类型,以免产生错误。 本课程教师演示学生管理系统 PXSCJ 数据库,包含三个表:学生表 XSB、课程表 KCB、 成绩表 CJB,以下是这三张表的结构设计。 列名 数据类型 长度 是否可空 默认值 说明 学号 char 6 Χ 无 主键 姓名 char 8 Χ 无 性别 char 2 Χ 无 “男“或”女“ 身份证号 char 18 Χ 无 唯一性 出生日期 date 默认值 √ 无 专业 char 20 √ 无 总学分 int 默认值 √ 0 [ 0, 160 ] 备注 varchar 200 √ 无 列名 数据类型 长度 是否可空 默认值 说明 课程编号 char 3 Χ 无 主键 课程名称 char 20 Χ 无 唯一性 开课学期 tinyint 1 √ 1 [ 1, 8 ] 学时 smallint 2 √ 0 学分 tinyint 1 Χ 0 列名 数据类型 长度 是否可空 默认值 说明 学号 char 6 Χ 无 主键,外键 课程编号 char 3 Χ 无 主键,外键 成绩 int 默认值 √ 0 [ 0, 100 ]