资源描述
Click to edit Master title style,Click to edit Master text styles,Second level,Third level,Fourth level,Fifth level,*,*,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,2.1,数据库的逻辑结构,一、数据库对象,二、数据库对象的引用,三、系统数据库,2.2,数据库的物理结构,一、文件,二、文件组,2.3,创建和修改数据库,一、向导,二、企业管理器,三、,T-SQL,语句,2.4,创建和操作表,一、预备知识,二、创建和修改表,三、浏览,/,操作表,数据库,运用技术,数据库,运用技术,数据库运用技术,主讲:邵燕林,Geographical Information System,第二章 数据库和表的创建,第二大节,(3,学时,),教学目标:,1.,理解,SQL SERVER 2019,的逻辑结构,能列举,5,个以上常用的数据库对象;,2.,了解各系统数据库的作用;,3.,理解数据库的物理结构,掌握主数据文件、辅助数据文件、日志文件、文件组的概念及管理方法;,4.,学习几种创建数据库的方法,并掌握设置数据库文件、属性的方法;,第二章 数据库和表的创建,2.1,数据库逻辑结构,一、数据库对象,从逻辑上看,,SQL SERVER 2019,数据库由存放数据的表以及支持这些数据的存储、检索、安全性和完整性对象所组成。,SQL SERVER 2019,主要包括以下一些对象:,表,(Table),:,由行列构成的集合,用来存储数据,是最重要的数据库对象;,视图,(View),:,由表或其他视图导出的虚拟表;,数据类型,(Data Type),:,定义列和变量的数据类型;,第二章 数据库和表的创建,索引,(Index),:,为加快数据检索,定义的辅助数据结构;,约束(,Constrain),:,为表中的列定义完整性的规则;,默认值(,Default),:,为列提供的默认值,存储过程,(Procedure),:,存放于服务器的预先编译好的一组,T-SQL,语句;,触发器,(Trigger),:,是被系统自动执行,以确保数据完整性的一组特殊的存储过程,函数,(Function):,是存放于服务器预编译好的数学函数、算法。,主要数据库对象,第二章 数据库和表的创建,二、数据库对象的引用,在,T-SQL,语句中,数据库对象可使用两种对象名来引用:,完全名,和,部分限定名,。,完全限定名是对象的全名,在,SQL SERVER 2019,上创建的每个对象都有唯一的完全限定名。它包括四个部分:服务器名、数据库名、所有者名和对象名,其格式为:,如:,NS001.XSBOOK.DBO.XS,即为一个完全限定名。,第二章 数据库和表的创建,三、系统数据库,安装,SQL SERVER 2019,,系统将自动创建,4,个系统数据库,(master,、,model,、,tempdb,、,msdb,)和,2,个示例数据库(,Pubs,、,Northwind,)。,master,:,是,SQL Server,中最重要的系统数据库,存储着系统表格和环境信息等等“元数据”。该数据库的破坏将导致数据库服务无法启动。,model,:,是系统创建新数据库时使用的模板数据库。,msdb,:,时,SQL Server Agent,用来安排警告、工作以及记录操作时使用的数据库。,第二章 数据库和表的创建,tempdb,:,用来存放,SQL SERVER 2019,运行期间创建的临时表以及其他数据库对象。,pubs,和,NorthWind,:,是,SQL SERVER 2019,自带的示例数据库。,第二章 数据库和表的创建,2.2,数据库物理结构,一、文件,1.,主数据文件,(Primary data file),:,它是数据库的关键文件,用于存储数据表、索引、视图、存储过程等数据对象及数据,并包含了数据库的启动信息。每个数据库必须有且仅能有一个主文件,其默认扩展名为,.MDF,。如:,master,数据库的主数据文件名为,master.mdf,。,第二章 数据库和表的创建,2.,辅助数据文件,(Secondary data file),如果数据库中数据量非常大,除了存储在主数据文件中,可以将一部分数据存储在辅助数据文件中。辅助文件的默认扩展名,.NDF,。根据具体情况,可以创建多个辅助文件,也可以不用辅助文件。,3.,日志文件,(log data file),日志文件用于保存恢复数据库所需的事务日志信息。每个数据库至少有一个日志文件。日志文件的扩展名为,.LDF,。,主文件,日志文件,辅助数据文件,第二章 数据库和表的创建,二、文件组,为了方便管理,可以将多个数据文件组织成一组,称为数据库文件组。可以将文件组中的文件存放在不同的物理磁盘,当对数据进行操作时,,SQL SERVER 2019,会同时修改这些文件,这可以提高数据库的性能。,?,第二章 数据库和表的创建,可对文件组设置访问权限(避免了对该文件组中数据文件分别的设置),第二章 数据库和表的创建,在,SQL SERVER 2019,中,文件组由以下两种类型:,主文件组,(Primary Filegroup),:,包含主文件的文件组称为主文件组。在创建数据库时,如果我们没有定义文件组,系统自动建立主文件组,所有的系统表都分配在主文件组中。,用户定义文件组,(User-defined Filegroup),:,用户定义文件组是指在创建或修改数据库时,用户明确创建的文件组。,第二章 数据库和表的创建,TIP,:,1.,每个数据库有且仅有一个文件组被指定为默认文件组,当创建数据库对象时,系统将这些对象指派到默认文件组中。,2.,文件或文件组不能被一个以上数据库使用;,3.,日志文件不属于任何文件组。,文件组应用实例,主文件组,用户定义文件组,第二章 数据库和表的创建,2.3,创建和修改数据库,在,SQL SERVER 2019,中,创建数据库主要有三种方法:,使用向导创建数据库,使用企业管理器创建数据库,使用,T-SQL,语句创建数据库,【,例,3.1】,创建数据库,XSBOOK,,初始大小为,5MB,,最大大小,20MB,,数据库自动增长,增长方式是按,10%,比例增长;日志文件初始为,2MB,,最大可增长到,5MB,,按,1MB,增长;所有者是,Administrator,。假设,SQL Server,服务已启动,并以,Administrator,身份登录计算机。,第二章 数据库和表的创建,一、利用向导创建数据库,第二章 数据库和表的创建,在欢迎对话框中点击下一步,进入下一设置界面,依次完成每一步设置内容,最后点击,【,完成,】,,完成数据库的创建。,第二章 数据库和表的创建,输入新建,数据库名称,输入数据库文件名,点击弹出数据文件路径设置对话框,设置数据文件选项,添加辅助数据文件,设置数据文件文件组,点击确定完成建立,二、利用企业管理器创建和修改数据库,1.,利用企业管理器创建数据库,第二章 数据库和表的创建,2.,在企业管理器中修改数据库,启动企业管理器,选中要管理的数据库,打开属性对话框。,1,)改变数据文件的大小和增长方式,可修改已有文件的增长属性,可修改数据文件大小的限制,不可改变已有文件名,可改变文件已分配大小,第二章 数据库和表的创建,2,)增加、删除数据文件,点击这里,第二章 数据库和表的创建,3,)增加、删除文件组,有两种方法:,创建新数据文件时直接输入新文件组名,;,在文件组选项卡中新建文件组,。,TIP,:,删除文件组时,必须先将其中的所有数据文件删除。,直接在这里输入新的文件组名,第二章 数据库和表的创建,1.,利用,T-SQL,语句创建数据库,基本语法 :,CREATE DATABASE database_name, ON,子句,-,指定数据库文件和文件组属性, LOG ON,子句,-,指定日志文件属性, COLLATE ,-,指定排序规则, FOR LOAD | FOR ATTACH ,-,加载,/,附加数据库,1) ON,子句,ON PRIMARY ,n ,| FILEGROUP,文件组名,n ,n,数据库名,三、利用,T-SQL,语句创建和修改数据库,第二章 数据库和表的创建,2) LOG ON,子句,LOG ON ,n ,3),文件定义描述语法,:=,(,Name=,逻辑文件名,FileName=,操作系统文件名,,SIZE=size,MAXSIZE=max_size|UNLIMITED,FILEGROWTH=growth_increament,),第二章 数据库和表的创建,TIP,:,在,Transact-SQL,语言的命令格式中,用, ,括起来的内容表示是可选的;,,,n,表示重复前面的内容;用,括起来表示在实际编写语句时,用相应的内容替代;用, ,括起来表示是必选的;类似,A|B,的格式,表示,A,和,B,只能选择一个,不能同时都选。,第二章 数据库和表的创建,2.,在查询分析器中利用,T-SQL,语句创建数据库,【,例,3.2】,使用,T-SQL,语句,创建一个名为,xsbook1,的数据库,其初始大小为,5MB,,最大大小,20MB,,允许数据库自动增长,增长方式是按,10%,比例增长;日志文件初始为,2MB,,最大可增长到,5MB,,按,1MB,增长。假设,SQL Server,服务已启动,并以,Administrator,身份登录计算机。,操作方法:,启动查询分析器,并连接到对应的数据库服务器。登录后点击模板选卡,找到,Creat Database Basic,模板,用鼠标拖拽至,T-SQL,语句输入窗口,在模板的基础上,创建图中,T-SQL,语句,并点击分析、执行查询。,分析、执行查询,第二章 数据库和表的创建,3.,数据库创建实训,【,例,3.3】,创建一个名为,DB,的数据库,它有两个数据文件,其中主数据文件为,10MB,,最大大小为,100MB,,按,10MB,增长;一个辅数据文件为,10MB,,最大大小不限,按,10%,增长;有,2,个日志文件,大小均为,5MB,,最大大小均为,50MB,,按,5MB,增长。,【,例,3.4】,在上例的基础上,增加一个用户定义的文件组,名称为,testUserGroup,,其中包含,2,个数据文件,都为,10MB,,最大大小不限,按,10%,增长;,CREATE DATABASE DB,ON,PRIMARY,(NAME = DB_data1,FILENAME = e:Program filesMicrosoft SQL ServerMSSQLdatadb_data1.mdf,SIZE = 10MB,MAXSIZE = 100MB,FILEGROWTH = 10MB),(NAME = DB_data2,FILENAME = e:Program filesMicrosoft SQL ServerMSSQLdatadb_data2.ndf,SIZE = 10MB,MAXSIZE = UNLIMITED,FILEGROWTH = 10%),LOG ON,(NAME = DB2_log1,FILENAME = e:Program filesMicrosoft SQL ServerMSSQLdatadb2_log1.ldf,SIZE = 5MB,MAXSIZE = 50MB,FILEGROWTH = 5MB),(NAME = DB2_log2,FILENAME = e:Program filesMicrosoft SQL ServerMSSQLdatadb2_log2.ldf,SIZE = 5MB,MAXSIZE = 50MB,FILEGROWTH = 5MB),GO,注意,别掉了此处 “, ”,号,插入下列语句:,FILEGROUP testUserGroup,(NAME = DB_data3,FILENAME = d:db_data3.ndf,SIZE = 10MB,MAXSIZE = UNLIMITED,FILEGROWTH = 10%),(NAME = DB_data4,FILENAME = d:db_data4.ndf,SIZE = 10MB,MAXSIZE = UNLIMITED,FILEGROWTH = 10%),第二章 数据库和表的创建,4.,利用,T-SQL,语句修改数据库,ALTER DATABASE database_name,/*,在文件组中增加数据文件*,/,ADD FILE ,.n , TO FILEGROUP filegroup_name,| ADD LOG FILE ,.n ,-,增加日志文件,| REMOVE FILE logical_file_name,-,删除文件,| ADD FILEGROUP filegroup_name,-,增加文件组,| REMOVE FILEGROUP filegroup_name,-,删除文件组,| MODIFY FILE ,-,更改文件属性,| MODIFY NAME = new_dbname,-,更改数据库名,|,SET ,.,n, WITH ,-,设置数据库属性,| COLLATE ,-,更改数据库排序规则,第二章 数据库和表的创建,5. T-SQL,语句修改数据库文件实训:,ALTER DATABASE DB,MODIFY FILE,(NAME=db_data,Maxsize=UNLIMITED,FILEGROWTH=5MB),GO,-,第一次修改主数据文件的大小限制,ALTER DATABASE DB,ADD FILEGROUP Fgroup,GO,-,第二次修改,为数据库添加文件组,第二章 数据库和表的创建,ALTER DATABASE DB,ADD FILE,(NAME=db_data2,FILENAME=D:db_dat2,SIZE=10MB,MAXSIZE=30MB,FILEGROWTH=5MB),TO FILEGROUP Fgroup,GO,-,第三次修改,为新文件组中添加数据文件,ALTER DATABASE DB,REMOVE FILE db_dat2,GO,-,第四次修改,移除数据文件,db_Dat2,ALTER DATABASE DB,RMOVE FILEGROUP Fgroup,GO,-,第五次修改,移除文件组,FGroup,第二章 数据库和表的创建,ALTER DATABASE DB,ADD LOG FILE,(NAME=db_log2,FILENAME=D:db_Log2,SIZE=5MB,MAXSIZE=10MB,FILEGROWTH=1MB),GO,-,第六次修改,为数据库添加日志文件,ALTER DATABASE DB,MODIFY NAME=HEHE,GO,-,第七次修改,更改数据库名称为,HEHE,DROP DATABASE HEHE,GO,-,删除数据库,HEHE,第二章 数据库和表的创建,第三大节,教学目标:,1.,了解数据表的基本概念;,2.,了解,E-R,图到数据库逻辑结构的转换方法;,3.,了解,SQL Server2000,支持的数据类型;,4.,掌握界面方式创建、修改表的方法,能按要求在,SQL SERVER 2019,企业管理器中创建、修改数据表;,5.,掌握命令方式创建、修改数据表的基本语法,能在查询分析器中按要求创建、修改数据表;,6.,掌握数据表浏览和操作的方法,能以界面的方式和命令的方式浏览操纵数据库中数据表的数据。,第二章 数据库和表的创建,2.4,创建和操作表,一、预备知识,1.,数据表基本概念,表是用来存储和操作数据的一组逻辑结构,它由行和列组成,是,SQL Server,中最主要的数据库对象。,关系数据库利用表来表示实体和实体之间的关系,所以关系数据库中包含了,反映实体信息的表,和,反映实体之间联系的表,。,第二章 数据库和表的创建,1),表结构:,每个数据库包含了若干个表。每个表具有一定的结构,称之为表“型”,所谓表型是指组成表的各列的名称及数据类型,也就是日常表格的“栏目信息”。,2),表名:每个表都有一个名字,以标识该表。例如上表的名字是,XS,。,3),记录:每个表可包含若干行数据,表中的一行称为一个记录,(Record),,因此,表是记录的有限集合。,第二章 数据库和表的创建,4),字段:每个记录由若干个数据项(列)构成,构成记录的每个数据项就称为字段,(Field),,字段有其数据类型,是该字段的取值类型。,5),关键字:若表中记录的某一字段或字段组合能唯一标识记录,则称该字段或字段组合为候选关键字(,Candidate key,)。若一个表有多个候选关键字,则选定其中一个为主关键字(,Primary key,),也称为主键。当一个表仅有唯一的一个候选关键字时,该候选关键字就是主关键字。,第二章 数据库和表的创建,2. E-R,图的转换,1),实体联系类型,第二章 数据库和表的创建,2) 11,联系的,E-R,图到关系模式的转换,第二章 数据库和表的创建,A.,如果联系不单独对应关系模式,可设计如下关系模式:,class,(班级编号,院系,专业,人数),monitor,(学号,姓名,班级编号),B.,如果联系单独对应关系模式,可设计如下关系模式:,class,(,班级编号,,院系,专业,人数),monitor,(,学号,,姓名),belongto,(,学号,,班级编号),TIP:,下横线表示该字段为主码,第二章 数据库和表的创建,3) 1n,联系的,E-R,图到关系模式的转换,第二章 数据库和表的创建,A.,如果联系不单独对应关系模式,可设计如下关系模式:,class,(,班级编号,,院系,专业,人数),student(,学号,,姓名,年龄,性别,班级编号,),B.,如果联系单独对应一关系模式,可设计如下关系模式:,class,(,班级编号,,院系,专业,人数),student(,学号,,姓名,年龄,性别,),belongto,(,学号,,班级编号),第二章 数据库和表的创建,4) mn,联系的,E-R,图到关系模式的转换,第二章 数据库和表的创建,每个实体集各对应一个关系模式。, 对于,(m : n),的联系,单独对应以关系模式,该模式包括联系的属性、参与联系的各实体集的主码属性,该关系模式的主码由各实体集的主码属性共同组成。,根据以上方法步骤,可设计如下关系模式:,student(,学号,,姓名,专业,班级,性别,,),course,(,课程编号,,课程名称,课程类别,学分),selection(,学号,,,课程编号,,成绩,),第二章 数据库和表的创建,5) E-R,图转换实训,第二章 数据库和表的创建,3. SQL SERVER 2019,数据类型简介,数据类型,符号标识,字符型,char, nchar, varchar, nvarchar,整型,int, smallint, tinyint, bigint,浮点型,real, float,科学计数型,decimal,,,numeric,日期时间型,datetime, smalldatetime,时间戳型,timestamp,位型,bit,二进制型,binary, varbinary,文本型,text, ntext,图像型,image,货币型,money,smallmoney,特殊数据类型,cursor, sql_variant, table, uniqueidentifier,第二章 数据库和表的创建,2.4,创建和操作表,一、创建表,数据表的创建和修改有两种方式:,界面方式(通过企业管理器);,命令方式(直接通过,T-SQL,语句)。,1.,界面方式,启动企业管理器,进入要创建新表的数据库,选种表对象,鼠标右击弹出菜单,选取,【,新建表,】,,进入表设计器界面。,直接输入新字段名称,选择字段新建数据类型,设置字段长度和是否允许空值,设置字段相关属性,可以设置默认值或绑定默认值对象,设置主键,设计完成后点击保存,保存新建的表,第二章 数据库和表的创建,2.,命令方式,1),创建表,创建表的,基本语法,如下:,CREATE TABLE,table_name,column_name datatype |identity|NOT NULL|NULL,创建表的,完整语法,如下:,CREATE TABLE,database_name,.,owner, .,table_name,-,表名,( ,-,列的定义,|,column_name,AS,computed_column_expression,-,定义计算列,| PRIMARY KEY | UNIQUE ,-,指定主键,/,唯一键, ,.,n,) ON ,filegroup,| DEFAULT ,-,指定存储表的文件组, TEXTIMAGE_ON ,filegroup,| DEFAULT ,-,指定存储长文本、二进制数据的文件组,(),第二章 数据库和表的创建,1) column_definition,:,列定义,其简化构成为,:=,-,列名、类型, column_name datatype ,-,默认值, DEFAULT constant_expression ,-,列为标识列,| IDENTITY seed,,,increment,-,列为全局标识符列,(),ROWGUIDCOL,-,指定列的约束,(),n,第二章 数据库和表的创建, :=,(), CONSTRAINT,constraint_name, NULL | NOT NULL | PRIMARY KEY | UNIQUE CLUSTERED | NONCLUSTERED WITH FILLFACTOR =,fillfactor,ON ,filegroup,| DEFAULT | FOREIGN KEY REFERENCES,ref_table, (,ref_column,) ON DELETE CASCADE | NO ACTION ON UPDATE CASCADE | NO ACTION NOT FOR REPLICATION | CHECK NOT FOR REPLICATION (,logical_expression,) ,第二章 数据库和表的创建,2),PRIMARY KEY,:,即主键,是通过唯一索引对给定的一列或多列强制实体完整性的约束。对于每个表只能创建一个,PRIMARY KEY,约束。,3),UNIQUE,:,是通过唯一索引为给定的一列或多列提供实体完整性的约束。一个表可以有多个,UNIQUE,约束。,4),ON filegroup | DEFAULT,:指定存储表的文件组。如果指定了,filegroup,,则表将存储在指定的文件组中。数据库中必须存在该文件组。如果指定,DEFAULT,,或者未指定,ON,参数,则表存储在默认文件组中。,第二章 数据库和表的创建,【,实例,】,在当前数据库文件组,Secondary,上创建表,studentInfo,(,studentID,,,Name,,性别,出生时间,专业名,照片)。要求,studentID,非空,且为主键;性别非空,默认值为,0,。,USE testDB,CREATE TABLE studentInfo,( studentID int NOT NULL PRIMARY KEY,Name char(8) NOT NULL,性别,bit NOT NULL DEFAULT(0),出生时间,datetime NOT NULL,专业名,char(24),照片,image NULL ),ON Secondary,GO,第二章 数据库和表的创建,2,)修改表结构,修改表的语法如下:,ALTER TABLE table, ,ALTER COLUMN,column_name,-,修改列, new_data_type ( precision , scale ) COLLATE NULL | NOT NULL ,|,ADD,-,添加列, ,.n ,|, WITH CHECK | WITH NOCHECK ADD,-,添加约束, ,.n ,|,DROP,-,删除列、约束, CONSTRAINT constraint_name | COLUMN column ,.n ,第二章 数据库和表的创建,【,实例,】,在前面实例创建的表的基础上进行表结构的修改:,A.,将字符型(,char),字段“专业名”长度更改为,36,,并且设置该字段为非空;,B.,删除字段“照片”;,C.,添加字段“自传”,设置字段类型为,Unicode,长文本类型(,ntext),,可以为空。,ALTER TABLE studentInfo,ALTER COLUMN,专业名,char(36) NOT NULL,GO,-,更改字段,ALTER TABLE studentInfo,DROP COLUMN,照片,GO,-,删除字段,ALTER TABLE studentInfo,ADD,自传,ntext NULL,GO,-,添加字段,修改前的表结构,修改后的表结构,第二章 数据库和表的创建,TIP:,当表中未有记录时,可以修改表结构;但当表中已经有了记录,建议不要轻易更改表结构,且具有以下特性的字段不能被修改:,具有,text,、,ntext,、,image,或,timestamp,数据类型的列;,计算列;,全局标识列;,复制列;,用于索引的列,用于生成统计的列,主、外键约束的列,CHECK,或,UNIQUE,约束的列,关联有默认值的列,第二章 数据库和表的创建,3,)删除表,删除表的语法如下:,DROP TABLE table_name,【,实例,】,删除前面创建的,studentInfo,表,USE testDB,DROP TABLE studentInfo,GO,第二章 数据库和表的创建,三、浏览,/,操作表数据,同样的道理,浏览,/,操作表数据也有,界面方式,和,命令方式,。,1.,企业管理器中浏览,/,操作表数据(界面方式),启动企业管理器,进入要修改的表对象,鼠标右击弹出菜单,选取,【,打开表,|,返回所有行,】,,表数据浏览,/,操作界面。,直接输入添加新记录,直接修改字段值,点击运行完成数据更新,第二章 数据库和表的创建,2.,通过,T-SQL,语句浏览,/,操作表数据(命令方式),1),插入新记录,基本语法:,INSERT table_name VALUES(constant1,constant2,),较完整语法:,INSERT INTO,table_name,-,表名,|,view_name,-,视图名, (,column_list,) ,-,列列表,VALUES,-,值列表,( DEFAULT | NULL |,expression, ,.,n, ),-,列值形式,| DEFAULT VALUES,-,所有值均取默认值,第二章 数据库和表的创建,2),删除记录,删除满足条件的记录:,DELETE FROM,table_name|view_name,WHERE ,删除所有记录:,TRUNCATE TABLE table_name|view_name,3),修改记录,UPDATA table_name|view_name,SET column_name=expression|DEFAULT|NULL,n,WHERE ,第二章 数据库和表的创建,课堂小结与实训,1.,数据库由,,,,,,,,,等,逻辑对象组成。,2.,每个数据库有,个主数据文件,,个日志文件。,3.,如果数据库中数据量非常大,除了主数据文件外,我们还可以将部分数据存放在,。,4.,使用下列哪种语句可以创建数据库( )。,A. CREATE DATABASE B. CREATE TABLE,C. ALTER DATABASE D. ALTER TABLE,5.,在,SQL SERVER 2019,中创建数据库有多种方法,归纳起来有,,,和,。,6.,在企业管理器中,我们能利用,窗体来进行数据表的创建与修改;,7.,举例说明,SQL Server2000,提供哪些浏览和操纵数据表中数据的方式?,8. T-SQL,语言提供:,语句向表中插入数据,,更新表中数据,,语句删除表中数据,,语句查询表中数据。,第二章 数据库和表的创建,课后思考题,1.,查阅联机文档,自学,DROP,语句,思考,DROP,语句与,DELETE,语句的差别。,2.,查阅资料或联机文档,了解当一个数据库拥有多个事务日志时,多个事务日志文件是怎样协同工作的。,3.,查阅,SQL SERVER 2019,联机文档,了解基本的数据库系统表的作用。,4.,简述当我们的,PC,机上挂有多张硬盘时,可以采取何种办法来优化该,PC,机上,SQL SERVER 2019,数据库的服务性能?,
展开阅读全文