版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
DM
数据库原理及应用项目4创建与维护学生信息管理数据表目录01设计表结构02创建表03维护表情景导入在学会数据库的创建与维护操作之后,善于思考的王宁又有了新的疑问,数据库是怎样存储数据的呢?李老师告诉王宁,在关系数据库中,数据表(简称表)是存储数据的基本单位,一个数据库可以包含多个表。在信息管理中,学会数据库和数据表的基本操作,是实现轻松管理数据的基础。那么,怎么创建一个表?表的结构怎么确定?怎么输入记录?怎么对数据记录进行维护?本项目将带领王宁一起学习表的创建与维护操作。设计表结构任务4-1【任务提出】在达梦数据库中,数据是存储在表中的。那么,怎样才能设计出规范、合理的表结构呢?王宁要从设计学生信息管理数据库的各个表的结构开始学习。(一)理解表的概念表是数据库中最重要、最基本的操作对象之一,是存储数据的基本单位。如果把数据库比喻成柜子,那么表就像柜子中各种规格的抽屉。一个表就是一个关系,表实质上就是行、列的集合,每一行代表一条记录,每一列代表记录的一个字段。每个表由若干行组成,表的第一行为各列标题,其余行都是数据。在表中,行的顺序可以是任意的。不同的表有不同的名称。(一)理解表的概念DM数据库的表可以分为两类,分别为数据库内部表和外部表:数据库内部表由数据库管理系统自行组织管理。内部表又分为系统表和用户表,系统表是指数据库自动创建和维护的表。用户表是指用户自己创建并使用的表,内部表包括:数据库基表、HUGE表和水平分区表。如无明确说明均指数据库基表。外部表不存在于数据库中,其数据存储在操作系统中,是操作系统文件,我们可以把一个操作系统文件当成一个只读的数据库表,就像这些数据存储在一个普通数据库表中一样来进行访问。建立外部表的时候,不会产生段、页簇等存储结构,在数据库中也不能对外部表的内容进行修改,不能对外部表建立主键、索引和外键。(一)理解表的概念完整的表名由模式名和表名两部分组成,格式为:[<模式名>.]<表名>说明:<模式名>说明表在哪个模式上创建,默认为当前模式;<表名>应遵守DM模式对象的命名规则。DM对命名数据库和表有以下规则:名称以字母或汉字开头,可以包含字母a~z,汉字、数字0~9,还可以包含符号$、#、_。名称最长为128字节。1.
表的命名(一)理解表的概念表的存在方式如同电子表格的工作表一样拥有列(Column)和行(Row)。用数据库的专业术语来表示,这些列即字段(Field),每个字段分别存储不同性质的数据,而每一行中各个字段的数据构成一条数据记录(Record)。结构(Structure)和数据记录是表的两大组成部分。在表能够存放数据记录之前,必须先定义结构,而定义表的结构即决定表拥有哪些字段及这些字段的特性。所谓“字段特性”,是指这些字段的名称、数据类型、精度、标度、是否允许空值、默认值、主键等。只有彻底了解字段特性的各个定义项,才能创建功能完善和具有专业水准的表。2.
表的结构(一)理解表的概念表可以拥有多个字段,各个字段分别用来存储不同性质的数据,一张基表中最多可以包含2048个字段,为了加以识别,每个字段必须有一个名称。3.
字段名字段名必须符合命名规则:字段名最长可达128个字符。字段名可包含中文、英文字母、数字、_、#、$、@。在同一个表中,各个字段的名称绝对不能重复。(一)理解表的概念4.
字段精度和标度字段的精度是指字段所能容纳的最大数据量。对于不同的数据类型,精度对字段的含义也不同,说明如下:字符串类型。精度代表字段所能容纳字符的数目,它会限制用户所能输入的文本长度。整数类型。精度代表该数据类型指定的显示宽度。显示宽度是指能够显示的最大数据的长度。在不指定宽度的情况下,每个整数类型都有默认的显示宽度。二进制类型。精度代表字段所能容纳的最大字节数。浮点数类型和定点数类型。精度代表数据的总长度,包括小数点左侧的整数部分和小数点右侧的小数部分,精度范围是1~38,而标度是指数字中小数点右侧的位数,如果指定的小数位数超过指定标度,超出标度的位数将会四舍五入省去。例如,数字12345.678的精度是8,标度是3。(一)理解表的概念4.
字段精度和标度通常用下面的格式来表示数据类型及其采用的精度和标度,其中,n代表精度,s代表标度。binary(n)→binary(10)→精度为10的binary类型。char(n)→char(12)→精度为12的char类型。decimal(n[,s])→decimal(8,3)→精度为8,标度为3的decimal类型。(二)了解DM_SQL数据类型确定表中每列的数据类型是设计表的重要步骤。列的数据类型就是该列所存放数据的值的类型。DM_SQL的数据类型非常丰富,常用的数据类型如表4.1所示。(三)掌握列的其他属性1.
设置默认值当向表中插入数据时,如果用户没有明确给出某列的值,DM就自动指定该列使用默认值。设置默认值是实现数据完整性的方法之一。当向DM的表中加入新行时,可能希望给行一个唯一而又容易确定的ID,可以通过为表的主键添加IDENTITY关键字来实现。该标识字段是唯一标识表中每条记录的特殊字段,初值默认为1,当一个新记录添加到表中时,这个字段就被自动赋予一个新值,默认情况下递增1。2.
设置表的属性值自动增加(三)掌握列的其他属性3.
设置NULL与NOTNULL在创建表的结构时,列的值可以允许为空值。NULL(空值,表示该列可以不指定具体的值)意味着此值是未知的或不可用的,向表中填充行时不必给出该列的具体值。NOTNULL是指不允许为空值,该列必须输入数据。注意,NULL不同于零、空白或长度为零的字符串。【任务实施】随着学习的深入,王宁掌握了表结构的设计方法,成功确定了学生信息管理数据库中各个表的结构,如表4.2~表4.9所示。创建表任务4-2【任务提出】确定好每个表的表结构后,王宁需要动手创建表。本任务将带领王宁从创建student表、course表、sc表开始,分别使用DM管理工具和DM_SQL语句创建表。(一)使用DM管理工具Manager创建表如果要在所属模式中创建新表,需要有CREATETABLE数据库权限。要在其他用户的模式中创建新表,则需要有CREATEANYTABLE数据库权限。创建表时,应当为表指定一个表空间,否则,表将在MAIN中创建。(一)使用DM管理工具Manager创建表使用DM管理工具创建表的步骤如下(以创建STUDENT表为例)。启动DM管理工具Manager,右击【LOCALHOST】--【连接】--输入连接数据库服务器的主机名、端口号、用户名和密码--【确定】按钮,建立与数据库的连接。在【对象导航】窗格中展开【LOCALHOST】|【GRADEM】|【表】节点,右击--【新建表】,如图4.2所示。在打开的新建表窗口中输入表名、列名,选择该列的数据类型(数据类型也可直接输入),输入字段的精度、标度(若字段需要),并设置是否允许为空值。设计表窗口的下半部分是列属性,包括是否使用默认值、外键约束等。逐个定义表中的列,设计完整的表结构。设置主键约束。选中要作为主键的列,单击选中【主键】对应的复选框即可完成主键设置,如图4.3所示。定义好所有的列后,单击【确定】按钮即可保存,完成表的创建。图4.2
选择【新建表】命令图4.3
新建表窗口(一)使用DM管理工具Manager创建表在定义表结构时,可以灵活运用以下操作技巧。添加新字段。当输入完一个字段的所有信息后,单击【
】按钮,一个空白列就会被添加到最后。此时,可开始定义这个新字段的字段名、数据类型及其他属性。删除现有的字段。若想删除某个字段,则可选中该字段,单击【
】按钮,可删除该字段。添加约束。如果想为该表添加其它约束,可在图4.3所示的【新建表窗口】中选择【约束】选择项,可以选择添加主键约束、外键约束、检查约束、唯一约束。(二)使用CREATETABLE语句创建表(1)尖括号<>中的内容为必选项。例如,<表名>表示此处必须填写一个表名。(2)方括号[]中的内容为任选项。例如,[UNIQUE]表示UNIQUE可写可不写。(3)[,…]的意思是“等等”,即前面的项可以重复。(4)花括号{}与竖线|表明此处为选择项,在所列出的各项中仅需选择一项。
例如,{A|B|C|D}表示从A、B、C、D中选取其一。(5)SQL中的数据项(包括列、表和视图)的分隔符为“,”,其字符串常量的定界符用单引号“'”表示。1.DM_SQL语句中语法格式的约定符号(二)使用CREATETABLE语句创建表(1)DM_SQL语句可写成一行或多行,习惯上每个子句占用一行。(2)关键字不能在行与行之间分开,并且很少采用缩写形式。(3)DM_SQL语句的结束符为分号“;”,分号必须放在语句中最后一个子句的后面,但可以不在同一行。2.DM_SQL语句书写准则(二)使用CREATETABLE语句创建表在DM_SQL中,CREATETABLE语句的语法格式如下。CREATETABLE<表名>(<列名1><数据类型1><列级完整性约束1>[<列名2><数据类型2><列级完整性约束2>][,...][,<表级完整性约束1>][,<表级完整性约束2>][,...]);3.使用CREATETABLE语句创建表(二)使用CREATETABLE语句创建表列级完整性约束条件主要有如下几种:
①
DEFAULT<列缺省值表达式>:指明该列的默认值。
②
IDENTITY[(<种子>,<增量>)]:为该列设置自增值。③
PRIMARYKEY:指定该字段为主键。④
NULL/NOTNULL:指定该字段允许为空值/不允许为空值,默认为NULL。⑤
UNIQUE:指定字段取值唯一,即每条记录指定字段的值不能重复。⑥
CHECK(条件表达式):用于检验输入值,拒绝接受不满足条件的值。3.使用CREATETABLE语句创建表(二)使用CREATETABLE语句创建表表级完整性约束条件主要有如下几种:①
PRIMARYKEY:用于定义表级主键约束,语法格式如下。[CONSTRAINT<约束名>]PRIMARYKEY[CLUSTERED](字段名1,字段名2,…,字段名n)②
FOREIGNKEY:用于设置参照完整性,即指定某字段为外键,语法格式如下。[CONSTRAINT<约束名>]FOREIGNKEY<外键>REFERENCES<被参照表(主键)>③
UNIQUE既可用于列级完整性约束,也可用于表级完整性约束,语法格式如下。[CONSTRAINT<约束名>]UNIQUE(<字段名>)3.使用CREATETABLE语句创建表【注意】当使用多个字段作为表的主键时,使用上述子句设置主键约束。【任务实施】王宁通过学习,最终给出的student表、course表和sc表的结构定义语句如下。SetSCHEMAgradem;CREATETABLEstudent--创建STUDENT表
(snochar(10)PRIMARYKEY,snamevarchar(8),
ssexchar(2)
DEFAULT'男',sbirthday
dateDEFAULT'2002-01-01',sid
varchar(18), saddressvarchar(30),spostcodechar(6), sphonechar(18)
DEFAULT'不详',spstatusvarchar(20), sfloorchar(10), sroomnochar(5), sbednochar(2), tuixueBITNOTNULLDEFAULT0,
xiuxueBITNOTNULLDEFAULT0,
smemotext, classnochar(8)
);CREATETABLEcourse--创建COURSE表(cnochar(3)NOTNULL,cnamevarchar(20)NOTNULL,ctermtinyintNOTNULL, CONSTRAINTC1PRIMARYKEY(cno,cterm));CREATETABLEsc--创建SC表
(snochar(10)NOTNULL,cnochar(3)NOTNULL,degreedecimal(4,1), ctermtinyintNOTNULL,CONSTRAINTA1PRIMARYKEY(sno,cno,cterm), CONSTRAINTA2CHECK(degree>=0anddegree<=100), CONSTRAINTA3
FOREIGNKEY(sno)REFERENCES
student(sno),CONSTRAINTA4
FOREIGNKEY(cno,cterm)REFERENCES
course(cno,cterm));任务4-3维护表【任务提出】王宁想对STUDENT表的表结构做修改,他想把SBEDNO字段删除。应该用到哪些SQL语句去实现呢?王宁带着这个问题走进了本任务的学习中。(一)查看表结构
使用Manager工具查看STUDENT表的结构,操作步骤如下:(1)启动DM管理工具Manager,并建立与数据库的连接。(2)在【对象导航】窗格中依次展开【LOCALHOST】|【模式】|【GRADEM】|【表】节点,选中要查看结构的表【student】,右键单击,从弹出的快捷菜单中选择【修改(M)…】选项,如图4.4所示。此时,会打开【修改表】对话框,如图4.5所示,用户可以在该窗口中查看STUDENT表的结构。1.使用DM管理工具Manager查看表结构图4.4【修改】选项图4.5【修改表】对话框(一)查看表结构
在DM中,可以调用SP_TABLEDEF系统过程查看表的字段信息,包括字段名、字段数据类型、是否为主键、是否有默认值等,语法格式如下。CALLSP_TABLEDEF(<模式名>,<表名>);2.通过SP_TABLEDEF系统过程查看表结构(一)查看表结构2.通过SP_TABLEDEF系统过程查看表结构【例4.1】用SP_TABLEDEF系统过程查看STUDENT表的表结构。CALLSP_TABLEDEF('GRADEM','STUDENT');执行结果如图4.6所示:图4.6
student表的表结构(二)修改表结构用户在建立应用系统的过程中可以根据需要调整数据表的结构,包括修改表的名称、字段名称、增加字段、删除字段、修改字段类型、增加/删除表级约束、设置列缺省值等。可以通过以下两种方法实现表结构的修改。(二)修改表结构(1)修改表名。选中要修改的表,用鼠标右键单击要修改的表,在弹出的快捷菜单中选择【重命名】选项,再输入新表名。(2)修改字段数据类型或字段名、增加或删除字段、修改字段的排列位置。用鼠标右键单击要修改的表,在弹出的快捷菜单中选择【修改(M)…】选项,打开设计表窗口,和新建表一样,可以向表中加入列、从表中删除列或修改列的属性,修改完毕单击【保存】按钮即可。(3)删除表的完整性约束条件。如果要删除主键或外键约束,选中要修改的表,展开【键】列表,右键单击要删除的主键或外键,选择【删除】选项,在弹出的【删除对象】对话框中,选中该对象,点击【确定】按钮即可。如果要删除检验约束或唯一约束,选中要修改的表,展开【约束】列表,右键单击要删除的检验约束或唯一约束,选择【删除】选项,在弹出的【删除对象】对话框中,选中该对象,点击【确定】按钮即可。1.使用DM管理工具Manager修改表结构(二)修改表结构ALTERTABLE<表名>MODIFY<列定义>|ADD[COLUMN]<列定义>|(<列定义>{,<列定义>})|DROP[COLUMN]<列名>|CONSTRAINT<约束名>[RESTRICT|CASCADE]ADD[CONSTRAINT[<约束名>]]<表级约束子句>[<CHECK选项>][<失效生效选项>]|RENAMECONSTRAINT<约束名>TO<约束名>|ALTER[COLUMN]<列名>SETDEFAULT<列缺省值表达式>|DROPDEFAULT|RENAMETO<列名>|SET<NULL|NOTNULL>|[NOT]VISIBLE|RENAMETO<表名>|MODIFYCONSTRAINT<约束名>TO<表级约束子句>[<CHECK选项>][RESTRICT|CASCADE]|MODIFYCONSTRAINT<约束名>ENABLE[<CHECK选项>]|DISABLE[RESTRICT|CASCADE]|DROPIDENTITY|AUTO_INCREMENT|ADD[COLUMN]<列名><自增列子句>|AUTO_INCREMENT[=]<起始边界值>|DROPPRIMARYKEY[RESTRICT|CASCADE]<CHECK选项>::=[NOT]CHECK;2.使用ALTERTABLE语句修改表结构(二)修改表结构各参数的功能说明如下。(1)<表名>指明被操作的基表的名称;(2)<列名>指明修改、增加或被删除列的名称;(3)<数据类型>指明修改或新增列的数据类型;(4)<列缺省值>指明新增/修改列的缺省值,其数据类型与新增/修改列的数据类型一致;(5)<CHECK选项>设置在添加外键约束的时候,是否对表中的数据进行约束检查;在添加约束、修改约束和使约束生效时,不指明CHECK属性,默认CHECK;(6)<表空间名>指明被操作的基表移动的目标表空间;
(7)AUTO_INCREMENT[=]<起始边界值>指定的<起始边界值>必须大于当前系统中的<起始边界值>。如果小于,则修改无效。2.使用ALTERTABLE语句修改表结构(二)修改表结构【例4.2】
在GRADEM模式中的STUDENT表中添加一个数据类型为VARCHAR,长度为12的字段MINZU,表示学生的民族。ALTERTABLEGRADEM.STUDENTADDMINZUVARCHAR(12);2.使用ALTERTABLE语句修改表结构【例4.3】将GRADEM模式中的SC表中degree字段的数据类型改为smallint。
ALTERTABLEGRADEM.scMODIFY
degreesmallint;【提示】不论表中原来是否已有数据,新增加的列的值一律为空值。(二)修改表结构【例4.4】
将GRADEM模式中的student表中的sbirthday字段改名为sbirth。ALTERTABLEGRADEM.studentALTERsbirthdayRENAMETOsbirth;2.使用ALTERTABLE语句修改表结构【例4.5】
将GRADEM模式中的sc表的表名改为score。ALTERTABLEGRADEM.scRENAMETOscore;【提示】如果在该列上定义了约束,则在修改时会进行限制,如果确实要修改该列,就必须先删除该列上的约束,再修改。【例4.6】
删除GRADEM模式中的sc表的外键约束A4。ALTERTABLEGRADEM.scDROPCONSTRAINTA4;(三)在表中添加、快速查看、修改和删除数据记录在表中添加数据记录时,插入不同数据类型数据记录的格式不同,因此应严格遵守它们各自的要求。添加的数据记录按输入顺序保存,条数不限,只受存储空间的限制。启动DM管理工具Manager,并建立与数据库的连接。在【对象导航】窗格中依次展开【LOCALHOST】|【模式】|【GRADEM】|【表】节点,右键单击要操作的表(如STUDENT表),在弹出的快捷菜单中选择【浏览数据】选项,如图4.7所示,打开该表的数据对话框,如图4.8所示。在数据窗口中,可以添加多行新数据记录,还可以修改、删除表中数据记录。使用该窗口的快捷菜单或下方的操作栏,可以实现表中各行数据记录的跳转、剪切、复制和粘贴等操作。1.向表中添加数据记录图4.7【浏览数据】选项图4.8STUDENT表数据对话框(三)在表中添加、快速查看、修改和删除数据记录用户可以利用Manager工具快速查看数据记录,也可以根据需要修改和删除数据记录。(1)快速查看数据记录。在快速查看数据记录方面,除了可以利用方向键和翻页键来浏览数据记录外,还可以利用窗口下方的导航按钮,快速移到指定的页数进行数据浏览。(2)修改数据记录。修改某字段的值,只需将鼠标指针移到该字段并单击,然后修改值即可。(3)删除数据记录。删除某条数据记录,可选中该条数据记录,然后按【Delete】键,或用鼠标右键单击,在弹出的快捷菜单中选择【删除】选项。不管修改数据记录,还是删除数据记录,操作完成后关闭该选项卡,在弹出来的【保存资源】对话框中单击“是”按钮,即可完成相应的操作,如图4.9所示。2.快速查看、修改和删除数据记录图4.9【保存资源】对话框(四)复制表(1)用鼠标右键单击要复制的表,在弹出的快捷菜单中选择【复制(Y)】选项,将弹出【对象复制】对话框,如图4.11所示,在该对话框中选择复制方式,此处选择【实例内复制】,并单击【下一步】按钮,继续执行复制操作。1.使用DM管理工具Manager复制表(2)目的对象设置,用以确定复制后的表属于哪个模式,以及复制后的表名,此处我们选择GRADEM模式,目的对象名选择默认对象名STUDENT_COPY,如图4.12所示,单击【下一步】按钮,继续执行复制操作。图4.11复制方式设置图4.12目的对象设置(四)复制表(3)执行语句调整。执行创建表的DM_SQL语句,如图4.13所示,单击【下一步】按钮,继续执行复制操作。1.使用DM管理工具Manager复制表(4)执行复制操作。此时Manager管理工具等待执行复制操作,如图4.14所示,单击【复制】按钮,继续执行复制操作,复制完成,可看到【状态】由【等待】变为【成功】,如图4.15所示。此时,STUDENT表的复制操作全部完成。图4.13执行语句调整图4.14等待执行复制操作图4.15执行复制操作完成(四)复制表在DM_SQL中,可以使用SQL语句将表结构及数据复制到新表中,语法格式如下。CREATETABLE新表名ASSELECT*FROM旧表名;2.使用DM_SQL语句复制表【例4.7】将student表复制到studbak表中,SQL语句如下。
CREATETALBEstudbakASSELECT*FROMstudent;如果只将表结构复制到新表,则可以使用如下SQL语句。
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026年南开大学滨海学院单招职业适应性测试题库带答案详解
- 2026年德州科技职业学院单招综合素质考试题库及参考答案详解一套
- 2026年山西经贸职业学院单招职业技能测试题库带答案详解
- 2026年江苏商贸职业学院单招职业技能考试题库附答案详解
- 2026年四川工业科技学院单招职业适应性测试题库含答案详解
- 2026年濮阳职业技术学院单招职业倾向性测试题库附答案详解
- 2026年平顶山文化艺术职业学院单招职业适应性测试题库带答案详解
- 2026年兰州现代职业学院单招职业技能考试题库含答案详解
- 2026年甘肃建筑职业技术学院单招职业适应性测试题库及答案详解一套
- 2026年湖南大众传媒职业技术学院单招职业技能测试题库及参考答案详解1套
- 2025年甘肃省张掖市培黎职业学院招聘非事业编制工作人员14人(公共基础知识)测试题附答案解析
- 机关单位绩效考核系统建设方案
- 借用公司签合同协议
- 外耳道湿疹的护理
- 鼻炎中医讲课课件
- 孔隙率测定方法
- 2025 初中中国历史一二九运动的爆发课件
- 技术开发文档编写与归档规范
- 2025年国家开放大学《数据分析与统计》期末考试备考题库及答案解析
- 《算法设计与分析》期末考试试卷及答案
- 2025年高考真题-化学(四川卷) 含答案
评论
0/150
提交评论