《MySQL数据库技术.ppt》由会员分享,可在线阅读,更多相关《MySQL数据库技术.ppt(37页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、第第5讲讲 MySQL数据操作数据操作 课程:PHPPHP网站开发网站开发温故知新温故知新v知识回顾知识回顾PHP浏览器数据传递和处理。PHP表单和表单元素数据运用。用户注册页面的实现。v本节课知识要点本节课知识要点phpMyAdmin管理使用MySQL数据库。MySQL的增删改查基本SQL语句综合操作。项目导引:企业新闻发布系统数据库 我们思考几个问题,我们思考几个问题,新闻发布系统新闻发布系统中的中的新闻新闻信息存放在什么信息存放在什么地方?用户的账户信息和地方?用户的账户信息和发布的新闻发布的新闻等内容又到哪里去了?这些等内容又到哪里去了?这些内容又以什么形式存放呢?内容又以什么形式存放
2、呢?以上内容按照一定的格式存放在数据库(Data Base)中,数据库就是存放数据的仓库,其可以快速、安全的存储、处理大量的数据。nPHP开发网站开发网站使用使用数据库数据库:PHP可以与MySQL、ACCESS、SQL Server、ORACAL等多种数据库组合使用。nPHP开发最常用的数据库:开发最常用的数据库:在这些数据库中,MySQL是世界是世界上最为流行、开放源码、完全网络化、跨平台的数据库上最为流行、开放源码、完全网络化、跨平台的数据库,能够满足多数中小型企业的需求,绝大多数PHP网站采用MySQL作为网站的数据库。8-1 8-1 数据库概述数据库概述1.1.数据库数据库 数据库是
3、一种专门存储信息和维护信息的容器,严格地说数据库是数据库是一种专门存储信息和维护信息的容器,严格地说数据库是“按按照数据结构来组织、存储和管理信息的仓库照数据结构来组织、存储和管理信息的仓库”。外观上,数据库中的二维表(简称数据库表)和电子表格外观上,数据库中的二维表(简称数据库表)和电子表格ExcelExcel是相同是相同的。数据库表是由列和行构成,的。数据库表是由列和行构成,数据库表中的一列称为一个字段数据库表中的一列称为一个字段,每个字,每个字段用于存储某种数据类型的数据;段用于存储某种数据类型的数据;数据库表中的一行称为一条记录数据库表中的一行称为一条记录,每条,每条记录包含表中的一条
4、详细信息。记录包含表中的一条详细信息。8-1 8-1 数据库概述数据库概述2.2.关系数据库管理系统(关系数据库管理系统(RDBMSRDBMS)关系数据库管理系统(关系数据库管理系统(RDBMSRDBMS或或relational database relational database management systemmanagement system)就是管理关系数据库的软件系统。)就是管理关系数据库的软件系统。关系关系数据库管理系统主要功能就是创建关系数据库,并且在关系数数据库管理系统主要功能就是创建关系数据库,并且在关系数据库中创建各种数据库对象(表、索引、视图、存储过程等)据库中创建
5、各种数据库对象(表、索引、视图、存储过程等)以及维护各个数据库对象。以及维护各个数据库对象。对于初学者而言,关系数据库管理对于初学者而言,关系数据库管理系统最重要的功能莫过于创建数据库、创建数据库表以及完成系统最重要的功能莫过于创建数据库、创建数据库表以及完成数据库表记录的添加、修改、删除和查询等操作。数据库表记录的添加、修改、删除和查询等操作。8-1 8-1 数据库概述数据库概述3.3.结构化查询语言结构化查询语言SQLSQL 结构化查询语言的英文全称是结构化查询语言的英文全称是structured query languagestructured query language,简称,简称S
6、QLSQL。SQLSQL是一种应用广泛的关系数据库语言,用于定义是一种应用广泛的关系数据库语言,用于定义和管理关系数据库中的各种对象(表、索引、视图、存储过程和管理关系数据库中的各种对象(表、索引、视图、存储过程等),也可以用于查询、修改和删除数据库表中的记录。等),也可以用于查询、修改和删除数据库表中的记录。8-2 8-2 数据库的设计数据库的设计0.0.预备预备 数据库的设计一般要从数据库的设计一般要从E-RE-R模型开始,之后的步骤如下:模型开始,之后的步骤如下:1 1为每个实体建立一张表为每个实体建立一张表2 2为每个表选择一个主键(建议添加一个没有实际意义的字为每个表选择一个主键(建
7、议添加一个没有实际意义的字段作为主键)段作为主键)3 3增加外键以表示一对多关系增加外键以表示一对多关系4 4建立新表表示多对多关系建立新表表示多对多关系5 5定义约束条件定义约束条件6 6评价关系的质量,并进行必要的改进(关于范式等知识请评价关系的质量,并进行必要的改进(关于范式等知识请参考其他数据库书籍)参考其他数据库书籍)7 7为每个字段选择合适的数据类型和取值范围为每个字段选择合适的数据类型和取值范围8-2 8-2 数据库的设计数据库的设计1.1.E-RE-R模型模型 E-R E-R(Entity-RelationshipEntity-Relationship)模型即实体)模型即实体-
8、关系模型主要用关系模型主要用于定义数据的存储需求,该模型已经广泛用于关系数据库设计于定义数据的存储需求,该模型已经广泛用于关系数据库设计中。中。E-RE-R模型由实体、属性和关系三个基本要素构成。模型由实体、属性和关系三个基本要素构成。8-2 8-2 数据库的设计数据库的设计2.2.主键(主键(Primary KeyPrimary Key)数据库表要求表中的每一行记录都必须是唯一的,即在同一数据库表要求表中的每一行记录都必须是唯一的,即在同一张表中不允许出现完全相同的两条记录。张表中不允许出现完全相同的两条记录。在设计数据库时,为在设计数据库时,为了保证记录的了保证记录的“唯一性唯一性”,最为
9、普遍、最为推荐的做法是为表,最为普遍、最为推荐的做法是为表定义一个主键(定义一个主键(primary keyprimary key)。)。数据库表中主键有以下两个数据库表中主键有以下两个特征:特征:1 1表的主键可以由一个字段构成,也可以由多个字段构成表的主键可以由一个字段构成,也可以由多个字段构成(这种情况称为复合主键)。(这种情况称为复合主键)。2 2数据库表中主键的值具有唯一性且不能取空值(数据库表中主键的值具有唯一性且不能取空值(NULLNULL),),当数据库表中的主键由多个字段构成时,每个字段的值不能取当数据库表中的主键由多个字段构成时,每个字段的值不能取NULLNULL值。值。8
10、-2 8-2 数据库的设计数据库的设计3.3.实体间的关系与外实体间的关系与外键(键(Foreign KeyForeign Key)班级实体和班主任实体之班级实体和班主任实体之间为一对一关系,班级实体间为一对一关系,班级实体和学生实体之间为一对多关和学生实体之间为一对多关系,学生实体和课程实体之系,学生实体和课程实体之间为多对多关系。间为多对多关系。实体间的实体间的关系可以通过外键来表示。关系可以通过外键来表示。如果表如果表A A中的一个字段中的一个字段a a对应对应于表于表B B的主键的主键b b,则字段,则字段a a称为称为表表A A的外键。此时存储在表的外键。此时存储在表A A中字段中字
11、段a a的值,同时这个字段的值,同时这个字段值也是表值也是表B B主键主键b b的值。的值。8-2 8-2 数据库的设计数据库的设计4.4.约束(约束(constraintconstraint)常用的约束条件有六种:常用的约束条件有六种:主键(主键(primary keyprimary key)约束)约束外键(外键(foreign keyforeign key)约束)约束唯一性(唯一性(uniqueunique)约束)约束默认值(默认值(defaultdefault)约束)约束非空(非空(not NULLnot NULL)约束)约束检查(检查(checkcheck)约束)约束 8.3 数据表设
12、计1.数据表数据表 一个数据库中可以有多个数据表,每个数据表的名称必须是唯一一个数据库中可以有多个数据表,每个数据表的名称必须是唯一的,表中每个字段的名称也必须是唯一的,每个字段都有对应的数据的,表中每个字段的名称也必须是唯一的,每个字段都有对应的数据类型和取值范围。类型和取值范围。二维表中能唯一区分、确定不同记录的属性或属性组合,称为该二维表中能唯一区分、确定不同记录的属性或属性组合,称为该表的主键。主键具有唯一性和非空性。表的主键。主键具有唯一性和非空性。例如:图书编号为图书表的主键,用户编号为用户表的主键。在图书类别表中,typeid(类别编号)字段为主键,在图书表中也有typeid(类
13、别编号)字段,并且与图书类别表中的typeid(类别编号)字段是对应关系。这里我们把typeid(类别编号)字段称为图书类别表的主键,图书表的外键。8.3 数据表设计2.数据类型数据类型(1)数值类型l TINYINT:占1个字节,有符号数字的范围是-128到127,无符号的数字范围是0到255。l SMALLINT:占2个字节,有符号数字的范围是-32768到32767,无符号数字的范围是0到65535。l MEDIUMINT:占3个字节,有符号数字的范围是-8388608到8388607,无符号数字的范围是0到16777215。l INT:占4个字节,有符号数字的范围是-214748364
14、8到2147483647,无符号数字的范围是0到4294967295。l BIGINT:占8个字节,有符号数字的范围是-9223372036854775808到9223372036854775807,无符号数字的范围是0到。8.3 数据表设计l FLOAT(M,D):占4个字节,不能无符号,允许的值是-3.402823466E+38到-1.175494351E-38,0和1.175494351E-38到3.402823466E+38。M是显示宽度,D是小数的位数。l DOUBLE(M,D):占8个字节,不能无符号,允许的值是-1.7976931348623157E+308到-2.2250738
15、585072014E-308、0和2.2250738585072014E-308到1.7976931348623157E+308。M是显示宽度,D是小数位数。l DECIMAL(M,D):一个未压缩(unpack)的浮点数字,“未压缩”意味着数字作为一个字符串被存储,值的每一位使用一个字符。小数点,并且对于负数,“-”符号不在M中计算。如果D是0,值将没有小数点或小数部分。DECIMAL值的最大范围与DOUBLE相同,但是对一个给定的DECIMAL列,实际的范围可以通过M和D的选择被限制。如果D被省略,它被设置为0。如果M被省掉,它被设置为10。8.3 数据表设计(2)日期和时间类型l DAT
16、E:日期型,占3个字节,支持的范围是1000-01-01到9999-12-31。MySQL以YYYY-MM-DD格式来显示DATE值,但是允许使用字符串或数字把值赋给DATE列。l DATETIME:日期和时间组合型,占8个字节,支持的范围是1000-01-01 00:00:00到9999-12-31 23:59:59。MySQL以YYYY-MM-DD HH:MM:SS格式来显示DATETIME值,但是允许使用字符串或数字把值赋给DATETIME的列。l TIMESTAMP:时间戳,占4个字节,范围是1970-01-01 00:00:00到2037年的某时。l TIME:时间型,占3个字节,范
17、围是-838:59:59到838:59:59。MySQL以HH:MM:SS格式来显示TIME值,但是允许使用字符串或数字把值赋给TIME列。l YEAR(2|4):2或4位数字格式的年(缺省是4位),占1个字节,允许的值是1901到2155,如果使用2位,1970-2069(70-69)。MySQL以YYYY格式来显示YEAR值,但是允许把使用字符串或数字值赋给YEAR列。8.3 数据表设计(3)字符串(字符)类型l CHAR(M):定长字符串,当存储时,总是用空格填满右边到指定的长度。M的范围是0255个字符。lVARCHAR(M):变长字符串,当值被存储时,尾部的空格被删除。M的范围是02
18、55个字符。lBLOB:二进制对象,可以保存图片、声音等二进制数据。BLOB类型根据其容纳值的长度不同,分为TINYBLOB(最大长度255字节)、BLOB(最大长度65535字节)、MEDIUMBLOB(最大长度16777215字节)和LONGBLOB(最大长度4GB字节)类型。lTEXT:文本,用来保存字符数据。TEXT类型根据其容纳值的长度不同,分为TINYTEXT(最大长度255字节)、TEXT(最大长度65535字节)、MEDIUMTEXT(最大长度16777215字节)和LONGTEXT(最大长度4GB字节)类型。lENUM(value1,value2,.):枚举,一个仅有一个值的
19、字符串对象,这个值选自值列表value1、value2,.,或NULL。值列表最多能有65535不同的值。lSET(value1,value2,.):集合,有零个或多个值的一个字符串对象,其中每一个必须从值列表value1、value2、.选出。一个SET最多能有64个成员。8.3 数据表设计3.新闻发布系统新闻发布系统数据库设计数据库设计 依据“新闻发布系统”的需求分析,网站主要包含主要包含tb_users(用户表)、(用户表)、tb_news(新闻信息新闻信息表)、表)、tb_category(新闻新闻类类别表)别表)等等。8.4项目实施 通过前面的学习我们知道商城数据库都有哪些表组成了,
20、那么我们该如何创建数据库呢?对对MySQL数据库的创建管理主要包括两种方式,数据库的创建管理主要包括两种方式,一种是通过一种是通过图形管理工具创建管理数据库图形管理工具创建管理数据库,第二种是通过第二种是通过MySQL的客户端程序的客户端程序创建管理数据库,客户端程序的管理是通过创建管理数据库,客户端程序的管理是通过SQL语句来实现语句来实现。MySQL常用的图形化管理工具有phpMyAdmin、MySQLDumper、Navicat、MySQL GUI Tools、MySQL ODBC Connector等,这些工具需要安装之后才能使用。phpMyAdmin是一个用PHP开发的基于Web方式
21、的MySQL管理工具,它的官方网站是。PHP集成开发环境WampServer中包含有phpMyAdmin组件。8.4.1 phpMyAdmin数据库图44 phpMyAdmin主界面1.创建数据库创建数据库 在主界面中可以创建数据库,创建数据库需要指定数据库的名字在主界面中可以创建数据库,创建数据库需要指定数据库的名字和编码方式和编码方式,“新闻发布系统”数据库名称为db_news,采用utf-8的编码方式,如图45所示。单击“创建”按钮完成数据库的创建。图45 创建数据库8.4.1 phpMyAdmin数据库2.创建数据表创建数据表 数据库创建后,进入创建数据表的页面,如图46所示。在此,在
22、此,输入数据表的名称和字段数量,例如输入表名为输入数据表的名称和字段数量,例如输入表名为“tb_type”,字段,字段数量为数量为“3”。图46 创建数据表8.4.1 phpMyAdmin数据库 单击“执行”按钮,进入创建数据表字段的界面,如图47所示。在此可以设置字段的字段名称、数据类型、长度值、默认值、整理编设置字段的字段名称、数据类型、长度值、默认值、整理编码方式、属性、是否为空码方式、属性、是否为空(Null)、索引和自动增长(、索引和自动增长(A_I)等内容。)等内容。设置完毕后,单击“保存”按钮,完成数据表结构的创建。图47 设置表字段8.4.1 phpMyAdmin数据库 数据表
23、创建成功后,进入数据表“结构”页面,如图48所示,在这里可以修改表结构,如添加字段、删除字段、设置主键、索引、在这里可以修改表结构,如添加字段、删除字段、设置主键、索引、修改字段名称等。单击导航中修改字段名称等。单击导航中“删除删除”按钮,可以将数据表删除。按钮,可以将数据表删除。图48 管理数据表8.4.1 phpMyAdmin数据库3.添加数据添加数据 在数据表页面,单击,单击“插入插入”按钮,进入添加数据页面按钮,进入添加数据页面,如图49所示,输入“值”后,单击“执行”按钮,即可将数据添加到数据表中。图49 添加数据8.4.1 phpMyAdmin数据库4运行运行SQL语句语句 在数据
24、表页面,单击“插入”按钮,进入添加数据页面,如图49所示,输入“值”后,单击“执行”按钮,即可将数据添加到数据表中。图410 SQL语句执行界面8.4.1 phpMyAdmin数据库5.数据库的备份数据库的备份 对于数据库的管理经常需要备份和还原,在在phpMyAdmin中中我们通过导出、导入方式备份还原数据库我们通过导出、导入方式备份还原数据库。选择db_shop数据,单击导航栏中的“导出”按钮,进入导出界面,如图411所示。在此,我们可以选择导出的数据表,选择导出数据表的具体内容和导出的保存形式,在页面下方指定保存的文件名,最后,将SQL文件保存到磁盘上,完成数据备份。图411数据导出界面
25、8.4.1 phpMyAdmin数据库6数据库的还原数据库的还原 单击导航栏中的“Import”按钮,进入SQL文件导入界面,如图412所示。单击“浏览”按钮,选择需要导入的SQL脚本文件,然后单击“执行”按钮,系统将执行SQL文件中的SQL命令,完成数据还原。数据库创建好之后,会保存在MySQL安装路径下的data文件中,每一个数据库对应一个文件夹,通过文件夹操作也可以实现数据库的备份还原。掌握phpMyAdmin的基本操作后,使用phpMyAdmin完成商城数据库及数据表的创建。图412数据导入部分界面8.4.1 phpMyAdmin数据库实验任务实验任务1 1:phpMyAdminphp
26、MyAdmin数据库综合练习数据库综合练习 8.4.2 SQL之数据库的创建与管理之数据库的创建与管理8.4.2 SQL之数据库的创建与管理之数据库的创建与管理 MySQL是基于客户机/服务器结构的数据库管理系统,通过客户机连接服务器成功后,再通过必要的操作指令对其进行操作,这种数据库操作指令被称为SQL(Structured Query Language)语言,即结构化查询语言。SQL语言结构简洁,功能强大,自IBM公司1981年推出以来,SQL语言得到了广泛的应用,目前MySQL、Oracle、SQLServer、Sybase、DB2等数据库都采用SQL作为查询语言。SQL语言包含以下四部
27、分:l 数据定义语言(DDL):用于定义和管理数据库对象,包括数据库、数据表、索引、视图等。例如:create、drop、alter等语句;l数据操作语言(DML):用于操作数据库对象中所包含的具体数据。用于操作数据库对象中所包含的具体数据。例如:例如:insert、update、delete语句;语句;l 数据查询语言(DQL):用于查询数据库对象中的所包含的数据。例用于查询数据库对象中的所包含的数据。例如:如:select语句;语句;l 数据控制语言(DCL):用来管理数据库的语言,包含管理权限及数据更改。例如:grant、revoke、commit、rollback等语句。v课堂引例:课
28、堂引例:课堂引例:课堂引例:利用DML或DQL语言写出下面几个功能要求的SQL语句。1 1、向、向adminadmin表加入一条记录表加入一条记录(admin100(admin100,123456123456,1)1)。2 2、修改、修改adminadmin表中表中usernameusername为为adminadmin的密码更改为的密码更改为123456123456。3 3、删除、删除adminadmin表中一条记录表中一条记录(level=0)(level=0)。4 4、查询输出、查询输出adminadmin表中所有记录,根据表中所有记录,根据usernameusername倒倒叙排序。叙
29、排序。8.4.2 SQL之数据库的创建与管理之数据库的创建与管理8.4.2 SQL之数据库的创建与管理之数据库的创建与管理安装安装Navicat for MySQL 8.4.2 SQL之数据库的创建与管理之数据库的创建与管理数据操作和数据查询语言数据操作和数据查询语言几个简单的基本的几个简单的基本的sql语句语句l 选择:选择:select*from table1 where 范围范围l 插入:插入:insert into table1(field1,field2)values(value1,value2)l 删除:删除:delete from table1 where 范围范围l 更新:更新
30、:update table1 set field1=value1 where 范围范围l 查找:查找:select*from table1 where field1 like%value1%like的语法的语法很精妙,查资料很精妙,查资料!l 排序:排序:select*from table1 order by field1,field2 descl 总数:总数:select count*as totalcount from table1l 求和:求和:select sum(field1)as sumvalue from table1l 平均:平均:select avg(field1)as av
31、gvalue from table1l 最大:最大:select max(field1)as maxvalue from table1l 最小:最小:select min(field1)as minvalue from table1 (2)添加记录添加记录 向表中添加一条或多条数据记录,使用INSERT.VALUES语句实现,其语法格式如下:INSERT INTO tbl_name SET col_name=expression,col_name=expression,.INSERT INTO tbl_name(col_name,.)VALUES(expression,.),(.),.【例4-
32、7】为tb_type和tb_book表添加记录。注:图书表的photo字段保存的是图片的完整路径。6.修改数据修改数据 修改数据表中的数据可以使用UPDATE语句,其语法格式如下:UPDATE tbl_name SET col_name1=expr1,col_name2=expr2,.WHERE where_definition 需要注意的是,当没有WHERE子句指定修改条件时,则表中所有记录的指定列都被修改。【例4-8】将tb_type表中类别名称为“教育类”的名字修改为“高职教育类”。8.4.2 SQL之数据库的创建与管理之数据库的创建与管理7.删除数据删除数据 将数据表中数据删除的语句是
33、DELETE,其语法格式为:DELETE FROM tbl_name WHERE where_definition需要注意的是,当没有WHERE子句指定删除条件时,则删除表中所有记录。【例4-9】删除tb_type 表中类别名称为“高职教育类”的记录。4.4.4 SQL之数据库的查询管理之数据库的查询管理 数据查询是数据库的核心操作,用户可以通过查询获得所需要的数据。查询操作可以通过SELECT语句实现,该语句在执行时会根据要求从一个或多个数据表中选取特定的行和列,形成一个临时表传送给用户。其中:lselect_expression:描述结果集的列,列与列之间用逗号分隔;lFROM table
34、_list:用于指定产生查询结果集的数据来源的表或视图的名称;lWHERE where_definition:用于指定所检索的数据应该满足的条件;lGROUP BY col_name:用于分组统计时指定分组的条件;8.4.2 SQL之数据库的创建与管理之数据库的创建与管理lHAVING where_definition:与GROUP BY子句一起使用,用于对分组统计的结果设置条件,进行组数据选择;lORDER BY sorting_columns ASC|DESC:指定在SELECT语句返回的列中所使用的排序顺序;ASC和DESC用于指定行是按升序还是按降序排列;lLIMIToffset,ro
35、ws:用来限制SELECT语句返回的行数。l需要注意,SELECT语句中的子句必须按以上语法格式的顺序给出,例如,HAVING子句必须在GROUP BY子句之后,ORDER BY子句之前。1.基本查询基本查询2.条件查询条件查询3.排序查询排序查询4.统计查询统计查询5.连接查询连接查询6.子查询子查询7.限制返回行数限制返回行数8.4.2 SQL之数据库的创建与管理之数据库的创建与管理实验任务实验任务2 2:phpMyAdminphpMyAdmin数据库综合练习数据库综合练习 课堂小结课堂小结v 理解MySQL数据库的创建与管理、数据类型及数据表的创建与管理。v 掌握数据添加、修改、删除和查询等SQL操作。v 掌握phpMyAdmin数据管理平台和Navicat for MySQL 的基本使用方法。