第03讲chp3-表的创建+数据+约束_第1页
第03讲chp3-表的创建+数据+约束_第2页
第03讲chp3-表的创建+数据+约束_第3页
第03讲chp3-表的创建+数据+约束_第4页
第03讲chp3-表的创建+数据+约束_第5页
已阅读5页,还剩82页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

2023/7/271第3章表的创建

(参见第五版教材P82)22023/7/27学习要点数据类型

1表结构的创建、修改和删除2向表中插入、修改和删除数据3约束

4实现数据完整性532023/7/273.1表的概念数据库中包含一个或多个表。表是数据的集合,是用来存储数据和操作数据的逻辑结构。数据在表中是按照行和列的格式来组织排列的,每一行代表一条唯一的记录,每一列代表记录的一个属性。例如,一个包含销售员基本信息的数据表,表中每一行代表一名销售员,每一列分别代表该销售员的信息,如编号、姓名、性别等。

42023/7/273.2数据类型在SQLServer的数据表中,列的类型既可以是系统提供的数据类型,也可以是用户自定义的数据类型。系统数据类型1.二进制数据类型2.整数数据类型3.浮点数据类型4.精确小数数据类型5.货币数据类型6.日期/时间数据类型7.字符数据类型8.unicode数据类型9.特殊数据类型52023/7/271.二进制数据类型binary[n]:固定长度为n个字节的二进制数。varbinary[n]:n个字节可变长的二进制数。image:可变长的二进制数,用于存储超过8KB的数据。如:word文档、excel图表以及图像等数据。最大长度231-1个字符62023/7/272.整数数据类型bit:数据的值只能是0或1。int:存储空间占4个字节。bigint:存储空间占8个字节。smallint:存储空间占2个字节。tinyint:存储空间占1个字节。

72023/7/273.浮点数据类型浮点数据类型用于存储范围较大的实数。容易发生舍入误差,货币运算一般不用它。float:存储空间占8个字节。real:存储空间占4个字节。82023/7/274.精确小数数据类型decimal(p,s):取值范围-1038+1~1038-1。可以指定总位数p和小数位数s。numeric(p,s):表示范围最多可达38位。可以指定总位数p和小数位数s。例:decimal(6,2)表示最多可存放6位数字,小数点后有2位。区别:numeric类型的可以带IDENTITY关键字。92023/7/275.货币数据类型money:占8个字节。精度为19,小数4位。smallmoney:占4个字节。精度为10,小数4位。102023/7/276.日期/时间数据类型Datetime:用于存储日期和时间。占8个字节。Smalldatetime:日期时间范围较小。占4字节。112023/7/277.字符数据类型char(n):存放固定长度的字符,每个字符占一个字节,n值不能超过8000。varchar(n):存放可变长度的字符,n值不能超过8000。text:存放数量庞大的变长字符,最大长度可达231-1个字符。122023/7/278.unicode数据类型nchar(n):存放固定长度的Unicode字符,n值不能超过4000。nvarchar(n):存放可变长度的Unicode字符,n值不能超过4000。ntext:存放可多达230-1个可变长Unicode字符。132023/7/279.特殊数据类型timestamp:时间戳,是由数据库自动生成的不重复的二进制数字。uniqueidentifier:全局唯一标识符。在表的多个副本中唯一地标识行table:只能用于定义局部变量或函数返回值。xml:存储xml数据。142023/7/273.2数据类型用户自定义数据类型用户自定义数据类型是基于SQLServer系统提供的数据类型。当多个表的列中要存储相同类型的数据,且想确保这些列具有完全相同的数据类型、长度和是否为空属性时,可以使用用户自定义数据类型。创建用户自定义数据类型时必须提供名称、新数据类型所依据的系统数据类型、数据类型是否允许空值。使用SQLServerManagementStudio152023/7/273.2数据类型例3.1为数据库“sales”定义一个基于varchar型的数据类型“telephone_code”(长度为15,允许为空值),用于说明表中电话号码列的数据类型。操作步骤如下:1)启动SQLServerManagementStudio,在“对象资源管理器”中,依次展开“数据库”节点、“sales数据库”节点、“可编程性”节点。2)右键单击“类型”,从弹出的快捷菜单中选择“新建”菜单下的“用户定义数据类型”命令。在“名称”文本框中输入类型名称“telephone_code”;在“数据类型”下拉列表框中选择“varchar”数据类型;在“长度”数值框中输入“15”;选中“允许空值”复选框。162023/7/273.2数据类型使用Transact-SQL语句创建用户自定义数据类型

使用CREATETYPE创建用户自定义数据类型,格式为:CREATETYPEtype_name

{FROMsystem_type[NULL|NOTNULL]}其中:type_name:是用户自定义数据类型的名字。system_type:是用户自定义数据类型所基于的系统数据类型名,如varchar、int等。NULL|NOTNULL:是否可以为空值。如果缺省该项,则默认为NULL。例3.2为sales数据库创建一个用户自定义数据类型zip,定长字符型,长度为15,不允许为空。CREATETYPEzipFROMchar(15)NOTNULL172023/7/273.2数据类型使用DROPTYPE可以删除用户自定义的数据类型。其语法格式为:DROPTYPEtype_name

其中,参数type_name表示已经定义好的用户自定义的数据类型例3.3删除在例3.1中定义的数据类型telephone_code。DROPTYPEtelephone_code注意:只能删除已经定义但未被使用的用户自定义数据类型,正在被表或其他数据库对象使用的用户自定义数据类型不能被删除。182023/7/273.3表结构的创建、修改和删除表结构的创建使用SQLServerManagementStudio创建表结构

启动SQLServerManagermentStudio,在“对象资源管理器”窗口中,依次展开“数据库”节点、“sales”数据库节点。右键单击“表”,从弹出的快捷菜单中选择“新建表”命令,系统弹出表设计器窗口,在该窗口中进行表结构的创建。最后,需保存表格。192023/7/273.3表结构的创建、修改和删除使用Transact-SQL语句创建表格的语法格式CREATETABLE[database_name.[schema_name].|schema_name.]table_name(column_name1data_type[DEFAULTconstant_expression][IDENTITY(SEED,INCREMENT)][NULL|NOTNULL][,…n])[ON{filegroup|DEFAULT}]202023/7/273.3表结构的创建、修改和删除例3.4为sales数据库创建一个销售人员表Seller,它包含销售员编号(SaleID)、姓名(SaleName)、性别(Gender)、出生日期(Birthady)、雇用日期(HireDate)、地址(Address)、电话(Telephone)、备注(Note),其中SaleID、SaleName这两列不允许为空。212023/7/273.3表结构的创建、修改和删除CREATETABLESeller(SaleIDchar(3)NOTNULL,SaleNamechar(8)NOTNULL,Genderchar(2),Birthdaydatetime,HireDatedatetime,Addresschar(60),Telephonechar(13),Notechar(200))222023/7/273.3表结构的创建、修改和删除例3.5为sales数据库创建订单表Orders,包括OrderID、CustomerID、SaleID和OrderDate字段,其中OrderID为标识列,起始值为10248,增量为1;CustomerID和SaleID字段不允许为空值;OrderDate字段的默认值为当前日期。CREATETABLEOrders(OrderIDintIDENTITY(10248,1),CustomerIDchar(3)NOTNULL,SaleIDchar(3)NOTNULL,OrderDatedatetimeDEFAULTgetdate())232023/7/273.3表结构的创建、修改和删除例3.6为sales数据库在文件组USER1上创建Category种类表CREATETABLECategory(CategoryIDintNOTNULL,CategoryNamenvarchar(15),Descriptionnvarchar(200))ONUSER1242023/7/273.3表结构的创建、修改和删除表结构的修改

修改的操作包括:增加或删除列、修改列的数据类型、数据长度等。使用SQLServerManagermentStudio修改表结构:

右键单击要修改结构的表Seller,选择“修改”命令,在表设计器中对表的结构进行修改。使用Transact-SQL语句修改表结构252023/7/273.3表结构的创建、修改和删除ALTERTABLEtable_name{ADDcolumn_namedate_type[DEFAULTcontant_expression][IDENTITY(SEED,INCREMENT)][NULL|NOTNULL][,…n]|DROPCOLUMNcolumn_name|ALTERCOLUMNcolumn_namenew_datetype[NULL|NOTNULL]}262023/7/273.3表结构的创建、修改和删除例3.7sales数据库中的Customer表包含CustomerID、ConpanyName和ConnectName三个字段,现为该表添加地址(Address)、邮政编码(ZipCode)和电话号码(Telephone)字段。272023/7/27ALTERTABLECustomerADDAddresschar(40),ZipCodechar(6),Telephonevarchar(15)NOTNULL282023/7/27例3.8将表Seller中的Sex列删除ALTERTABLESellerDROPCOLUMNSex例3.9将Seller表中的Address字段的长度改为30,且不能为空ALTERTABLESellerALTERCOLUMNAddressvarchar(30)NOTNULL292023/7/273.3表结构的创建、修改和删除删除表使用SQLServerManagermentStudio删除表的步骤:1)打开SQLServerManagermentStudio,在“对象资源管理器”窗口中,依次展开“数据库”节点、“sales”数据库节点、“表”节点。2)选择要删除的表,单击鼠标右键,从弹出的快捷菜单中选择“删除”命令。3)系统会打开“删除对象”对话框,在该对话框中列出了将被删除的表。单击“确定”按钮即可完成指定表的删除操作。302023/7/273.3表结构的创建、修改和删除使用DROPTABLE命令删除表格,语法格式:

DROPTABLEtable_name1[,…n]例3.10将Customer表从sales数据库中删除。DROPTABLECustomer312023/7/273.4向表中插入、修改和删除数据向表中插入数据(参见第五版教材P115)

使用的Transact-SQL语句完成插入操作,语法格式:

INSERT[INTO]table_name[(column_name[,…n])]

VALUES(expression|NULL|DEFAULT[,…n])

其中:table_name:要插入数据的表名。column_name:要插入数据的列名。expression:与column_name相对应的字段的值,字符型和日期型值插入时要加单引号。322023/7/273.4向表中插入、修改和删除数据例3.11向Category表中添加数据。 INSERTINTOCategory(CategoryID,CategoryName,Description)VALUES(1,'饮料','软饮料、咖啡、茶、啤酒和淡啤酒')例3.12向Seller表中插入一行数据,其中Sex字段使用默认值为‘男’,HireDate等字段均取空值。332023/7/273.4向表中插入、修改和删除数据INSERTINTOSeller(SaleID,SaleName,Sex,Birthday,HireDate,Address,Telephone,Notes)VALUES('s11','赵宇飞',DEFAULT,'1974-07-25',NULL,NULL,NULL,NULL)或INSERTINTOSeller(SaleID,SaleName,Birthday)VALUES('s11','赵宇飞','1974-07-25')342023/7/273.4向表中插入、修改和删除数据注意:(1)在插入数据时,对允许为空的列可使用NULL插入空值;对具有默认值的列可使用DEFAULT插入默认值。(2)当向表中所有列都插入新数据时,可以省略列名表,但必须保证VALUES后的各数据项位置同表定义时的顺序一致,否则系统会报错。352023/7/273.4向表中插入、修改和删除数据例3.13在例3.11和例3.12中,由于是对表中所有列插入数据,则可省略列名表,写成如下形式:INSERTINTOCategoryVALUES(1,'饮料','软饮料、咖啡、茶、啤酒和淡啤酒')INSERTINTOSellerVALUES('s11','赵宇飞',DEFAULT,'1974-07-25',

NULL,NULL,NULL,NULL)362023/7/273.4向表中插入、修改和删除数据例3.14向OrderDetail表中插入一行数据。INSERTINTOOrderDetailVALUES('10254','P01003')正确形式为:INSERTINTOOrderDetailVALUES('10254','P01003',NULL)INSERTINTOOrderDetail(OrderID,ProductID)

VALUES('10254','P01003')在后一种形式中,系统将Quantity字段的值自动设为空值。错误372023/7/273.4向表中插入、修改和删除数据例3.15向Orders表中插入一行数据。INSERTINTOOrders(CustomerID,SaleID)Values('c01','s11')注意:具有IDENTITY属性的列,其值由系统给出,用户不必向表中插入数据。382023/7/273.4向表中插入、修改和删除数据使用INSERTINTO语句一次只能插入一行数据,若想一次插入多行数据,则需在INSERTINTO语句中加入查询子句:INSERT[INTO]dest_table_name[(column_name[,…n])]SELECTcolumn_name[,…n]FROMsource_table_name[WHEREsearch_conditions]392023/7/273.4向表中插入、修改和删除数据例3.16创建employee表,包含三个字段EmployeeID、EmployeeName和Address。将Seller表中的女销售人员的数据插入到employee表中。CREATETABLEEmployee(EmployeeIDchar(3),EmployeeNamechar(8),Addresschar(60))GOINSERTINTOEmployeeSELECTSaleID,SaleName,AddressFROMSellerWHEREGender='女'402023/7/273.4向表中插入、修改和删除数据修改表中数据使用UPDATE语句来实现。其语法格式为:UPDATEtable_nameSETcolumn_name=expression[,…n][WHEREsearch_conditions]table_name:要更新数据的表名。column_name:要更新数据的列名。expression:更新后的数据值。search_conditions:更新条件,只对表中满足该条件的记录进行更新。412023/7/273.4向表中插入、修改和删除数据例3.17将Product表中‘啤酒’的价格改为4元。UPDATEProductSETPrice=4WHEREProductName='啤酒'422023/7/273.4向表中插入、修改和删除数据例3.18将Seller表中赵宇飞的地址改为‘东直门外大街108号’,电话改为‘(010)60486658’。UPDATESellerSETAddress='东直门外大街108号',Telephone='(010)60486658'WHERESaleID='s11'432023/7/273.4向表中插入、修改和删除数据例3.19将Product表中CategoryID为2的所有产品的价格下调10%UPDATEProductSETPrice=Price*(1-0.1)WHERECategoryID=2442023/7/273.4向表中插入、修改和删除数据删除表中数据

删除表中数据使用的是DELETE语句,其语法格式为:

DELETE[FROM]table_name

[WHEREsearch_conditions]

功能:删除表中符合search_conditions的数据;缺省WHERE子句时,表示删除该表中的所有数据。452023/7/273.4向表中插入、修改和删除数据例3.20将例3.12插入的数据从Seller表中删除。DELETEFROMSellerWHERESaleID=’s11’462023/7/273.4向表中插入、修改和删除数据在SQLServerManagementStudio插入、修改和删除数据

选中要进行插入、更新或删除数据操作的表,单击鼠标右键,在弹出的快捷菜单选择“打开表”命令,出现表数据窗口。在该窗口中完后数据的插入、修改和删除。472023/7/273.5约束约束定义了必须遵循的用于维护数据一致性和正确性的规则,是强制实现数据完整性的主要途径。(完整性

参见第五版教材P158)约束有5种类型:主键约束、唯一约束、检查约束、默认约束、外键约束(参照约束)。约束可以在两个层次上实施:(1)列级:用户定义的约束只对表中的一列起作用;(2)表级:用户定义的约束对表中的多列起作用。482023/7/273.5约束约束的创建、修改和删除约束可以用Transact-SQL的CREATETABLE语句或ALTERTABLE语句来创建。(1)使用CREATETABLE语句创建约束创建表时定义约束,约束是表格定义的一部分。语法格式:CREATETABLEtable_name(column_namedata_type[[CONSTRAINTconstraint_name]constraint_type][,…n])492023/7/273.5约束(2)使用ALTERTABLE语句创建约束在已有的表上创建、修改约束。语法格式为:ALTERTABLEtable_name[WITHCHECK|WITHNOCHECK]ADD[CONSTRAINTconstraint_name]constraint_typeWITHCHECK|WITHNOCHECK

:对表中现有的数据是否进行检查。502023/7/273.5约束(3)使用ALTERTABLE语句还可删除约束,语法格式为:ALTERTABLEtable_nameDROPCONSTRAINTconstraint_name注意:只删除了表中的指定约束,并没有删除表。但是,当表被删除时,在该表上定义的所有约束将自动取消。512023/7/273.5约束主键约束主键用于唯一地标识表中每一条记录。可以定义表中的一列或多列为主键。主键列的值不能重复,也不能为空值。每张表都应该有且只有一个主键。(1)创建主键约束的语法格式:[CONSTRAINTconstraint_name]PRIMARYKEY[CLUSTERED|NONCLUSTERED](col_name[,…n])522023/7/273.5约束例3.21创建Orders表,包括四个字段,其中OrderID字段设为主键。CREATETABLEOrders(OrderIDintCONSTRAINTpk_orderid

PRIMARYKEY,CustomerIDchar(3),SaleIDchar(3),OrderDatedatetime)如果没有提供主键约束的名字,SQLServer会自动为该约束提供一个名字。例3.22修改表添加主键约束。createtablestudent(snoint,snamevarchar(20),sageint)altertablestudentaltercolumnsnointnotnullaltertablestudentaddprimarykey(sno)542023/7/273.5约束(2)在SQLServerManagementStudio中创建、修改、删除主键约束。1)选中需要添加约束的表,右键单击,选择“修改”。2)右键单击要设置为主键的字段(一个或多个),右键单击,选择“设置主键”。这时主键列的左边会显示“黄色钥匙”的图标。3)点击工具栏上的“保存”按钮,完成主键的设置。552023/7/273.5约束唯一(UNIQUE)约束用来限制在指定列上不允许有相同的值。一个表上可以有多个UNIQUE约束。唯一约束和主键约束的区别:唯一约束允许在该列上存在NULL值,而主键约束限制更为严格,不但不允许有重复,而且也不允许有空值。在创建唯一约束和主键约束时可以创建聚集索引和非聚集索引,但在缺省情况下主键约束产生聚集索引,而唯一约束产生非聚集索引。562023/7/273.5约束(1)创建唯一约束的语法格式为:[CONSTRAINTconstraint_name]UNIQUE[CLUSTERED|NONCLUSTERED](col_name[,…n])572023/7/273.5约束例3.25创建表Department,包含三个字段,并在dep_name字段上创建唯一约束。CREATETABLEDepartment(dep_idintPRIMARYKEY,dep_namechar(20)CONSTRAINTunq_dname

UNIQUE,dep_headchar(5))582023/7/273.5约束例3.26在Seller表的Telephone字段建立唯一约束。ALTERTABLESellerADDCONSTRAINTunq_telephone

UNIQUE(Telephone)592023/7/273.5约束(2)在SQLServerManagementStudio下创建唯一约束的操作步骤为:1)选中需要添加唯一性约束的表,右键单击,选择“修改”。2)右键单击上方窗格,选择“索引/键”命令。3)点击“添加”按钮添加新的主/唯一键或索引;在(常规)的“类型”右边选择“唯一键”,在“列”的右边单击省略号按钮“…”,选择列名“Cname”和排序规律ASC(升序)或DESC(降序)。4)点击“关闭”按钮即可。602023/7/273.5约束CHECK约束用来指定某列的可取值的范围。可以在单列上定义多个CHECK约束。(1)用T-SQL语句创建检查约束,语法格式:[CONSTRAINTconstraint_name]CHECK(exp)exp是一个表达式,定义要对列进行检查的条件。612023/7/273.5约束例3.27创建学生表Student,包含sid(学号)、sname(姓名)、sage(年龄)以及scity(城市)四个字段,并在sage字段创建一个CHECK约束,使得sage的值在18~30岁之间。CREATETABLEStudent(sidintPRIMARYKEY,snamechar(20),sageintCONSTRAINTcheck_age

CHECK(sage>=18ANDsage<=30),

scitychar(10))622023/7/273.5约束该语句还可写成:CREATETABLEStudent(sidintPRIMARYKEY,snamechar(20),sageintCONSTRAINTcheck_age

CHECK(sageBETWEEN18AND30),scitychar(10))注意:当向该表执行插入或更新操作时,SQLServer会检查插入的新列值是否满足CHECK约束的条件,若不满足,系统会报错,并拒绝执行插入或更新操作。632023/7/273.5约束例3.28修改学生表Student,在scity字段创建一个CHECK约束,以限制只能输入有效的城市。ALTERTABLEStudentWITHNOCHECKADDCONSTRAINTcheck_city

CHECK(scityIN('北京','上海','天津','重庆'))642023/7/273.5约束例3.29修改Seller表,在Telephone字段创建CHECK约束,使得该字段的值的格式为11位数字。ALTERTABLESellerADDCONSTRAINTcheck_telephone

CHECK(TelephoneLIKE'([0-9][0-9][0-9])[0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9]')注意:不能在具有IDENTITY属性的列上设置CHECK约束。652023/7/273.5约束(2)在SQLSeerverManagementStudio下创建CHECK约束的操作步骤为:1)选中需要添加CHECK约束的表,右键单击,选择“修改”命令。2)在弹出窗口中,右键单击上方窗格,选择“CHECK约束”命令。3)单击“添加”按钮,系统给出默认的约束名CK_Producs,在(常规)的“表达式”文本框中输入约束条件。662023/7/273.5约束若要修改已有的CHECK约束,可以在“选定的CHECK约束”下拉列表中选择要修改的CHECK约束。4)“表设计器”中的“在创建或重新启用时检查现有数据”决定在创建CHECK约束时是否检测现存数据。5)单击“关闭”按钮,完成CHECK约束的创建或修改。672023/7/273.5约束DEFAULT约束

给表中指定列赋予默认值,当向该表插入数据时,如果用户没有明确给出该列的值,SQLServer会自动为该列输入默认值。每列只能有一个DEFAULT约束。(1)使用Transact-SQL语句创建默认约束(P63)[CONSTRAINTconstraint_name]DEFAULT(expression|NULL)FORcolumn_name例3.30给student表的ssex列添加默认值altertablestudent

adddefault('男')forssex(2)使用SQLSeerverManagementStudio创建默认约束

(在表设计器的下半部分,“默认值与绑定”栏设置。)692023/7/273.5约束外键约束

Foreignkey用于与其他表(主键表)中的列(称为主键列)建立连接。例如:702023/7/273.5约束(1)创建外键约束的语法格式为:[CONSTRAINTconstraint_name]FOREIGNKEY(col_name1[,…n])REFERENCEStable_name(column_name1[,…n])其中:col_name1[,…n]:是要实现外键约束的列。table_name:是主键表(参照表)表名。column_name1[,…n]:是主键列(参照列)列名。712023/7/273.5约束例3.31若sales数据库中包含Seller表和Customer表。Seller(SaleID、SaleName)Customer(CustomerID、Company)新建表Orders(OrderID、CustomerID、SaleID,OrderDate)其中CustomerID、SaleID为外键。CREATETABLEOrders(OrderidintPRIMARYKEY,CustomerIDchar(3)REFERENCESCustomer(CustomerID),SaleIDchar(3)CONSTRAINTfk_sidREFERENCESSeller(SaleID),OrderDatedatetimeDEFAULTgetdate())722023/7/273.5约束例3.32修改OrderDetail表,在OrderID列上创建外键约束。ALTERTABLEOrderDetailADDCONSTRAINTfk_orderidFOREIGNKEY(OrderID)REFERENCESOrders(OrderID)或者:ALTERTABLEOrderDetailWITHNOCHECKADDCONSTRAINTfk_orderidFOREIGNKEY(OrderID)REFERENCESOrders(OrderID)732023/7/273.5约束(2)在SQLSeerverManagementStudio下同样可以创建外键约束,操作步骤如下:1)中需要添加外键约束的表,右键单击,选择“修改”命令。2)右键单击上方窗格,选择“关系…”命令。3)点击“添加”按钮,系统给出默认的关系名,单击“表和列规范”内容框中右边的省略号按钮,从弹出的“表和列”对话框中选择外键约束的表和列。单击“确定”按钮,返回到“外键关系”对话框。742023/7/273.5约束4)设置“在创建或重新启用时检查现有数据”为“是”,指定对于在创建或重新启用约束之前就存在于表中的所有数据,根据约束进行验证。5)将“强制外键约束”或“强制用于复制”设置为“是”,则能确保任何数据添加、修改或删除操作都不会违背外键关系。6)展开“Insert和Update规范”,可设置“更新规则”和“删除规则”。右边的下拉列表可选择“层叠”表示级联更新或级联删除。(详见下页)752023/7/273.5约束如果对主键表进行更新(Update)或删除(Delete)一行数据的操作,会检查主键表的主键是否被从表的外键引用:若没有被引用,则更新或删除。若被引用,可能发生如下4种操作之一:无操作:拒绝更新或删除主键表,SQLServer将显示一条错误消息,告知用户不允许执行该操作;层叠:级联更新或删除从表中相应的所有行;设置空:将外键表中相对应的外键值设置为NULL;设置默认值:如果外键表的所有外键列均已定义默认值,则将该列设置为默认值。762023/7/273.5约束7)单击“关闭”按钮即可完成外键约束的创建。8)如要删除外键约束,则在该对话框的“选定的关系”列表框中选择要删除的关系,单击“删除”按钮即可。查看约束名:sp_helpstudent或者:sp_helpconstraintstudent删除约束:altertablestudentdropconstraintUQ_student_7D8A782023/7/273.5.2学生-课程数据库有以下三个表:(参见第五版教材P79)

学生表:Student(Sno,Sname,Ssex,Sage,Sdept)

课程表:Course(Cno,Cname,Cpno,Ccredit)

学生选课表:SC(Sno,Cno,Grade)

792023/7/27Student表学号Sno姓名Sname性别

Ssex年龄

Sage所在系

Sdept200915121200915122200915123200515125李勇刘晨王敏张立男女女男20191819CSCSMAIS802023/7/27Course表课程号Cno课程名Cname先行课Cpno学分C

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论