版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、AnQing Teachers College Department of Computer & Information数据库原理与运用数据库原理与运用Principle and Principle and Application of Application of Database SystemDatabase System安庆师范学院计算机与信息学院安庆师范学院计算机与信息学院 第第8章章 创建和运用表创建和运用表 8.1创建、修正和删除表 8.2 数据更新记录的添加、修正、删除n创建一个数据表时主要包括以下几个组成部分:n1 字段名列名:字段名可长达128个字符。字段名可包含中文
2、、英文字母、下划线、#号、货币符号$及AT符号()。同一表中不许有重名列;n2 字段数据类型:n3 字段的长度、精度和小数位数;n4 NULL/NOT NULLn5 其他约束:PRIMARY KEY、UNIQUE、FOREIGN KEYn 主键约束、独一约束、外键约束8.1 创建、修正和删除数据表2 字段数据类型当定义表时,需求为表中的每一个字段设置一个数据类型,用来指定字段所存放的数据是整数、字符串、货币或是其它类型的数据。8.1 创建表、修正表、删除表nSQL Server 的数据类型有很多种,主要分为以下8类:n1. 整数数据类型:依整数数值的范围大小,有BIT, INT , SMALL
3、INT, TINYINT四种。n2. 准确数值类型:用来定义可带小数部分的数字,有NUMERIC和DECIMAL两种。二者一样。如:123.0、8000.56n3. 近似浮点数值数据类型:当数值的位数太多时,可用此数据类型来取其近似值,用FLOAT和REAL两种。如:1.23E+10n4. 日期时间数据类型:用来表示日期与时间,依时间范围与准确程度可分为DATETIME与SMALLDATETIME两种。如:2019-06-08 15:30:005. 字符串数据类型:用来表示字符串的字段。包括:CHAR, VARCHAR, TEXT三种,如:“数据库6. UNICODE字符串数据类型:UNICO
4、DE是双字节文字编码规范,包括NCHAR, NVARCHAR与NTEXT三种。与字符串数据类型相类似,但UNICODE的一个字符用2字节存储,而普通字符数据用一个字节存储。7. 二进制数据类型:用来定义二进制码的数据。有:BINARY, VARBINARY,IMAGE 三种,通常用十六进制表示:如:OX5F3C8. 货币数据类型:用来定义与货币有关的数据,分为MONEY 与SMALLMONEY两种,如:123.0000各种数据类型的有关规定如下表: 数 据类型数据内容与范围占用的字节 BIT 0, 1实践运用1BIT,但会占用1BYTE,假设一个数据中有数个BIT字段,那么可共占1个BYTEI
5、NT-231到231-14BYTESSMALLINT-215至215-12BYTESTINYINT0至2551BYTESNUMERIC-1038-1至1038-11-9位数运用5BYTES10-19位数运用9BYTES20-28位数运用13BYTES29-38位数运用17BYTESDECIMAL-1038-1至1038-15-17BYTES因长度而异,与NUMERIC一样FLOAT(n)-3.40E+38至3.40E+38, 最多可表示24位数-1.79E+308至1.79E+308, 最多可表示53位数当n在1-24之间,4BYTES当n在25-53之间,8BYTESREAL -3.40E+
6、38到3.40E+38,最多可表示24位数4BYTESDATETIME1753/1/1至9999/12/318BYTESSMALLDATETIME1900/1/1至2079/6/64BYTESCHAR1-8000个字符1个字符占1B,尾端空白字符保管VARCHAR1-8000个字符1个字符占1B,尾端空白字符删除。TEXT231-1个字符1个字符占1B,最大可存储2GBNCHAR1-4000个字符1个字符占2B,尾端空白字符保管NVARCHAR1-4000个字符1个字符占2B,尾端空白字符删除NTEXT230-1个字符1个字符占2B,最大可存储2GBBINARY1-8000个字符在存储时,SQ
7、L SERVER会另外添加4B,尾端空白字符会保管VARBINARY1-8000个字符在存储时,SQL SERVER会另外添加4B,尾 端空白字符会删除IMAGE231-1个字符最大可存储2GBMONEY-263-263-18BSMALLMONEY-231-231-14B 字段的长度:指字段所能包容的最大数据量,对不同的数据类型来说,长度对字段的意义能够有些不同。对字符串与UNICODE数据类型而言,长度代表字段所能包容的字符的数目,因此它会限制用户所能输入的文本长度。对数值类的数据类型而言,长度那么代表字段运用多少个字节来存放数字。对BINARY、VARBINARY、IMAGE数据类型而言,
8、长度代表字段所能包容的字节数。3 字段的长度、精度和小数位数精度和小数位数精度是指数中数字的位数,包括小数点左侧的整数部分和小数点右侧的小数部分;小数位数那么是指数字小数点右侧的位数。例如:数字12345.678,其精度为8,小数位数为3;所以只需数值类的数据类型才有必要指定精度和小数位数。n经常以如下所示的格式来表示数据类型以及它所采用的长度、精度和小数位数,其中的N代表长度,P代表精度,S表示小数位数。nBINARY(N) - BINARY(10)nCHAR(N) - CHAR(20)nNUMERIC(P,S) - NUMERIC(8,3)n但有的数据类型的精度与小数位数是固定的,对采用此
9、类数据类型的字段而言,不需设置精度与小数位数,n如:假设某字段采用INT数据类型,其长度固定是4,精度固定是10,小数位数那么固定是0,这表示字段将能存放10位没有小数点的整数。存储大小那么是4个字节。4 NULL/NOT NULLn空值NULL就是“不知道 或“无意义的值。5 其他约束:其他约束:PRIMARY KEY、UNIQUE、FOREIGN KEY 主键约束、独一约束、外键约束主键约束、独一约束、外键约束1PRIMARY KEY:主码2UNIQUE:码3 FOREIGN KEY:外码设F是根本关系R的一个或一组属性,但不是关系R的码。假设F与根本关系S的主码Ks相对应,那么称F是根本
10、关系R的外码根本关系R称为参照关系Referencing Relation根本关系S称为被参照关系ReferencedRelation或目的关系Target Relation1、创建表运用语句CREATE TABLE创建数据表,其根本语法格式为:CREATE TABLE (,|)是合法标识符,最多可有128个字符,如S,SC,C,不允许重名。:命令方式创建、修正和删除表命令方式创建、修正和删除表定义完好性约束上例为创建根本表的最简单方式,还可以对表进一步定义,如主键、空值等的设定,使数据库用户可以根据运用的需求对根本表的定义做出更为准确和详尽的规定。在SQL Server中,对于根本表的约束分
11、为列约束和表约束。列约束是对某一个特定列的约束,包含在列定义中,直接跟在该列的其他定义之后,用空格分隔,不用指定列名;表约束与列定义相互独立,不包括在列定义中,通常用于对多个列一同进展约束,与列定义用,分隔,定义表约束时必需指出要约束的那些列的称号。完好性约束的根本语法格式为: CONSTRAINT 约束名:约束不指定称号时,系统会给定一个称号。n约束类型:在定义完好性约束时必需指定完好性约束的类型。n在SQL SERVER中可以定义五种类型的完好性约束,下面分别加以引见:n1NULL/NOT NULLn能否允许该字段的值为NULL。nNULL值不是0也不是空白,更不是填入字符串“NULL,而
12、是表示“不知道、“不确定或“没有数据的意思。n当某一字段的值一定要输入才有意义的时候,那么可以设置为NOT NULL。n如主键列就不允许出现空值,否那么就失去了独一标识一条记录的作用n只能用于定义列约束,n其语法格式如下:nCONSTRAINT NULL|NOT NULL 例3.1 建立一个Student表,对Sno字段进展NOT NULL约束。USE Student_CourseCREATE TABLE Student(Sno CHAR(8) CONSTRAINT S_CONS NOT NULL, Sname VARCHAR(20), Sage INT, Ssex CHAR(2) , Sde
13、pt VARCHAR(20);当Sno为空值时,系统给出错误信息,无NOT NULL约束时,系统缺省为NULL。其中S_CONS为指定的约束称号,当约束称号省略时,系统自动产生一个名字。如以下功能同上,只是省略约束称号。 2UNIQUE约束UNIQUE约束用于指明根本表在某一列或多个列的组合上的取值必需独一。定义了UNIQUE约束的那些列称为独一键,系统自动为独一键建立独一索引,从而保证了独一键的独一性。独一键允许为空,但系统为保证其独一性,最多只可以出现一个NULL值。UNIQUE既可用于列约束,也可用于表约束。UNIQUE用于定义列约束时,其语法格式如下:CONSTRAINT UNIQUE
14、n例3.2 建立一个Student表,定义Sname为独一键。nUSE Student_CoursenCREATE TABLE Studentn(Sno CHAR(8) ,n Sname VARCHAR(20) CONSTRAINT Sn_UNIQ UNIQUE,n Sage INT,n Ssex CHAR(2),n Sdept VARCHAR(20);n其中SN_UNIQ为指定的约束称号,约束称号可以省略,n如下例:nCREATE TABLE Studentn(Sno CHAR(8) ,n Sname VARCHAR(20) UNIQUE,n Sage INT,n Ssex CHAR(2)
15、,n Sdept VARCHAR(20);nUNIQUE用于定义表约束时,其语法格式如下:n CONSTRAINT UNIQUE,例3.3 建立一个Student表,定义Sname+Ssex为独一键。USE Student_CourseCREATE TABLE Student(Sno CHAR(8) , Sname VARCHAR(20), Sage INT, Ssex CHAR(2), Sdept VARCHAR(20), CONSTRAINT S_UNIQ UNIQUE(Sname,Ssex);系统为Sname+Ssex建立独一索引,确保同一性别的学生没有重名。3PRIMARY KEY约束
16、PRIMARY KEY约束用于定义根本表的主键,起独一标识作用,其值不能为NULL,也不能反复,以此来保证明体的完好性。 PRIMARY KEY与UNIQUE约束类似,经过建立独一索引来保证根本表在主键列取值的独一性,但它们之间存在着很大的区别:在一个根本表中只能定义一个PRIMARY KEY约束,但可定义多个UNIQUE约束;对于指定为PRIMARY KEY的一个列或多个列的组合,其中任何一个列都不能出现空值,而对于UNIQUE所约束的独一键,那么允许为空。n留意:不能为同一个列或一组列既定义UNIQUE约束,又定义PRIMARY KEY约束。nPRIMARY KEY既可用于列约束,也可用于
17、表约束。nPRIMARY KEY用于定义列约束时,其语法格式如下:nCONSTRAINT PRIMARY KEY 例3.4 建立一个Student表,定义Sno为Student的主键USE Student_CourseCREATE TABLE Student(Sno CHAR(8) CONSTRAINT Sno_PRIM PRIMARY KEY,, Sname VARCHAR(20), Sage INT, Ssex CHAR(2), Sdept VARCHAR(20);PRIMARY KEY用于定义表约束时,即将某些列的组合定义为主键,其语法格式如下: CONSTRAINT PRIMARY K
18、EY ()例3.5 建立一个SC表,定义Sno+Cno为SC的主键。USE Student_CourseCREATE TABLE SC(Sno CHAR(8) NOT NULL, Cno CHAR(8) NOT NULL, Grade NUMERIC(3), CONSTRAINT SC_PRIM PRIMARY KEY(Sno,Cno);4FOREIGN KEY约束FOREIGN KEY约束指定某一个列或一组列作为外部键,其中,包含外部键的表称为从表,包含外部键所援用的主键或独一键的表称主表。系统保证从表在外部键上的取值要么是主表中某一个主键值或独一键值,要么取空值。以此保证两个表之间的衔接,
19、确保了实体的参照完好性。FOREIGN KEY既可用于列约束,也可用于表约束,其语法格式为:CONSTRAINT FOREIGN KEY REFERENCES ()USE Student_CourseCREATE TABLE SC(Sno CHAR(8) NOT NULL CONSTRAINT S_FORE FOREIGN KEY REFERENCES Student(Sno), Cno CHAR(8) NOT NULL CONSTRAINT C_FORE FOREIGN KEY REFERENCES Course(Cno), Grade NUMERIC(3), CONSTRAINT SC_P
20、RIM PRIMARY KEY (SNO,CNO);修正根本表修正根本表n由于运用环境和运用需求的变化,经常需求修正根本表的构造,比如,添加新列和完好性约束、修正原有的列定义和完好性约束等。n运用ALTER TABLE命令来完成这一功能,有如下三种修正方式:n1. ADD方式n用于添加新列和完好性约束,定义方式同CREATE TABLE语句中的定义方式一样,其语法格式为:nALTER TABLE ADD | 例3.6 在Student表中添加一个班号列和住址列。USE Student_CourseALTER TABLE Student ADDClass_NO CHAR(6),Address C
21、HAR(40)n例3.7 在Course表中添加完好性约束定义,使Cname独一。nUSE Student_CoursenALTER TABLE Course nADD nCONSTRAINT Cname_UNQ UNIQUE(Cname)2. ALTER 方式用于修正某些列,其语法格式为:ALTER TABLEALTER COLUMN NULL|NOT NULL例3.8 把Student表中的Sno列加宽到8位字符宽度USE Student_CourseALTER TABLE Student ALTER COLUMNSno CHAR(8)3.DROP方式删除完好性约束定义,其语法格式为: A
22、LTER TABLEDROP CONSTRAINT ,约束名例3.9 删除S表中的Sage_CHK约束USE Student_CourseALTER TABLE StudentDROP CONSTRAINT Sage_CHK删除列ALTER TABLEDROP COLUMN ,字段名3.2.3.3 删除根本表删除根本表n当某个根本表无用时,可将其删除。n删除后,该表中的数据和在此表上所建的索引都被删除,而建立在该表上的视图不会随之删除,系统将继续保管其定义,但已无法运用。n假设重新恢复该表,这些视图可重新运用。n删除表的语法格式:nDROP TABLE n例3.17 删除表STUDENTnUS
23、E Student_Course nDROP TABLE Student界面方式创建、修正和删除表界面方式创建、修正和删除表8.2 数数 据据 更更 新新 1 插入数据2 修正数据3 删除数据 1 插入数据插入数据n插入数据是把新的记录插入到一个存在的表中。插入数据运用语句INSERT INTO。n语句格式nINSERT INTO (,)nVALUES ( , )n功能n 将新元组插入指定表中。例1 将一个新学生记录学号:95020;姓名:陈冬;性别:男;所在系:IS;年龄:18岁插入到Student表中。INSERT INTO Student VALUES (95020,陈冬,男,18,IS)例2 插入一条选课记录( 95020,1 )。 INSERT INTO SC(Sno,Cno)VALUES (95020,1) 新插入的记录在Grade列上取空值n INTO子句n指定要插入数据的表名及属性列n属性列的顺序可与表定义中的顺序不一致n没有指定属性列:表示要插入的是一条完好的元组,且属性列属性与表定义中的顺序一致n指定部分属性列:插入的元组在其他属性列上取空值n VA
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026年光伏支架防腐问答含答案
- 校长岗位安全培训课件
- 2026年贵州省安顺地区单招职业适应性测试模拟测试卷附答案解析
- 2026年青海农牧科技职业学院单招职业适应性考试题库附答案解析
- 2026年中医专长医师中医急症处理能力考核题及解答
- 2026年TCL-TAS-人才测评社招专项评估备考题及详解
- 2026年湖南邮电职业技术学院单招职业适应性测试题库附答案解析
- 2026年重庆航天职业技术学院单招职业技能测试模拟测试卷附答案解析
- 2026年辽宁金融职业学院单招职业倾向性考试模拟测试卷附答案解析
- 韶关市教育局直属学校赴外地院校公开招聘专任教师18人(第二场)备考题库附答案解析
- 2024年中国新型灵活就业报告-暨南大学x智联招聘-202502
- DBJ-T50-350-2020主城区两江四岸消落带绿化技术标准
- 口腔医保知识培训课件
- DB51T 2875-2022 彩灯(自贡)工艺灯规范
- 选矿安全第一课
- 电力造价员培训教学课件:第三章 (二)电力工程计价模式
- 垃圾分类房-垃圾分类
- 脓毒症免疫功能紊乱
- 斜弱视眼科学
- 电商平台需求规格说明书-通用版本
- GB/T 3372-2010拖拉机和农业、林业机械用轮辋系列
评论
0/150
提交评论