




已阅读5页,还剩28页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第二章表格及数据约束,本章主要内容,2.1前言简介数据对象。2.2表格概念介绍表格的概念。2.3数据类型熟悉各种数据类型及其区别。2.4表的操作熟练掌握建表及修改表规则。2.5数据约束掌握各种约束作用。2.6总结,2.1前言,数据库数据对象中最基本的是表和视图,其他还有约束、序列、函数、存储过程、包、触发器等。对数据库的操作可以基本归结为对数据对象的操作,理解和掌握数据库对象是学习数据库的捷径。,2.2表格概念,数据库是由一组相关文件组成的。文件是一组相关的记录。在实际数据库中,文件被称为表,字段称为“列”,记录称为“行”。,列,行,2.3数据类型,MySql内置数据类型可以分成数值型(numeric)、字符串型(characterstring)、日期时间型(datetime)。还有一种叫做NULL的特殊数据类型。NULL值表示未知值。比如填写表格中通讯地址不清楚留空不填写,这就是NULL值。,2.3数据类型,2.3.1数值类型MySQL有整数和浮点数值的列类型,包括TINYINT(M),SMALLINT(M)、MEDIUMINT(M)、INT(M)、BIGINT(M)、FLOAT(M,D)、DOUBLE(M,D)、DECIMAL(M,D)。所有数值都有符号和精度。精度是指除符号以外的二进制或十进制的位数。如果数字的值大于等于零,就认为符号为正。,2.3数据类型,2.3数据类型,2.3.2字符串类型字符串包括CHAR(M)类型的定长字符串和VARCHAR(M)类型的可变长度字符串、以及TINYBLOB、BLOB、MEDIUMBLOB、LONGBLOB、TINYTEXT、TEXT、MEDIUMTEXT、LONGTEXT、ENUM和SET字符串列类型。,2.3数据类型,2.3.2字符串类型,2.3数据类型,2.3.2日期时间型数据类型包括DATE、TIME、TIMESTAMP、DATETIME和YEAR。日期时间值可在某些算术和字符串操作中使用,而且兼容某些字符串,但它们既不是字符串,也不是数字。(具体可以参照教材的表2.3),2.3数据类型,2.3.2日期时间型,2.3数据类型,2.3.2日期时间型,2.3数据类型,2.3.2日期时间型注意:日期时间值的字符串表示:尽管DATE、TIME和TIMESTAMP的值的内部表示对用户是透明的,日期、时间和时间戳记也可以用字符串来表示,CHAR标量函数可以用于创建日期时间值的字符串表示。日期值的字符串表示是一个以数字开始,长度不少于8个字符的字符串。日期值的月份和日部分中前面的零可以省略。时间值的字符串表示是以数字开头,长度不少于4个字符的字符串。时间值的小时部分前面的零可以省略,秒部分可以完全省略。如果秒的值没有指定,那么就认为是0。时间戳记值的字符串表示是以数字开头,长度不少于14个字符的字符串。完整的时间戳记字符串表示形式为yyyy-mm-dd-hh,mm,ss。时间戳记值的月、日或小时等几部分前面的零可以省略。如果任何时间戳记值的微秒部分尾零被省略掉了,那么将假定空缺的数位上是零。,2.3数据类型,2.3.4NULL型NULL值表示“没有数据”。NULL可以写成大写或小写。请注意NULL值不同于数字类型的0或字符串类型的空字符串。null0,2.4数据库的操作,2.4.1数据库的命名规则数据库名标识一个数据库,所以应尽可能在数据库名中描述库,mysql中数据库名最长可以达64字符。数据库名称可由服务器所采用的字符集中任意字母、数字、“_”和“$”组成。名称可按上述任意字符包括数字起头。但是名称不能单独由数字组成,因为那样会使其与数值相混。不过理论上,mysql可以使用任意字符,但是要用到这个符号。正确数据库名:MYDATABASE错误数据库名:MYDATABASE!#见名知意,2.4数据库的操作,2.4.2数据库的创建创建数据库语法如下:CREATEDATABASE数据库名DEFAULTCHARACTERSETutf8例:创建一个名为MYDATABASE的数据库,且字符集为“UTF8”CREATEDATABASEMYDATABASEDEFAULTCHARACTERSETutf8;2.4.3数据库的删除删除表语法如下:DROPDATABASE数据库名例:删除MYDATABASE数据库DROPDATABASEMYDATABASE;,2.4数据库的操作,2.4.4数据库的使用表语法如下:USE数据库名例:使用MYDATABASE数据库USEDATABASEMYDATABASE;,2.5表的操作,2.5.1表的命名规则表名标识一个表,所以应尽可能在表名中描述表,mysql中表名或列名最长可以达64字符。表名称可由服务器所采用的字符集中任意字母、数字、“_”和“$”组成。名称可按上述任意字符包括数字起头。但是名称不能单独由数字组成,因为那样会使其与数值相混。不过理论上,mysql可以使用任意字符,但是要用到这个符号。例:表名的命名。正确表名:TBL_STUDENTINFO错误表名:TBL_STUDENTINFO!#2.4.2表的创建创建表语法:CREATETABLE表名(列名1属性默认值是否为空,列名2属性默认值是否为空),2.4表的操作,2.4.2表的创建-创建学生表,2.4表的操作,2.4.2表的创建CREATETABLETBL_STUDENTINFO(STUNOCHAR(5)NOTNULL,STUNAMEVARCHAR(20)NOTNULL,STUBIRTHDATE,STUSEXchar(1),STUADDRVARCHAR(200),STUTELVARCHAR(11),UPSTUNOCHAR(5);,2.4表的操作,2.4.2表的创建注意:NULL可以为空NOTNULL不可为空,MySql中空字符串不是NULL,此处如果不加说明,默认数据都是NULL类型。一般定义成CHAR型字段,是因为这个字段的数据长度固定,并且实际数据查询中,CHAR型比VARCHAR型的效率高。性别这种固定内容的数据字段,一般不直接定义保存成男,女,而用code代替,数据1男,0女。AUTO_INCREMENT:序列自增,2.4表的操作,2.4.3表的删除删除表语法DROPTABLE表名(实例可参考例2.3)-删除学生表DROPTABLEtbl_studentinfo;,2.4表的操作,2.4.4表的修改字段的增加语法:ALTERTABLE表名ADD列名属性(实例可参考例2.4)-增加电话属性ALTERTABLEtbl_studentinfoADDstuTelCHAR(11),2.4表的操作,2.4.4表的修改字段的删除语法:ALTERTABLE表名DROPCOLUMN列名(实例可参考例2.5)-删除电话字段ALTERTABLEtbl_studentinfoDROPCOLUMNstuTel,2.4表的操作,2.4.4表的修改字段的修改语法:ALTERTABLE表名CHANGE列名列名列名1属性-修改学生名的长度ALTERTABLETBL_STUDENTINFOCHANGESTUNAMESTUNAMEVARCHAR(30);注意:在MySql中,可以像ORACLE中一样,可以改名,类型,长度(变大),但是MySql可以把长度改小。不提倡把数据长度变小。ALTERTABLE表名MODIFY列名属性,2.5数据约束,2.5.1约束的概念及作用完整性约束用于增强数据的完整性,一般数据库提供了5种完整性约束:主键约束PRIMARYKEY外键约束FOREIGNKEY唯一约束UNIQUE检查约束CHECK(Mysql目前只是起到注释作用)age0为空约束NOTNULL,2.5数据约束,2.5.2约束的启用及禁用增加约束语法:ALTERTABLE表名ADDCONSTRAINT约束名删除约束语法:ALTERTABLE表名DROPCONSTRAINT约束名启用约束语法:ALTERTABLE表名ENABLECONSTRAINT约束名禁用约束语法:ALTERTABLE表名DISABLECONSTRAINT约束名,2.5数据约束,2.5.3主键约束确定哪些列唯一的标识了各个记录,主键不能为Null,并且数据值必须唯一。创建主键约束的语法:ALTERTABLE表名ADDCONSTRAINT约束名PRIMARYKEY(列名1,列名2)例:学生信息表设置学生学号为主键(参看例2.7)ALTERTABLEtbl_StudentInfoADDPRIMARYKEY(stuno)注意:1.一个表只能有一个主键,但是一个主键可以包含多个列;2.在某些约束的创建过程中由于一个表只有一个此类约束,故约束名的设置可以省略。当约束名不写的时候,数据库系统会为这个约束创建一个自定义的约束名。,2.5数据约束,2.5.4外键约束在一对多关系中,将约束添加到”多”表中,确保了如果将一个值输入一个指定的列,那么它必须已经存在域”一”表中,或者还没有添加这个记录,例如:考试成绩表的记录中,学号必须在学生信息表中存在,否则就不合理。创建外键约束的语法:ALTERTABLE表名ADDCONSTRAINT约束名FOREIGNKEY(列名)REFERENCES表名2列名2例:成绩表的学号可以设置外键参照为学生表的学号(参看例2.8)ALTERABLEtbl_scoreinfoADDFOREIGNKEY(stuno)REFERENCEStbl_studentinfo(stuno),2.5数据约束,2.5.5唯一约束确保存储在一个指定列中的所有数据值都是唯一的,在Mysql中UNIQUE允许为NULL,例如:学生表的手机号码列不可能有重复。创建唯一约束的语法:ALTERTABLE表名ADD【CONSTRAINT约束名】UNIQUE(列名)例:学生信息表的学生号创建唯一(参看例2.9)ALTERTABLETBL_STUDENTINFOADDUNIQUEUQ_STUINFO_STUTEL(STUNO),2.5数据约束,2.5.6检查约束确保在向表中添加数据值之前满足了一个指定的条件,例如:一个学生的考试成绩不可能小于零。(Mysql目前只是起到注释作用)创建检查约束的语法:ALTERTABLE表名ADDCONSTRAINT约束名C
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025中国建筑股份有限公司岗位招聘党建工作部(企业文化部)笔试题库历年考点版附带答案详解版
- 2025年数字金融行业数字货币与金融科技创新研究报告
- 2025年保险科技行业智能化产品创新研究报告
- 2025年全球新能源汽车市场竞争格局与趋势研究报告
- 2026中科信公司校园招聘笔试备考试题及答案解析
- 2025广东深圳市华一实验学校诚聘高中德育主任、教学主任笔试参考题库附答案解析
- 2025年妇产科常见疾病的处理技巧模拟考试卷答案及解析
- 校园应急救护安全培训课件
- 2026中信银行成都分行校园招聘笔试备考试题及答案解析
- 2025泰山财产保险股份有限公司江苏分公司社会招聘1人笔试模拟试题及答案解析
- 2025至2030年中国卡丁车俱乐部行业市场调研分析及投资战略咨询报告
- 教案2025秋形势与政策纪念抗战胜利坚定民族信念抗战胜利80周年
- 加油站职业健康危害因素分析
- 辽宁省沈阳市2025届高考语文模拟试卷(含答案)
- 公路统计管理办法
- 《智能建造概论》高职完整全套教学课件
- 危重症患者的疼痛管理
- 电力建设安全规程2025新版
- 2024年法考真题及答案解析
- 2025年苏州市中考数学试卷真题(含答案解析)
- 面向下一代互联网Web3.0可信数字身份基础设施白皮书(2024年)
评论
0/150
提交评论