数据库原理与应用快速入门 课件 第2章 创建数据库和数据表_第1页
数据库原理与应用快速入门 课件 第2章 创建数据库和数据表_第2页
数据库原理与应用快速入门 课件 第2章 创建数据库和数据表_第3页
数据库原理与应用快速入门 课件 第2章 创建数据库和数据表_第4页
数据库原理与应用快速入门 课件 第2章 创建数据库和数据表_第5页
已阅读5页,还剩86页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

数据库原理与应用快速入门2.1创建数据库2.2创建数据表2.3关于数据库引擎第2章

创建数据库和数据表2.1.1了解系统默认数据库2.1.2创建用户数据库2.1创建数据库2.1.1了解系统默认数据库要保存数据,首先需要将数据库建立起来,就像要存放图书,首先要搭建书库一样。从物理上看,通常一个数据库对应磁盘系统上的若干个文件。MySQL安装完成后,系统中已经存在了几个默认数据库,可以使用以下命令进行查看:

SHOWDATABASES;2.1.1了解系统默认数据库information_schema是一个信息数据库,它保存着关于MySQL服务器所维护的所有其他数据库的信息。information_schema数据库提供了访问数据库元数据的方式。元数据是关于数据的数据,如数据库名或表名、列的数据类型、访问权限等。mysql数据库主要负责存储数据库的用户、权限设置、关键字等MySQL自己需要使用的控制和管理信息。2.1.1了解系统默认数据库performance_schema数据库主要用于收集数据库服务器性能参数信息。sys数据库所有的数据源来自performance_schema数据库,其目标是把performance_schema的复杂度降低,让数据库管理员能更好地阅读这个数据库里的内容,以便更快了解数据库的运行情况。

2.1.1了解系统默认数据库sakila数据库是一个样例数据库,包含23张数据表,是MySQL官方提供的学习MySQL的素材。world数据库也是一个样例数据库,包含3张数据表。2.1.2创建用户数据库如果用户需要创建新的数据库以保存自己的应用数据,可使用以下格式的命令:

CREATEDATABASE数据库名;其中,数据库名是要创建的用户数据库的名称,注意该名称不能与系统中已经存在的数据库同名。2.1.2创建用户数据库【例2-1】创建一个用于学生管理的数据库student。操作命令如下,执行结果如图1所示:

CREATEDATABASEstudent;

图1创建student数据库2.1.2创建用户数据库当我们使用CREATEDATABASE语句创建一个用户数据库时,在文件系统中,MySQL为每个数据库在其对应的数据目录下创建一个与数据库同名的子目录,用于存储该数据库的相关数据。如果不作修改,MySQL默认的数据目录位于C:\ProgramData\MySQL\MySQLServer8.0\Data下。2.1.2创建用户数据库因MySQL系统中存在多个数据库,用户数据库创建完成后,如果要使用该数据库,需执行以下格式的命令选择它:

USE数据库名;2.1.2创建用户数据库【例2-2】选择例2-1中创建的student数据库。操作命令如下,执行结果如图2所示:

USEstudent;图2选择student数据库2.1.2创建用户数据库如果用户数据库已完成使命不需要再保留,可以将其从系统中删除。删除数据库后,其中保存的数据将一并删除,为其分配的磁盘存储空间将被回收。删除用户数据库使用以下格式的命令:

DROPDATABASE数据库名;2.1.2创建用户数据库【例2-3】删除例2-1中创建的student数据库。操作命令如下,执行结果如图3所示:

DROPDATABASEstudent;图3删除student数据库谢谢!数据库原理与应用快速入门2.1创建数据库2.2创建数据表2.3关于数据库引擎第2章

创建数据库和数据表2.2.12.2.2了解字段的数据类型2.2.3创建表操作2.2.4查看和修改表2.2.5删除数据表2.2.6向表添加数据2.2.7注意数据的规范了解表的结构和特点2.2创建数据表2.2.1了解表的结构和特点目前,主流的数据库管理系统采用二维表格的形式来保存数据。表2.1students表stuIdstuNameclasssexbirthtelNoEmailcomment210101001李勇软件技术男2003-9-1028885692Liyong@21插班生210101002刘晨软件技术女2003-8-622285568Liuchen@126.com

210102003王晓敏计算机应用女2003-5-3022324912Wangxm@21

220102001张丽丽电子商务女2004-1-225661120Zhangli@126.com

220102002陈耀辉电子商务男2004-7-1622883322Chenhui@21转校生2.2.1了解表的结构和特点这样的二维表格在数据库中又被称为“关系”。其中,表中的一行又称为关系中的一条记录,表中的一列又称为关系中的一个字段。在数据库中,表2.2所示的术语是等价的。以关系的形式存储数据的数据库系统称为关系数据库。表2.2等价的术语表(Table)行(Row)列(Column)关系(Relation)记录(Record)字段(Field)2.2.1了解表的结构和特点在一个关系中,字段的名称不能重复,字段排列的先后顺序无关紧要,记录排列的先后顺序也无关紧要,但任意两条记录不能重复。2.2.1了解表的结构和特点生活中我们常见如表2.3所示的表格结构,需要注意,这样的表格不被数据库所接受,不是关系。这是因为,关系要求每个单元格只能存放单个值,而在表2.3中,一个单元格“family”被分割成多个子单元,用于存放多个值。表2.3family表stuIdstuNamesexfamilyfathermotherbrothersister210101001李勇男李国平王晓丽李伟李珊210101002刘晨女刘昭林李玉萍

刘芳2.2.1了解表的结构和特点在关系中,同一字段下的数据要求其数据类型一致,所表示的语义也要一致。如表2.1所示的关系“students”中,字段“sex”下的数据,其类型是字符串,所表示的语义是学生的性别,字段“birth”下的数据,其类型是日期,表示的语义是学生的生日,不能是其他的含义。2.2.1了解表的结构和特点为了表述的方便,我们用表名(字段名1,字段名2,……)的形式来描述表的结构。表2.1所示的students表可以描述为:

students(stuId,stuName,class,sex,birth,telNo,Email,comment)2.2.2了解字段的数据类型本节介绍MySQL数据库中常用的数据类型。2.2.2了解字段的数据类型1.整数类型整数类型所表示的数据是整数,根据占用字节长度的不同,MySQL整数类型包含tinyint、smallint、mediumint、int/integer、bigint几种。2.2.2了解字段的数据类型1.整数类型表2.4整数类型详细信息类型存储字节数有符号数取值范围无符号数取值范围tinyint1-128~1270~255smallint2-32768~327670~65535mediumint3-8388608~83886070~16777215int/integer4-21474483648~21474836470~4294967295bigint8-9223372036854775808~92233720368547758070~184467440737095516152.2.2了解字段的数据类型1.整数类型tinyint型整数数据的默认显示宽度为4位数字,smallint型整数数据的默认显示宽度为6位数字,mediumint型整数数据的默认显示宽度为9位数字,int和integer类型字节数和取值范围相同,使用上是一样的,数据默认显示宽度为11位数字,bigint型整数数据的默认显示宽度为20位数字。显示宽度与数据类型的取值范围无关,只是指定MySQL最大可以显示的数字个数,数字个数小于显示宽度时以空格补齐,大于显示宽度时,只要没有超过该数据类型的取值范围,依然能够显示出来。2.2.2了解字段的数据类型1.整数类型在实际应用中,如果关系的某一字段保存的数据是整数,读者应该预先估计该列数据可能的取值范围,将该范围与以上整型类型的取值范围进行比较,选择范围最接近又没有超出的那一种类型,这样做可以节省数据的存储空间。2.2.2了解字段的数据类型2.小数类型如果数据是小数,则需要用小数类型来表示。MySQL中的小数类型包含浮点数和定点数两类。2.2.2了解字段的数据类型2.小数类型浮点数类型包含float和double两种,其中,float是单精度浮点数,double是双精度浮点数。表2.5浮点数类型详细信息类型存储字节数有符号数取值范围无符号数取值范围float4-3.402823466E+38~-1.175494351E-380和1.175494351E-38~3.402823466E+38double8-1.7976931348623157E+308~-2.2250738585072014E-3080和2.2250738585072014E-308~1.7976931348623157E+3082.2.2了解字段的数据类型2.小数类型定点数类型为decimal型,其取值范围与浮点数double型相同。但decimal型在使用时,需指定其精度和小数数位,使用格式为:

decimal(p,d)其中,参数p代表精度,即数据的最大总位数,d代表数据的最大小数位数。p的取值范围为1~65,d的取值范围为0~30并且d<=p。p的默认值为10,d的默认值为0。decimal型数据存储的字节数为p+2。2.2.2了解字段的数据类型2.小数类型在MySQL中,定点数以字符串形式存储,提供了更高的精度,在对数据精度要求比较高的情况下(如表示货币、科学数据时),优先使用decimal类型。2.2.2了解字段的数据类型3.日期和时间类型如果需要在数据库中存储日期和时间数据,则需要使用日期和时间类型。MySQL中日期和时间类型包括year、date、time、datetime、timestamp几种。表2.6日期和时间类型详细信息类型存储字节数取值范围使用格式year11901~2155YYYYdate31000-01-01~9999-12-31YYYY-MM-DDtime3-838:59:59~838:59:59HH:MM:SSdatetime81000-01-0100:00:00~9999-12-3123:59:59YYYY-MM-DDHH:MM:SStimestamp41970-01-0100:00:01UTC~2038-01-1903:14:07UTCYYYY-MM-DDHH:MM:SS2.2.2了解字段的数据类型3.日期和时间类型在实际使用中,有一些需要用日期和时间来表示的数据,如人的出生日期、网上购物的下单日期、图书馆借书的借阅日期等,读者可根据需要表示的日期和时间的范围和格式,合理选择以上类型。如果插入的数据,其值超过了上表所示的取值范围,系统会报错并将零值插入数据库。2.2.2了解字段的数据类型3.日期和时间类型这里对time类型的取值范围做一些说明。一天只有24个小时,而time类型取值范围为-838:59:59~838:59:59,小时部分为何如此之大呢?这是因为,time类型不仅可以表示一天内的时间,还可以表示某个事件过去的时间,或者两个事件之间的时间间隔,这样超过24小时就很正常了。timestamp类型取值范围中的UTC代表世界标准时间,该类型数据在存储时是以世界标准时间格式存储的。2.2.2了解字段的数据类型4.字符串类型字符串类型是数据库中最常用的数据类型,用来存储各种文字、数字符号、特殊符号,也可以存储图片和声音的二进制数据。MySQL中字符串类型包括char、varchar、tinytext、text、mediumtext、longtext、enum、set类型等。字符串类型的数据在使用时需要加上一对单引号括起来。2.2.2了解字段的数据类型4.字符串类型字符串类型是数据库中最常用的数据类型,用来存储各种文字、数字符号、特殊符号,也可以存储图片和声音的二进制数据。MySQL中字符串类型包括char、varchar、tinytext、text、mediumtext、longtext、enum、set类型等。字符串类型的数据在使用时需要加上一对单引号括起来。2.2.2了解字段的数据类型4.字符串类型表2.7字符串类型详细信息类型说明取值范围char(n)表示长度为n个字节的非二进制固定长度字符串。n的值在1~255之间。varchar(n)表示长度为n个字节的非二进制可变长度字符串。n的值在1~65535之间。tinytext表示非常短的文本。0~255字节text表示文本。0~65535字节mediumtext表示中等长度的文本。0~16777215字节longtext表示长文本。0~4294967295字节enum表示枚举类型。其取值列表最多可以有65535个值。set表示字符串,其值可以取列表中的一个或多个。其值最多能有64个元素构成的组合。2.2.2了解字段的数据类型4.字符串类型char(n)是固定长度,长度为n的字符串,如果存储的字符串长度小于n,其后会以空格补充,直至长度达到n。varchar(n)是可变长度字符串,系统会按字符串的实际长度进行存储,只要长度没有超过n。2.2.2了解字段的数据类型4.字符串类型tinytext、text、mediumtext、longtext类型属于特殊的字符串类型,用于保存文章、评论、简历、新闻等内容,它们允许表示的字符串长度依次增大,实际使用时,读者可根据需求进行适当选取。2.2.2了解字段的数据类型4.字符串类型enum类型表示枚举类型,使用时要以列表的形式指定其取值范围,格式如下:

字段名enum('值1','值2',...'值n')其中,字段名表示要定义的字段,值n表示列表中的第n个值,最多可以有65535个值。enum类型的字段在取值时只能从列表中选取一个值。列表中的每个值对应一个编号,分别是1,2,...n,系统在存储enum类型字段下的数据时,实际存储的就是对应的编号。enum类型字段下如果没有填充数据,系统将以默认值填充。如果该字段不允许取空值(NULL),则默认值为列表中的第一个值;如果该字段允许取空值(NULL),则默认值为空值。2.2.2了解字段的数据类型4.字符串类型set类型字段的定义格式与enum类型相似,要以列表的形式指定其取值范围,格式如下:字段名set('值1','值2',...'值n')其中,字段名表示要定义的字段,值n表示列表中的第n个值。与enum类型不同的是,字段在取值时可以从列表中选取一个或多个值,最多可以是64个值构成的组合。取多个值时,值之间用逗号分隔。2.2.2了解字段的数据类型5.二进制类型二进制类型用于存储二进制字符串。MySQL中二进制类型包括bit,binary,varbinary,tinyblob,blob,mediumblob,longblob几种。2.2.2了解字段的数据类型5.二进制类型表2.8二进制类型详细信息类型说明取值范围bit(n)表示长度为n个字节的二进制位字段值。n的值在1~64之间,默认值为1。binary(n)表示长度为n个字节的二进制固定长度字符串。n的值在0~255之间。varbinary(n)表示长度为n个字节的二进制可变长度字符串。n的值在1~65535之间。tinyblob表示非常小的blob。0~255Bblob表示小的blob。0~65535Bmediumblob表示中等大小的blob。0~16777215Blongblob表示非常大的blob。0~4294967295B2.2.2了解字段的数据类型5.二进制类型bit类型是位字段类型。如果bit(n)存储的值长度小于n,值的左边用0填充。如果以二进制数保存十进制数13,可以定义为bit(4),因为13的二进制数为1101,正好可以存下。2.2.2了解字段的数据类型5.二进制类型binary和varbinary与char和varchar类型有点类似,不同的是binary和varbinary存储的是二进制的字符串,而非字符型字符串。也就是说,binary和varbinary没有字符集的概念,对其排序和比较都是按照二进制值进行对比。tinyblob,blob,mediumblob,longblob类型主要用于以二进制字符串形式存储图片、音频等信息。它们允许表示的二进制字符串长度依次增大,实际使用时,读者可根据需求进行适当选取。2.2.2了解字段的数据类型了解了MySQL中数据类型,在实际使用中,应根据需要表示的数据的情况,在创建表时,要为表中的字段选择合适的数据类型。确定字段数据类型的重要原则是:根据该字段将进行怎样的操作,以及数据的实质意义。确定字段大小的重要原则是:根据该字段的数据最有可能出现的最大值来确定。2.2.2了解字段的数据类型【例2-4】分析表2.1students数据表的结构和数据,确定该表各字段的数据类型。从表2.1可知,students数据表包含8个字段,分别表示学生的学号、姓名、班级、性别、出生日期、联系电话、Email和备注信息。根据数据的表现形式和长度,确定字段的数据类型如表2.10所示。表2.10students表字段的数据类型字段名数据类型stuIdchar(9)stuNamevarchar(10)classvarchar(30)sexenumbirthdatetelNovarchar(15)Emailvarchar(50)commentvarchar(100)2.2.3创建表操作在关系数据库中数据是保存在表里面的,因此,要将数据存入数据库,就应该首先建立数据表。创建表之前,要使用“USE数据库名”命令选择数据库,指定将表保存在哪个数据库中。2.2.3创建表操作创建表的语法格式如下:CREATETABLE表名(列名1数据类型[列级约束条件][默认值],列名2数据类型[列级约束条件][默认值],......[表级约束条件]);2.2.3创建表操作【例2-5】在数据库student中创建数据表students,建表命令如下:2.2.4查看和修改表数据表创建完成后,可以通过DESCRIBE语句来查看表的结构,这对于用户而言非常方便。因为数据库是一个多用户系统,并非所有数据表都是由当前用户创建的,要查看和使用其他用户创建的表,就必须首先了解表的结构。2.2.4查看和修改表DESCRIBE语句的语法格式如下:

DESCRIBE表名;也可写作:

DES表名;2.2.4查看和修改表【例2-6】使用DESCRIBE语句查看数据表students的结构。2.2.4查看和修改表如果要调整已经存在于数据库中的表的结构,则需要使用修改表命令。修改表包括修改表名、修改字段名和数据类型、增加字段、删除字段等。2.2.4查看和修改表1.修改表名修改表名的命令语法结构如下:

ALTERTABLE旧表名RENAME[TO]新表名;其中,参数TO是可选的,写与不写不影响命令的执行。修改表名时需注意,同一个数据库中每个表的名称应该是唯一的,不能出现重名的情况。2.2.4查看和修改表【例2-7】将student数据库中的sc数据表名称修改为stu_cor。2.2.4查看和修改表2.修改字段名和数据类型修改字段名的命令语法结构如下:ALTERTABLE表名CHANGE旧字段名新字段名新数据类型;其中,旧字段名和新字段名分别表示修改前后的字段名称,新数据类型表示字段名修改后,该字段的数据类型。新数据类型可以和原来该字段的数据类型一样,但此处不可以省略。2.2.4查看和修改表【例2-8】修改student数据库中的数据表students,将字段birth名称修改为birthday,数据类型保持不变。2.2.4查看和修改表如果不需要修改字段名,仅对字段的数据类型进行修改,可使用如下命令:

ALTERTABLE表名MODIFY字段名数据类型;2.2.4查看和修改表【例2-9】修改student数据库中的数据表students,将字段comment的数据类型修改为varchar(80)。2.2.4查看和修改表在对字段的数据类型进行修改时需要注意,因不同类型和长度的数据在数据库中存储的方式不同,如果表中已保存有数据,修改字段的数据类型会对现有的数据存储造成影响。应尽量避免对已有数据的表进行字段数据类型的修改。2.2.4查看和修改表3.增加字段如果需要在已经存在的数据表中增加字段,可使用以下格式的命令:

ALTERTABLE表名ADD新字段名数据类型

[约束条件][FIRST|AFTER已存在的字段名]其中,新字段名表示要增加的字段名称,其后的数据类型指定该字段的数据类型;约束条件是可选的,将在下一节进行讲解;FIRST表示新增加的字段位于表中的第一列,AFTER表示将新字段放在已存在的指定字段后面,这两项也是可选的,如果不指定位置,新增加的字段将位于表的最后一列。2.2.4查看和修改表【例2-10】对student数据库中的数据表students增加一个字段school,表示学生所在的学校,数据类型为varchar(40),该字段位于stuName列之后。2.2.4查看和修改表4.删除字段删除表中字段的命令语法格式如下:

ALTERTABLE表名DROP字段名;2.2.4查看和修改表【例2-11】将例2-10中增加的字段school从数据表students中删除。2.2.5删除数据表如果数据表不需要再保存在数据库中,可以将它删除。删除表时,表结构的定义和表中的数据将一并删除。删除数据表的命令语法结构如下:

DROPTABLE表名;2.2.5删除数据表【例2-12】将student数据库中的students数据表删除。2.2.6向表中添加数据为方便后续操作,我们首先使用MySQL图形化工具Navicat向数据库中添加部分数据。2.2.6向表中添加数据【例2-13】使用Navicat连接MySQL,向student数据库中的三张数据表students、courses、sc分别添加表2.1、2.11、2.12中的数据。2.2.6向表中添加数据【例2-13】使用Navicat连接MySQL,向student数据库中的三张数据表students、courses、sc分别添加表2.1、2.11、2.12中的数据。2.2.7注意数据的规范当我们向表中添加数据时,应注意数据的规范性。规范的数据意味着数据符合字段设计的原意。如果数据不规范,会影响查找、统计的结果,甚至造成很严重的后果。2.2.7注意数据的规范1.空值空值是一个微妙但又十分重要的问题。空值,只是一个位置的占用,从数据库内部来说,空值是歧义的,所以空值和任意数据的算术运算,结果都是空值。这一点,在对表进行查询统计时一定要小心。在设计表时,应尽量不允许字段值为空。2.2.7注意数据的规范2.空格及其他空白字符空格不是空值,空格相当于一个英文字母。另外,在ASCII码中,还有其他不可见的空白字符,这些空白字符也都相当于一个英文字母,这和空值是不一样的。2.2.7注意数据的规范3.英文大小写、全角半角对于英文和符号,应规定大小写规则,不应该随意地大写或小写。另外,还要注意全角和半角的问题,不要一会儿用全角,一会儿用半角,建议如无特别需求,只用半角。在后续学习结构化查询语言SQL时读者会发现,SQL只接受半角的符号,如果输入的是全角,则语句执行时会报错。谢谢!数据库原理与应用快速入门2.1创建数据库2.2创建数据表2.3关于数据库引擎第2章

创建数据库和数据表2.3.1查看MySQL支持的存储引擎2.3.2了解常用的存储引擎2.3关于数据库存储引擎2.3.3选择合适的存储引擎2.3关于数据库存储引擎MySQL引入了存储引擎的概念,存储引擎是数据库底层的软件组件。数据库管理系统使用存储引擎进行创建、查询、更新和删除数据操作。MySQL支持多个不同的存储引擎,不同的存储引擎提供不同的数据存储机制、索引技巧、锁定水平等功能。存储引擎是MySQL的核心。用户可以根据实际应用需要来选择使用何种存储引擎,从而提高了MySQL数据库管理系统的使用效率和灵活性。2.3关于数据库存储引擎2.3.1查看MySQL支持的存储引擎MySQL通过SHOWENGINES命令来查看系统支持的存储引擎。2.3.1查看MySQL支持的存储引擎MySQL中创建数据表时,如果没有指定存储引擎,将使用系统默认的存储引擎来存储数据表。

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论