《《数据库维护》PPT课件.ppt》由会员分享,可在线阅读,更多相关《《数据库维护》PPT课件.ppt(29页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、The technology and practice of Database The technology and practice of Database 20092009Vience Yin|Fayea Studio|Friday,August 24,2009数据库原理及应用 The technology and practice of DatabaseThe technology and practice of DatabaseVience Yin|Fayea Studio|Friday,August 24,2009DDL语言(Data Description Language)描述数
2、据库中的各个元素学习要点理解并掌握MySQL数据库维护语法理解表与实体关系的对应MySQL数据类型对象表的建立、修改数据库DDL The theoryThe theory OFOF Relation databaseRelation databaseVience Yin|Fayea Studio|Friday,August 24,2009关系模型的形式化定义关系名 R 符号化的元组语义一组属性 U属性组 U 中属性所来自的域 D属性到域的映射 DOM属性组 U 上的一组数据依赖 F(关系的外码)数据库DDL The theoryThe theory OFOF Relation database
3、Relation databaseVience Yin|Fayea Studio|Friday,August 24,2009关系模型的表形式学号 使用英语字符转化为 student_id根据学号该属性的域确定数据类型学号 是实体关系中的候选码 标识为数据表的主键(Primary Key)数据库DDL The theoryThe theory OFOF Relation databaseRelation databaseVience Yin|Fayea Studio|Friday,August 24,2009常见数值类型概述TINYINT很小的整数。带符号的范围是-128到127。无符号的范围是
4、0到255。BOOL,BOOLEAN是TINYINT(1)的同义词。zero值被视为假。非zero值视为真。在将来,将根据标准SQL引入完全布尔类型的处理。SMALLINT小的整数。带符号的范围是-32768到32767。无符号的范围是0到65535。数据库DDL The theoryThe theory OFOF Relation databaseRelation databaseVience Yin|Fayea Studio|Friday,August 24,2009常见数值类型概述MEDIUMINT中等大小的整数。带符号的范围是-8388608到8388607。无符号的范围是0到1677
5、7215。INT/INTEGER普通大小的整数。带符号的范围是-2147483648到2147483647。无符号的范围是0到4294967295BIGINT大整数。带符号的范围是-9223372036854775808到9223372036854775807。无符号的范围是0到。数据库DDL The theoryThe theory OFOF Relation databaseRelation databaseVience Yin|Fayea Studio|Friday,August 24,2009常见数值类型概述FLOAT(M,D)小(单精度)浮点数。M是小数纵位数,D是小数点后面的位数。
6、如果M和D被省略,根据硬件允许的限制来保存值。单精度浮点数精确到大约7位小数位。DOUBLE(M,D)普通大小(双精度)浮点数。M是小数总位数,D是小数点后面的位数。如果M和D被省略,根据硬件允许的限制来保存值。双精度浮点数精确到大约15位小数位。数据库DDL The theoryThe theory OFOF Relation databaseRelation databaseVience Yin|Fayea Studio|Friday,August 24,2009日期和时间类型概述DATE日期。支持的范围为1000-01-01到9999-12-31。MySQL以YYYY-MM-DD格式显示
7、DATE值,但允许使用字符串或数字为DATE列分配值。DATETIME日期和时间的组合。支持的范围是1000-01-01 00:00:00到9999-12-31 23:59:59。MySQL以YYYY-MM-DD HH:MM:SS格式显示DATETIME值,但允许使用字符串或数字为DATETIME列分配值。数据库DDL The theoryThe theory OFOF Relation databaseRelation databaseVience Yin|Fayea Studio|Friday,August 24,2009日期和时间类型概述TIMESTAMP时间戳。范围是1970-01-0
8、1 00:00:00到2037年。TIMESTAMP列用于INSERT或UPDATE操作时记录日期和时间。如果你不分配一个值,表中的第一个TIMESTAMP列自动设置为最近操作的日期和时间。也可以通过分配一个NULL值,将TIMESTAMP列设置为当前的日期和时间。TIMESTAMP值返回后显示为YYYY-MM-DD HH:MM:SS格式的字符串,显示宽度固定为19个字符。如果想要获得数字值,应在TIMESTAMP 列添加+0。数据库DDL The theoryThe theory OFOF Relation databaseRelation databaseVience Yin|Fayea
9、Studio|Friday,August 24,2009日期和时间类型概述TIME时间。范围是-838:59:59到838:59:59。MySQL以HH:MM:SS格式显示TIME值,但允许使用字符串或数字为TIME列分配值。YEAR两位或四位格式的年。默认是四位格式。在四位格式中,允许的值是1901到2155和0000。在两位格式中,允许的值是70到69,表示从1970年到2069年。MySQL以YYYY 格式显示YEAR值,但允许使用字符串或数字为YEAR列分配值。数据库DDL The theoryThe theory OFOF Relation databaseRelation data
10、baseVience Yin|Fayea Studio|Friday,August 24,2009常见字符串类型CHAR列的长度固定为创建表时声明的长度。长度可以为从0到255的任何值。当保存CHAR值时,在它们的右边填充空格以达到指定的长度。当检索到CHAR值时,尾部的空格被删除掉。在存储或检索过程中不进行大小写转换。VARCHAR列中的值为可变长字符串。长度可以指定为0到65,535之间的值。(VARCHAR的最大有效长度由最大行大小和使用的字符集确定。整体最大长度是65,532字节)。VARCHAR值保存时不进行填充。当值保存和检索时尾部的空格仍保留,符合标准SQL。如果分配给CHAR或
11、VARCHAR列的值超过列的最大长度,则对值进行裁剪以使其适合。数据库DDL The theoryThe theory OFOF Relation databaseRelation databaseVience Yin|Fayea Studio|Friday,August 24,2009常见字符串类型BINARY和VARBINARY类似于CHAR和VARCHAR,不同的是它们包含二进制字符串而不要非二进制字符串。也就是说,它们包含字节字符串而不是字符字符串。这说明它们没有字符集,并且排序和比较基于列值字节的数值值。BINARY和VARBINARY允许的最大长度一样,如同CHAR和VARCHAR
12、,不同的是BINARY和VARBINARY的长度是字节长度而不是字符长度。数据库DDL The theoryThe theory OFOF Relation databaseRelation databaseVience Yin|Fayea Studio|Friday,August 24,2009常见字符串类型BLOB和TEXTBLOB是一个二进制大对象,可以容纳可变数量的数据。有4种BLOB类型:TINYBLOB、BLOB、MEDIUMBLOB和LONGBLOB。它们只是可容纳值的最大长度不同。有4种TEXT类型:TINYTEXT、TEXT、MEDIUMTEXT和LONGTEXT。这些对应4
13、种BLOB类型,对应不同的最大长度和存储需求。数据库DDL The theoryThe theory OFOF Relation databaseRelation databaseVience Yin|Fayea Studio|Friday,August 24,2009对于数值类型的域整数由需要存储数据的范围来决定数据类型固定长度的整数型数据可以使用固定长度的文本数据来代替,特别是大于10位的数字可以考虑使用文本对于候选码而言,尽量的使用数值类型,用以提高数据查询速度带小数的数据使用浮点或双精度数据类型存储根据需要存储数据的长度(整数位+小数位)来设定数据存储长度数据库DDL The theo
14、ryThe theory OFOF Relation databaseRelation databaseVience Yin|Fayea Studio|Friday,August 24,2009整数类型的域数据类型选择以 TINYINT 为例,其使用场景针对很小的整数。带符号的范围是-128到127。无符号的范围是0到255。0,1,2 0,1,2,3,4,5,6,7,8,9 0,1,2,3,4,5,6,7,8,9 存储2位数的数字,(0-99),则完全满足要求。如果需要存储3位数,则需要更大取值范围的 SMALLINT数据库DDL The theoryThe theory OFOF Rela
15、tion databaseRelation databaseVience Yin|Fayea Studio|Friday,August 24,2009文本类型的域数据类型选择以中国各民族名称的罗马字母拼写法和代码 GB/T 3304-1991数据表为例。同时使用了 CHAR 和 VARCHAR 数据类型,分别针对固定长度的文本和用于可变长度的文本存储。民族代码民族简码拉丁名称民族01HAHan汉族02MGMongol蒙古族03HUHui回族04ZATibetan藏族05UGUygur维吾尔族FF-未填固定长度文本民族代码 CHAR(2)NOT NULL民族简码 CHAR(2)NOT NULL可
16、变长度文本拉丁名称 VARCHAR(24)民族名称 VARCHAR(12)NOT NULL数据库DDL The theoryThe theory OFOF Relation databaseRelation databaseVience Yin|Fayea Studio|Friday,August 24,2009定义数据表(关系模型)语法实例CREATE TABLE t_nation(nation_id char(2)NOT NULL COMMENT 民族代码,nation_code char(2)NOT NULL COMMENT 民族简码,nation_symbols varchar(24)
17、DEFAULT NULL COMMENT 民族罗马字母,nation_name varchar(12)NOT NULL COMMENT 民族名称,PRIMARY KEY(nation_id)ENGINE=InnoDB DEFAULT CHARSET=gbk COMMENT=GB/T3304-1991 中国各民族名称的罗马字母拼写法和代码数据库DDL The theoryThe theory OFOF Relation databaseRelation databaseVience Yin|Fayea Studio|Friday,August 24,2009定义数据表(关系模型)语法结构CREA
18、TE TABLE tableName(columnName columnType comment PRIMARY KEY(columnName)ENGINE=storageEngineType DEFAULT CHARSET=charSet comment数据库DDL The theoryThe theory OFOF Relation databaseRelation databaseVience Yin|Fayea Studio|Friday,August 24,2009关系模型向数据库对象转化过程例如当前的关系模式 学生(学号,姓名,性别,年纪,班级代码)转化为数据库对象第一步 命名数据
19、表使用 t_student 作为关系模型的数据表对象名称使用 t_ 前缀,表示当前数据库对象是一个数据表 TABLE使用全小写的英文字母,避免数据库操作时对于 Unix 操作系统大小写对象混淆使用 student 单词,尽量清楚的表述当前数据表存储对象数据库DDL The theoryThe theory OFOF Relation databaseRelation databaseVience Yin|Fayea Studio|Friday,August 24,2009关系模型向数据库对象转化过程例如当前的关系模式 学生(学号,姓名,性别,年纪,班级代码)转化为数据库对象第二步 根据关系中的
20、各个属性取值范围,设定数据表字段学号 属性对应到数据表字段 stu_id int 属性的取值范围(属性的域):8位数字 存储方式可以使用固定长度文本和整数类型来存储,如果选择文本方式则使用 CHAR(8)如果选择整数类型,则要保证能够完整存储8个数字。显然 MEDIUMINT 带符号的范围是-8388608到8388607,不能够满足存储要求。需要使用 INT 类型来存储。数据库DDL The theoryThe theory OFOF Relation databaseRelation databaseVience Yin|Fayea Studio|Friday,August 24,2009
21、关系模型向数据库对象转化过程例如当前的关系模式 学生(学号,姓名,性别,年纪,班级代码)转化为数据库对象姓名 属性对应到数据表字段 stu_name varchar(24)属性的取值范围(属性的域):不定长文本存储方式使用可变长度的文本来存储。预计姓名最长使用12个中文字符,也就是24个英文字符长度。性别 属性对应到数据库字段 stu_sex tinyint属性的取值范围(属性的域):男 或女使用 tinyint 字段来存储性别信息。其中 1 代表性别男 2 代表性别女数据库DDL The theoryThe theory OFOF Relation databaseRelation data
22、baseVience Yin|Fayea Studio|Friday,August 24,2009关系模型向数据库对象转化过程DDL翻译结果CREATE TABLE t_student(stu_id int NOT NULL COMMENT 学号,stu_name varchar(24)NOT NULL COMMENT 姓名,stu_sex tinyint NOT NULL DEFAULT 1 COMMENT 性别,stu_age tinyint NOT NULL COMMENT 年龄,class_id bigint NOT NULL,PRIMARY KEY(stu_id)ENGINE=Inn
23、oDB DEFAULT CHARSET=gbk COMMENT=学生基本信息表数据库DDL The theoryThe theory OFOF Relation databaseRelation databaseVience Yin|Fayea Studio|Friday,August 24,2009删除数据表(关系模型)语法实例DROP TABLE t_nation;DROP TABLE IF EXISTS t_nation;语法结构DROP TABLE(IF EXISTS)tableName数据库DDL The theoryThe theory OFOF Relation database
24、Relation databaseVience Yin|Fayea Studio|Friday,August 24,2009修改数据表(关系模型)语法结构ALTER TABLE tableNameADD COLUMN columnName columnType comment MODIFY COLUMN columnName columnType commentDROP COLUMN columnNameADD PRIMARY KEY(columnName)DROP PRIMARY KEY数据库DDL The theoryThe theory OFOF Relation databaseRel
25、ation databaseVience Yin|Fayea Studio|Friday,August 24,2009修改数据表 添加一个列语法实例ALTER TABLE t_student ADD COLUMN stu_name_was varchar(24)NOT NULL COMMENT 曾用名 AFTER stu_name语义作用解释:向 t_student 表增加一个列,列名为 stu_name_was,类型为可变长度的文本,最大存储数据长度24个字符,要求此列不能为空值,使用“曾用名”作为添加列的备注。新增加的列的位置,紧靠着 stu_name 这个列后面。数据库DDL The t
26、heoryThe theory OFOF Relation databaseRelation databaseVience Yin|Fayea Studio|Friday,August 24,2009修改数据表 修改一个列语法实例ALTER TABLE t_student MODIFY COLUMN stu_name_was varchar(24)COMMENT 曾用名 AFTER stu_age语义作用解释:修改 t_student 表中列名为 stu_name_was 的列,修改后类型为可变长度的文本,最大存储数据长度24个字符,此列可以为空值,使用“曾用名”作为添加列的备注。并修改列在表
27、中的顺序,紧靠着 stu_age 这个列后面。数据库DDL The theoryThe theory OFOF Relation databaseRelation databaseVience Yin|Fayea Studio|Friday,August 24,2009修改数据表 删除一个列语法实例ALTER TABLE t_student DROP COLUMN stu_name_was语义作用解释:删除 t_student 表中列名为 stu_name_was 的列。数据库DDL The theoryThe theory OFOF Relation databaseRelation dat
28、abaseVience Yin|Fayea Studio|Friday,August 24,2009修改数据表 定义主键语法实例ALTER TABLE t_student ADD PRIMARY KEY(stu_id)语义作用解释:使用 stu_id 列的值做表 t_student 的主键 数据库DDL The theoryThe theory OFOF Relation databaseRelation databaseVience Yin|Fayea Studio|Friday,August 24,2009修改数据表 删除主键语法实例ALTER TABLE t_student DROP PRIMARY KEY语义作用解释:删除表 t_student 的主键