单击此处母版标题样式,单击此处编辑母版文本样式,第二级,单击此处母版标题样式,单击此处编辑母版文本样式,第二级,*,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,*,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,*,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,*,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,*,单元三,数据库和表的创建与管理,项目知识要点,知识能力目标,学时,3.1,任务,1,创建与管理数据库,3.1.1,创建数据库,3.1.2,管理数据库,3.2,任务,2,创建与管理数据库表,3.2.1,创建数据库表,3.2.2,管理数据库表,3.3,任务,3,图形界面工具创建数据库和表,3.3.1,图形界面工具简介,3.3.2,图形界面工具创建数据库,3.4,综合实例建立,Petstore,数据库表,3.4.1 Petstore,数据库表结构分析,3.4.2,创建,Petstore,数据库与表,【,情境,】,:创建,Petstore,数据库,【,职业岗位,】,:数据库管理员、程序员,【,典型工作任务,】,:学会创建与管理数据库,【,技能要求,】,:,1,、学会命令行方式创建与管理数据库,2,、学会图形界面创建与管理数据库,【,知识要求,】,:,1,、数据库结构,2,、数据库操作的,SQL,语句,2,项目实训三,创建,“,员工管理系统,”,数据库,2,项目知识要点与目标,任务一,创建与管理数据库,数据的物理模型:即指数据的存储结构,如对数据库物理文件、索引文件的组织方式、文件的存取路径,内存的管理,等。物理模型不仅与数据库管理系统有关,还和操作系统甚至硬件有关,物理模型对用户是不可见的。,按关系模型组织的数据表达方式简洁、直观,插入、删除、修改操作方便,而按层次、网状模型组织的数据表达方式复杂,插入、删除、修改操作复杂。因此,关系模型得到了广泛应用,,MySQL,是一个典型的支持关系数据模型的数据库管理系统。,MySQL,数据库模型,在数据库服务器中可以存储多个数据库文件,所以建立数据库时要设定数据库的文件名,每个数据库有惟一的数据库文件名作为与其它数据库区别的标识。,数据库文件:数据库是由相关数据表组成,一个数据库包括多个数据表。数据库文件用于记录数据库中数据表构成的信息。,数据库只能由得到授权的用户访问,这样保证了数据库的安全。,成绩数据库,xscj,网络图书库,bookstore,雇员管理库,bookstore,.,库,MySQL,服务器,数据库,数据库和表,数据库可以看成是一个存储数据对象的容器,这些数据对象包括表、视图、触发器、存储过程等,其中,表是最基本的数据对象,用以存放数据库的数据的。,必须首先创建数据库,然后才能创建数据库的数据对象。,MySQL,可以采用两种方式,创建、操作数据库和数据对象,(,1,)命令行方式,(,2,)图形界面工具方式,数据表,视图,存储,过程,DELIMITER$,CREATE PROCEDURE DELETE_STUDENT(IN XH CHAR(6),BEGIN,创建数据库,MySQL,安装后,系统自动地创建,information_scema,和,MySQL,数据库,,MySQL,把有关数据库的信息存储在这两个数据库中。如果删除了这些数据库,,MySQL,就不能正常工作。,对于用户的数据,需要创建新的数据库来存放。,语法格式:,CREATE DATABASE|SCHEMA IF NOT EXISTS,数据库名,DEFAULT CHARACTER SET,字符集名,|DEFAULT COLLATE,校对规则名,说明:语句中,“,”,内为可选项。,|,表示二选一。,创建数据库,命令行方式创建数据库,在,SQL,语言创建数据库命令,create database,中,如果省略语句中,“,”,中的所有可选项,其结构形式如下:,mysqlcreate database,name,;,name,表示被创建数据库名,数据库名必须符合以下规则:,数据库名必须唯一;,名称内不能含有,“,/,”,及,“,.,”,等非法字符;,最大不能超过,64,字节。,【,例,3.1】,创建一个名为,Bookstore,的数据库。,CREATE DATABASE Bookstore;,创建数据库时使用,IF NOT EXISTS,如果在服务器已有,test1,数据库的情况下,再创建一个名为,test1,的数据库。,因为,MySQL,不允许两个数据库使用相同的名字,所以会出错。,使用,IF NOT EXISTS,从句可以不显示错误信息,例如:,create database,IF NOT EXISTS,test1;,为了表达问题简单,在以后的示例中单独描述命令而不需要界面结果时,在命令前省略,“,mysql,”,提示符。,注意:在,MySQL,中,每一条,SQL,语句都以,“,;,”,作为结束标志。,因为,MySQL,服务器中有多个数据库,可以使用,USE,命令可指定当前数据库。,语法格式:,USE,db_name,;,说明:这个语句也可以用来从一个数据库,“,跳转,”,到另一个数据库,在用,CREATE DATABASE,语句创建了数据库之后,该数据库不会自动成为当前数据库,需要用这条,USE,语句来指定。,【,例,】,将数据库,test1,设置为当前数据库。,Use test1,use,命令后直接跟数据库名,然后按下回车键即完成设定过程,使用这个命令之后,所有,SQL,命令都会应用于该数据库,这是几个,少数不需要分号结尾,的命令。,打开数据库,MySQL,中的字符集和校对规则,字符集,是一套符号和编码。,校对规则,是在字符集内用于比较字符的一套规则。,ASCII,字符集中四个字母:,A,、,B,、,a,、,b,,每个字母赋予一个数值:,A,=65,,,B,=66,,,a,=113,,,b,=114,。字母,A,是一个符号,数字,65,是,A,的编码,字母和它们的编码组合在一起是一个字符集。,假设我们希望比较两个字符串的值:,A,和,b,。比较的最简单的方法是查找编码:,A,为,65,,,b,为,114,。因为,65,小于,114,,我们可以说,A,小于,b,。我们做的仅仅是在我们的,字符集,上应用了一个,校对规则,。,MySQL,字符集和校对规则应用,MySQL,支持,30,多种字符集的,70,多种校对规则。在同一台服务器、同一个数据库或甚至在同一个表中使用不同字符集或校对规则来混合字符串。,两个不同的字符集不能有相同的校对规则。,每个字符集有一个默认校对规则。,例如,,latin1,默认校对规则是,latin1_swedish_ci,,而,gb2312,默认校对规则是,gb2312_chinese_ci,。,ASCII,码字符集:使用,7,位二进制数来表示所有的大写和小写字母,数字,0,到,9,、标点符号,以及在美式英语中使用的特殊控制字符,GB2312,是中国国家标准的简体中文字符集。,GB2312,收录简化汉字及一般符号、序号、数字、拉丁字母、日文假名、希腊字母、俄文字母、汉语拼音符号、汉语注音字母,共,7445,个图形字符。,【,例,3.2】,创建一个名为,Bookstore,的数据库,采用字符集,gb2312,和校对规则,gb2312_chinese_ci,。,CREATE DATABASE Bookstore,DEFAULT CHARACTER SET gb2312,COLLATE gb2312_chinese_ci;,修改数据库,数据库创建后,如果需要修改数据库的参数,可以使用,ALTER DATABASE,命令。,语法格式:,ALTER DATABASE|SCHEMA,数据库名,DEFAULT CHARACTER SET,字符集名,|DEFAULT COLLATE,校对规则名,【,例,3.3】,修改数据库,Pet,的默认字符集为,latin1,,校对规则为,latin1_swedish_ci,。,ALTER DATABASE Pet,DEFAULT CHARACTER SET latin1,DEFAULT COLLATE latin1_swedish_ci;,删除和显示数据库,已经创建的数据库需要删除,使用,DROP DATABASE,命令。,语法格式:,DROP DATABASE IF EXISTS,数据库名,修改数据库,test2,命令如下:,DROP DATABASE,test2,;,显示服务器中已建立的数据库,,使用,SHOW DATABASES,命令。,语法格式:,SHOW DATABASES,;,任务二,数据库表的操作,图书编号,书名,出版时间,单价,数量,ISBN7115126836/tp.4235,跟我学网页设计,2009-09-10,23.50,12,ISBN730205701x/tp.3361,网页编程技术,2008-10-01,54.15,23,ISBN7301063423/tp.0731,数据库应用技术,2007-06-10,33.23,31,图书目录表的表结构分析,字段名,图书编号,书名,出版时间,单价,数量,字段值的,表示方法,用,20,个字,符编号,用,40,个字,符表示,yyyy-mm-dd,表示,用带有,2,位小数,的,5,位数字表示,用,5,位整,数表示,数据类型,Char(20),Varchar(40),date,Float(5),Int(5),数据类型,(,1,)数值类型,MySQL,支持所有标准,SQL,数值数据类型。,严格数值数据类型:,INTEGER,或,INT,,,SMALLINT,,,DECIMAL,或,DEC,,,NUMERIC,近似数值数据类型:,FLOAT,,,REAL,,,PRECISION,MySQL,支持选择在该类型关键字后面的括号内指定整数值的显示宽度,(,例如,,INT(4),。,对于浮点列类型,在,MySQL,中单精度值使用,4,个字节,双精度值使用,8,个字节。,MySQL,允许使用,FLOAT(M,D),或,REAL(M,D),或,DOUBLE PRECISION(M,D),格式。,“,(M,D),”,表示该值一共显示,M,位整数,其中,D,位位于小数点后面。例如,定义为,FLOAT(7,4),的一个列可以显示为,-999.9999,。,MySQL,保存值时进行四舍五入,因此如果在,FLOAT(7,4),列内插入,999.00009,,近似结果是,999.0001,。,字符串类型-,CHAR,(,2,)字符串类型:,字符串类型的数据主要是由字母、汉字、数字符号、特殊符号构成的数据对象。按照字符个数多少的不同分为以下几类:,CHAR,:,列的长度固定为创建表时声明的长度。长度可以为从,0,到,255,的任何值。当保存,CHAR,值时,在它们的右边填充空格以达到指定的长度。,例如,在学生情况表中,如果设定,“,name char(8),”,,表示,“,name,”,是,8,个字符长度的字符串,可以做赋值引用即:,name=,张三,这里,name,的值包括,8,个字符,其中,2,个汉字(按照,4,个字符处理)和,4,个空格。,name,右侧会有若干个空格占位。这样浪费了磁盘的存储空间。,字符串类型-,VARCHAR,VARCHAR,:,列中的值为可变长字符串。长度可以指定为,0,到,65,535,之间的值。,(VARCHAR,的最大有效长度由最大行大小和使用的字符集确定。整体最大长度是,65,532,字节)。同,CHAR,对比,,VARCHAR,值保存时只保存需要的字符数。,例如,在学生情况表中,如果设定,“,name varchar(8),”,,可以做赋值引用即:,name=,张三,这里姓名的值包括,5,个字符,其中,2,个汉字(按照,4,个