收藏 分享(赏)

02 第二章 表格及约束.ppt

上传人:hwpkd79526 文档编号:9108917 上传时间:2019-07-24 格式:PPT 页数:33 大小:1.23MB
下载 相关 举报
02 第二章 表格及约束.ppt_第1页
第1页 / 共33页
02 第二章 表格及约束.ppt_第2页
第2页 / 共33页
02 第二章 表格及约束.ppt_第3页
第3页 / 共33页
02 第二章 表格及约束.ppt_第4页
第4页 / 共33页
02 第二章 表格及约束.ppt_第5页
第5页 / 共33页
点击查看更多>>
资源描述

1、第二章 表格及数据约束,本章主要内容,2.1 前言 简介数据对象。2.2 表格概念 介绍表格的概念。2.3 数据类型 熟悉各种数据类型及其区别。2.4 表的操作 熟练掌握建表及修改表规则。2.5 数据约束掌握各种约束作用。2.6 总结,2.1 前言,数据库数据对象中最基本的是表和视图,其他还有约束、序列、函数、存储过程、包、触发器等。对数据库的操作可以基本归结为对数据对象的操作,理解和掌握数据库对象是学习数据库的捷径。,2.2 表格概念,数据库是由一组相关文件组成的。文件是一组相关的记录。在实际数据库中,文件被称为表,字段称为“列”,记录称为“行”。,列,行,2.3 数据类型,MySql内置数

2、据类型可以分成数值型(numeric)、字符串型(character string)、日期时间型(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)。所有数值都有符号和精度。精度是指除符号以外的二进制或十进制的位数。如果数字的值大于等于零,就认为符号

3、为正。,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。日期时间值可在某些算术和字符串操作中使用,而且兼容某些字符串,但它们既不是字符串,也不是数字 。(具体

4、可以参照教材的表2.3),2.3 数据类型,2.3.2 日期时间型,2.3 数据类型,2.3.2 日期时间型,2.3 数据类型,2.3.2 日期时间型 注意: 日期时间值的字符串表示:尽管 DATE、TIME 和 TIMESTAMP 的值的内部表示对用户是透明的,日期、时间和时间戳记也可以用字符串来表示,CHAR 标量函数可以用于创建日期时间值的字符串表示。 日期值的字符串表示是一个以数字开始,长度不少于 8 个字符的字符串。日期值的月份和日部分中前面的零可以省略。 时间值的字符串表示是以数字开头,长度不少于 4 个字符的字符串。时间值的小时部分前面的零可以省略,秒部分可以完全省略。如果秒的值

5、没有指定,那么就认为是 0。 时间戳记值的字符串表示是以数字开头,长度不少于 14 个字符的字符串。完整的时间戳记字符串表示形式为 yyyy-mm-dd-hh,mm,ss。时间戳记值的月、日或小时等几部分前面的零可以省略。如果任何时间戳记值的微秒部分尾零被省略掉了,那么将假定空缺的数位上是零。,2.3 数据类型,2.3.4 NULL型NULL值表示“没有数据”。NULL可以写成大写或小写。 请注意NULL值不同于数字类型的0或字符串类型的空字符串。null 0 , ,2.4 数据库的操作,2.4.1 数据库的命名规则数据库名标识一个数据库,所以应尽可能在数据库名中描述库,mysql中数据库名最

6、长可以达64字符。数据库名称可由服务器所采用的字符集中任意字母、数字、“_”和“ $”组成。名称可按上述任意字符包括数字起头。但是名称不能单独由数字组成,因为那样会使其与数值相混。不过理论上,mysql可以使用任意字符,但是要用到 这个符号 。正确数据库名: MYDATABASE 错误数据库名: MYDATABASE!#见名知意,2.4 数据库的操作,2.4.2 数据库的创建 创建数据库语法如下: CREATE DATABASE 数据库名 DEFAULT CHARACTER SET utf8 例:创建一个名为MYDATABASE的数据库,且字符集为“UTF8”CREATE DATABASE M

7、YDATABASE DEFAULT CHARACTER SET utf8;2.4.3 数据库的删除 删除表语法如下: DROP DATABASE 数据库名 例:删除MYDATABASE数据库 DROP DATABASE MYDATABASE;,2.4 数据库的操作,2.4.4 数据库的使用 表语法如下: USE 数据库名 例:使用MYDATABASE数据库 USE DATABASE MYDATABASE;,2.5 表的操作,2.5.1 表的命名规则表名标识一个表,所以应尽可能在表名中描述表,mysql中表名或列名最长可以达64字符。表名称可由服务器所采用的字符集中任意字母、数字、“_”和“ $

8、”组成。名称可按上述任意字符包括数字起头。但是名称不能单独由数字组成,因为那样会使其与数值相混。不过理论上,mysql可以使用任意字符,但是要用到 这个符号。 例:表名的命名。正确表名: TBL_STUDENTINFO错误表名: TBL_STUDENTINFO!# 2.4.2 表的创建 创建表语法: CREATE TABLE 表名 (列名1 属性 默认值 是否为空,列名2 属性 默认值 是否为空),2.4 表的操作,2.4.2 表的创建-创建学生表,2.4 表的操作,2.4.2 表的创建CREATE TABLE TBL_STUDENTINFO (STUNO CHAR(5) NOT NULL,S

9、TUNAME VARCHAR (20) NOT NULL,STUBIRTH DATE,STUSEX char(1),STUADDR VARCHAR(200) ,STUTEL VARCHAR(11),UPSTUNO CHAR(5) );,2.4 表的操作,2.4.2 表的创建 注意 :NULL可以为空 NOT NULL 不可为空,MySql中 空字符串不是NULL,此处如果不加说明,默认数据都是NULL类型。一般定义成CHAR型字段,是因为这个字段的数据长度固定,并且实际数据查询中,CHAR型比VARCHAR型的效率高。性别这种固定内容的数据字段,一般不直接定义保存成男,女,而用code代替,数

10、据1 男, 0 女。AUTO_INCREMENT:序列自增,2.4 表的操作,2.4.3 表的删除 删除表语法 DROP TABLE 表名 (实例可参考例2.3)-删除学生表DROP TABLE tbl_studentinfo;,2.4 表的操作,2.4.4 表的修改 字段的增加语法:ALTER TABLE 表名 ADD 列名 属性 (实例可参考例2.4)-增加电话属性ALTER TABLE tbl_studentinfo ADD stuTel CHAR(11),2.4 表的操作,2.4.4 表的修改 字段的删除语法:ALTER TABLE 表名 DROP COLUMN 列名 (实例可参考例2

11、.5)-删除电话字段ALTER TABLE tbl_studentinfo DROP COLUMN stuTel,2.4 表的操作,2.4.4 表的修改 字段的修改语法:ALTER TABLE 表名CHANGE列名 列名列名1 属性 -修改学生名的长度ALTER TABLE TBL_STUDENTINFO CHANGE STUNAME STUNAME VARCHAR(30); 注意:在MySql中,可以像ORACLE中一样,可以改名,类型,长度(变大),但是MySql可以把长度改小。不提倡把数据长度变小。ALTER TABLE 表名 MODIFY 列名 属性,2.5 数据约束,2.5.1 约束

12、的概念及作用完整性约束用于增强数据的完整性,一般数据库提供了5种完整性约束: 主键约束 PRIMARY KEY外键约束 FOREIGN KEY唯一约束 UNIQUE检查约束 CHECK(Mysql目前只是起到注释作用)age 0 为空约束 NOT NULL,2.5 数据约束,2.5.2 约束的启用及禁用 增加约束语法:ALTER TABLE 表名 ADD CONSTRAINT 约束名 删除约束语法:ALTER TABLE 表名 DROP CONSTRAINT 约束名 启用约束语法:ALTER TABLE 表名 ENABLE CONSTRAINT 约束名 禁用约束语法:ALTER TABLE 表

13、名 DISABLE CONSTRAINT 约束名,2.5 数据约束,2.5.3 主键约束确定哪些列唯一的标识了各个记录,主键不能为Null,并且数据值必须唯一 。创建主键约束的语法:ALTER TABLE 表名 ADD CONSTRAINT 约束名 PRIMARY KEY(列名1, 列名2)例:学生信息表设置学生学号为主键(参看例2.7)ALTER TABLE tbl_StudentInfo ADD PRIMARY KEY (stuno) 注意:1. 一个表只能有一个主键,但是一个主键可以包含多个列;2. 在某些约束的创建过程中由于一个表只有一个此类约束,故约束名的设置可以省略。当约束名不写的

14、时候,数据库系统会为这个约束创建一个自定义的约束名。,2.5 数据约束,2.5.4 外键约束在一对多关系中,将约束添加到”多”表中,确保了如果将一个值输入一个指定的列,那么它必须已经存在域”一” 表中, 或者还没有添加这个记录,例如: 考试成绩表的记录中,学号必须在学生信息表中存在,否则就不合理。创建外键约束的语法:ALTER TABLE表名 ADD CONSTRAINT 约束名 FOREIGN KEY (列名) REFERENCES 表名2 列名2例:成绩表的学号可以设置外键参照为学生表的学号 (参看例2.8)ALTER ABLE tbl_scoreinfo ADD FOREIGN KEY

15、(stuno) REFERENCES tbl_studentinfo(stuno),2.5 数据约束,2.5.5 唯一约束确保存储在一个指定列中的所有数据值都是唯一的,在Mysql中UNIQUE允许为NULL,例如: 学生表的手机号码列不可能有重复。 创建唯一约束的语法:ALTER TABLE表名 ADD 【CONSTRAINT 约束名】UNIQUE (列名) 例:学生信息表的学生号创建唯一 (参看例2.9)ALTER TABLE TBL_STUDENTINFO ADD UNIQUE UQ_STUINFO_STUTEL (STUNO),2.5 数据约束,2.5.6 检查约束确保在向表中添加数据

16、值之前满足了一个指定的条件,例如: 一个学生的考试成绩不可能小于零。(Mysql目前只是起到注释作用) 创建检查约束的语法:ALTER TABLE表名 ADD CONSTRAINT 约束名 CHECK (条件) 例:学生成绩必须是大于等于0且小于等于150的数字 (参看例2.10)ALTER TABLE TBL_SCOREINFO ADD COSTRAINT CK_TBLSCOREINFO_SCORE CHECK (SCORE =0 AND SCORE = 150),2.6 总结,本章主要讲解了,关于数据项目以及表格数据对象的创建,删除,以及修改的规则, 并且对于表格的数据约束做了详细说明。熟练掌握各种规则语法是学习数据库表格的关键,也是进一步学习其他语法的基础。,

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 企业管理 > 管理学资料

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报