MySQL数据库技术教学案.docx

上传人:b****3 文档编号:5397049 上传时间:2023-05-08 格式:DOCX 页数:42 大小:64.30KB
下载 相关 举报
MySQL数据库技术教学案.docx_第1页
第1页 / 共42页
MySQL数据库技术教学案.docx_第2页
第2页 / 共42页
MySQL数据库技术教学案.docx_第3页
第3页 / 共42页
MySQL数据库技术教学案.docx_第4页
第4页 / 共42页
MySQL数据库技术教学案.docx_第5页
第5页 / 共42页
MySQL数据库技术教学案.docx_第6页
第6页 / 共42页
MySQL数据库技术教学案.docx_第7页
第7页 / 共42页
MySQL数据库技术教学案.docx_第8页
第8页 / 共42页
MySQL数据库技术教学案.docx_第9页
第9页 / 共42页
MySQL数据库技术教学案.docx_第10页
第10页 / 共42页
MySQL数据库技术教学案.docx_第11页
第11页 / 共42页
MySQL数据库技术教学案.docx_第12页
第12页 / 共42页
MySQL数据库技术教学案.docx_第13页
第13页 / 共42页
MySQL数据库技术教学案.docx_第14页
第14页 / 共42页
MySQL数据库技术教学案.docx_第15页
第15页 / 共42页
MySQL数据库技术教学案.docx_第16页
第16页 / 共42页
MySQL数据库技术教学案.docx_第17页
第17页 / 共42页
MySQL数据库技术教学案.docx_第18页
第18页 / 共42页
MySQL数据库技术教学案.docx_第19页
第19页 / 共42页
MySQL数据库技术教学案.docx_第20页
第20页 / 共42页
亲,该文档总共42页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

MySQL数据库技术教学案.docx

《MySQL数据库技术教学案.docx》由会员分享,可在线阅读,更多相关《MySQL数据库技术教学案.docx(42页珍藏版)》请在冰点文库上搜索。

MySQL数据库技术教学案.docx

MySQL数据库技术教学案

教案

2011~2012学年第1学期

课程名称

MySQL数据库

系(院、部)

教研室(实验室)

授课班级

主讲教师

职称

使用教材

MySQL实用教程

 

二○一一年八月

 

教案

课程名称

MYSQL数据库应用

授课教师

授课班级

授课时数

1

授课方式

理论课

授课重点、难点

1.mysql关系数据库简介

2.mysql安装

授课内容、教具与时间分配

1.MySQL数据库是从多关系型数据库产品中的一个,相比其他数据库而言,MySQL数据库可以称为目前运行速度最快的SQL语言。

除此外还具有许多其他数据库所不具有的功能和选择。

MySQL数据库是一种完全免费的产品,用户可以从网上直接下载,可以是个人,也可是商业用户,是不用支付任何费用的一个数据库。

MySQL数据库具有以下特点:

•没有限制同时访问数据库的用户数量。

•可以保存记录超过50,000,000条。

•数据库系统的运行速度是目前所有产品中最快的。

•可以简单、有效地进行用户权限的设置。

•从MySQL数据库具有的以上特点可以看出,MySQL数据库是一个运行速度快、多线程、多用户和强大的SQL数据库服务器。

MySQL可以运行在多种平台上,包括WindowsNT、UNIX和Linux系统。

MySQL是建立数据库驱动和动态网站的最佳数据库。

PHP、MySQL和Apache是Linux平台网站的最佳组合。

目前,国际上知名公司也开始把MySQL作为其数据库管理系统,这也充分的证明了MySQL数据库的优越性能和广阔的发展前景。

2.安装数据库系统

•如何得到MySQL数据库呢?

维护MySQL的主要网站是http:

//www.MySQL.com。

读者可以从这个网站下载MySQL数据库。

在全球有许多MySQL数据库的镜像网站。

可以选择一个就近的网站下载,这样可以比较快地得到MySQL数据库。

中国用户可以从http:

//www.MySQL.cn/下载。

得到了MySQL数据库后,接下来进行安装,笔者就以Windows2003为例来进行介绍。

首先要把下载的MySQL数据库压缩文件解压到指定目录。

数据库概述

1.1数据库理论基础

1.1.1数据存储方式

1.1.2数据库泛型

1.1.3数据库在开发中作用

小结

复习

思考题

参考书

本次课程主要内容为

mysql关系数据库简介

Mysql安装配置

《mysql入门很简单》清华大学出版社

Mysql数据库应用

课程名称

MYSQL数据库应用

授课教师

授课班级

授课时数

4

授课方式

理论课

授课重点、难点

1.Mysql数据类型

授课内容、教具与时间分配

1.MySQL的数据类型

在MySQL中有如下几种数据类型:

(1)数值型

MySQL提供了五种整型:

TINYINT、SMALLINT、MEDIUMINT、INT和BIGINT,三种浮点类型:

FLOAT、DOUBLE和DECIMAL。

数值是诸如32或153.4这样的值。

MySQL支持科学表示法,科学表示法由整数或浮点数后跟“e”或“E”、一个符号(“+”或“-”)和一个整数指数来表示。

1.24E+12和23.47e-1都是合法的科学表示法表示的数。

而1.24E12不是合法的,因为指数前的符号未给出。

浮点数由整数部分、一个小数点和小数部分组成。

整数部分和小数部分可以分别为空,但不能同时为空。

数值前可放一个负号“-”以表示负值。

(2)字符(串)型

类型名

说明

CHAR

定长字符串

VARCHAR

可变长字符串

TINYBLOB

非常小的BLOB(二进制大对象)

BLOB

小BLOB

MEDIUMBLOB

中等的BLOB

LONGBLOB

大BLOB

TINYTEXT

非常小的文本串

TEXT

小文本串

MEDIUMTEXT

中等文本串

LONGTEXT

大文本串

ENUM

枚举;列可赋予某个枚举成员

SET

集合;列可赋予多个集合成员

(3)日期和时间型

类型名

说明

DATE

“YYYY-MM-DD”格式表示的日期值

TIME

“hh:

mm:

ss”格式表示的时间值

DATETIME

“YYYY-MM-DDhh:

mm:

ss”格式

TIMESTAMP

“YYYYMMDDhhmmss”格式表示的时间戳值

YEAR

“YYYY”格式的年份值

(4)NULL值

NULL表示未知值。

比如填写表格中通讯地址不清楚留空不填写,这就是NULL值。

小结

复习

思考题

参考书

本次课程主要内容为

Mysql数据类型

《mysql入门很简单》清华大学出版社

Mysql数据库应用

课程名称

数据库操作

授课教师

授课班级

授课时数

2

授课方式

理论课

授课重点、难点

1创建数据库

2删除数据库

3数据库存储引擎

3.1MySQL存储引擎简介

3.2InnoDB存储引擎

3.3MyISAM存储引擎

3.4MEMORY存储引擎

.3.5存储引擎的选择

授课内容、教具与时间分配

创建数据库(当然,数据库名\"asb\"不能是已经存在的)

mysql>createdatabaseasb;

选用数据库,使其成为当前操作的数据库

mysql>useasb;

成功选中后会有如下显示:

Databasechanged

甚至可以在窗口命令登陆mysql数据库的时候直接选中要操作的数据库(当然前提是asb数据库存在)

bin>mysqlasb-uuesername-p

Enterpassword:

******

查看当前所操作的数据库名称

mysql>selectdatabase();

运行后结果如下:

+------------+

|database()|

+------------+

|asb|

+------------+

1rowinset(0.00sec)

数据库存储引擎:

ISAM

ISAM是一个定义明确且历经时间考验的数据表格管理方法,它在设计之时就考虑到数据库被查询的次数要远大于更新的次数。

因此,ISAM执行读取操作的速度很快,而且不占用大量的内存和存储资源。

ISAM的两个主要不足之处在于,它不支持事务处理,也不能够容错:

如果你的硬盘崩溃了,那么数据文件就无法恢复了。

如果你正在把ISAM用在关键任务应用程序里,那就必须经常备份你所有的实时数据,通过其复制特性,MySQL能够支持这样的备份应用程序。

MyISAM

MyISAM是MySQL的ISAM扩展格式和缺省的数据库引擎。

除了提供ISAM里所没有的索引和字段管理的大量功能,MyISAM还使用一种表格锁定的机制,来优化多个并发的读写操作。

其代价是你需要经常运行OPTIMIZETABLE命令,来恢复被更新机制所浪费的空间。

MyISAM还有一些有用的扩展,例如用来修复数据库文件的MyISAMChk工具和用来恢复浪费空间的MyISAMPack工具。

MyISAM强调了快速读取操作,这可能就是为什么MySQL受到了Web开发如此青睐的主要原因:

在Web开发中你所进行的大量数据操作都是读取操作。

所以,大多数虚拟主机提供商和Internet平台提供商(InternetPresenceProvider,IPP)只允许使用MyISAM格式。

HEAP

HEAP允许只驻留在内存里的临时表格。

驻留在内存里让HEAP要比ISAM和MyISAM都快,但是它所管理的数据是不稳定的,而且如果在关机之前没有进行保存,那么所有的数据都会丢失。

在数据行被删除的时候,HEAP也不会浪费大量的空间。

HEAP表格在你需要使用SELECT表达式来选择和操控数据的时候非常有用。

要记住,在用完表格之后就删除表格。

让我再重复一遍:

在你用完表格之后,不要忘记删除表格。

InnoDB和BerkleyDB

InnoDB和BerkleyDB(BDB)数据库引擎都是造就MySQL灵活性的技术的直接产品,这项技术就是MySQL++API。

在使用MySQL的时候,你所面对的每一个挑战几乎都源于ISAM和MyISAM数据库引擎不支持事务处理也不支持外来键。

尽管要比ISAM和MyISAM引擎慢很多,但是InnoDB和BDB包括了对事务处理和外来键的支持,这两点都是前两个引擎所没有的。

如前所述,如果你的设计需要这些特性中的一者或者两者,那你就要被迫使用后两个引擎中的一个了。

小结

复习

思考题

参考书

本次课程主要内容为

Mysql数据库操作

数据库存储引擎

复习题目:

1.什么是存储引擎?

如何选择?

2.mysql数据库操作方法

《mysql入门很简单》清华大学出版社

Mysql数据库应用

课程名称

数据库表操作

授课教师

授课班级

授课时数

4

授课方式

理论课

授课重点、难点

1.创建表

2.修改表

3.删除表

授课内容、教具与时间分配

用CREATETABLE语句创建数据表

用CREATETABLE语句创建表。

此语句的完整语法是相当复杂的,因为存在那么多的可选子句,但在实际中此语句的应用相当简单。

如我们在第1章中使用的所有CREATETABLE语句都不那么复杂。

有意思的是,大多数复杂东西都是一些子句,这些子句MySQL在分析后扔掉。

参阅附录1可以看到这些复杂的东西。

1、CREATETABLE语句的基本语法

CREATETABLEtbl_name(create_definition,...)[TYPE=table_type]

create_definition:

col_nametype[NOTNULL|NULL]

[DEFAULTdefault_value][AUTO_INCREMENT][PRIMARYKEY]

用ALTERTABLE语句修改表的结构

有时你可能需要改变一下现有表的结构,那么AlterTable语句将是你的合适选择。

增加列

altertabletbl_nameaddcol_nametype

例如,给表增加一列weight

mysql>altertablepetaddweightint;

删除列

altertabletbl_namedropcol_name

例如,删除列weight:

mysql>altertablepetdropweight;

改变列

altertabletbl_namemodifycol_nametype

例如,改变weight的类型:

mysql>altertablepetmodifyweightsamllint;

另一种方法是:

altertabletbl_namechangeold_col_namecol_nametype

例如:

mysql>altertablepetchangeweightweightsamllint;

给列更名

mysql>altertablepetchangeweightwei;

给表更名

altertabletbl_namerenamenew_tbl

例如,把pet表更名为animal

mysql>altertablepetrenameanimal;

改变表的类型

另外,可以为列增加或删除索引等属性。

用DROPTABLE语句删除数据表

DROPTABLE[IFEXISTS]tbl_name[,tbl_name,...]

DROPTABLE删除一个或多个数据库表。

所有表中的数据和表定义均被删除,故小心使用这个命令!

在MySQL3.22或以后版本,你可以使用关键词IFEXISTS类避免不存在表的一个错误发生。

例如:

mysql>USEmytest;

mysql>DROPTABLEguestbook;

或者,也可以同时指定数据库和表:

mysql>DROPTABLEmytest.guestbook;

 

小结

复习

思考题

参考书

本节讲述了有关表的大部分操作,现在将所述内容总结如下:

MySQL的表的三种类型

如何创建表、删除表

如何改变表的结构、名字

复习题目:

1.数据表操作方法?

教材:

《mysql实用教程》

《mysql入门很简单》清华大学出版社

Mysql数据库应用

课程名称

Mysql索引

授课教师

授课班级

授课时数

2

授课方式

理论课

授课重点、难点

Mysql索引

授课内容、教具与时间分配

索引是快速搜索的关键。

MySQL索引的建立对于MySQL的高效运行是很重要的。

下面介绍几种常见的MySQL索引类型。

MySQL索引类型包括:

(1)普通索引

这是最基本的索引,它没有任何限制。

它有以下几种创建方式:

◆创建索引

1.CREATEINDEXindexNameONmytable(username(length));

如果是CHAR,VARCHAR类型,length可以小于字段实际长度;如果是BLOB和TEXT类型,必须指定length,下同。

◆修改表结构

1.ALTERmytableADDINDEX[indexName]ON(username(length))

◆创建表的时候直接指定

1.CREATETABLEmytable(

2.

3.IDINTNOTNULL,

4.

5.usernameVARCHAR(16)NOTNULL,

6.

7.INDEX[indexName](username(length))

8.

9.);

删除索引的语法:

1.DROPINDEX[indexName]ONmytable;

(2)唯一索引

它与前面的普通索引类似,不同的就是:

索引列的值必须唯一,但允许有空值。

如果是组合索引,则列值的组合必须唯一。

它有以下几种创建方式:

◆创建索引

1.CREATEUNIQUEINDEXindexNameONmytable(username(length))

◆修改表结构

1.ALTERmytableADDUNIQUE[indexName]ON(username(length))

◆创建表的时候直接指定

1.CREATETABLEmytable(

2.

3.IDINTNOTNULL,

4.

5.usernameVARCHAR(16)NOTNULL,

6.

7.UNIQUE[indexName](username(length))

8.

9.);

(3)主键索引

它是一种特殊的唯一索引,不允许有空值。

一般是在建表的时候同时创建主键索引:

1.CREATETABLEmytable(

2.

3.IDINTNOTNULL,

4.

5.usernameVARCHAR(16)NOTNULL,

6.

7.PRIMARYKEY(ID)

8.

9.);

当然也可以用ALTER命令。

记住:

一个表只能有一个主键。

(4)组合索引

为了形象地对比单列索引和组合索引,为表添加多个字段:

1.CREATETABLEmytable(

2.

3.IDINTNOTNULL,

4.

5.usernameVARCHAR(16)NOTNULL,

6.

7.cityVARCHAR(50)NOTNULL,

8.

9.ageINTNOTNULL

10.

11.);

为了进一步榨取MySQL的效率,就要考虑建立组合索引。

就是将name,city,age建到一个索引里:

1.ALTERTABLEmytableADDINDEXname_city_age(name(10),city,age);

建表时,usernname长度为16,这里用10。

这是因为一般情况下名字的长度不会超过10,这样会加速索引查询速度,还会减少索引文件的大小,提高INSERT的更新速度。

如果分别在usernname,city,age上建立单列索引,让该表有3个单列索引,查询时和上述的组合索引效率也会大不一样,远远低于我们的组合索引。

虽然此时有了三个索引,但MySQL只能用到其中的那个它认为似乎是最有效率的单列索引。

建立这样的组合索引,其实是相当于分别建立了下面三组组合索引:

1.usernname,city,age

2.

3.usernname,city

4.

5.usernname

为什么没有city,age这样的组合索引呢?

这是因为MySQL组合索引“最左前缀”的结果。

简单的理解就是只从最左面的开始组合。

并不是只要包含这三列的查询都会用到该组合索引,下面的几个SQL就会用到这个组合索引:

1.SELECT*FROMmytableWHREEusername="admin"ANDcity="郑州"

2.

3.SELECT*FROMmytableWHREEusername="admin"

而下面几个则不会用到:

1.SELECT*FROMmytableWHREEage=20ANDcity="郑州"

2.

3.SELECT*FROMmytableWHREEcity="郑州"

(5)建立索引的时机

到这里我们已经学会了建立索引,那么我们需要在什么情况下建立索引呢?

一般来说,在WHERE和JOIN中出现的列需要建立索引,但也不完全如此,因为MySQL只对<,<=,=,>,>=,BETWEEN,IN,以及某些时候的LIKE才会使用索引。

例如:

1.SELECTt.Name

2.

3.FROMmytabletLEFTJOINmytablem

4.

5.ONt.Name=m.usernameWHEREm.age=20ANDm.city='郑州'

此时就需要对city和age建立索引,由于mytable表的userame也出现在了JOIN子句中,也有对它建立索引的必要。

刚才提到只有某些时候的LIKE才需建立索引。

因为在以通配符%和_开头作查询时,MySQL不会使用索引。

例如下句会使用索引:

1.SELECT*FROMmytableWHEREusernamelike'admin%'

而下句就不会使用:

1.SELECT*FROMmytableWHEREtNamelike'%admin'

因此,在使用LIKE时应注意以上的区别。

(6)索引的不足之处

上面都在说使用索引的好处,但过多的使用索引将会造成滥用。

因此索引也会有它的缺点:

◆虽然索引大大提高了查询速度,同时却会降低更新表的速度,如对表进行INSERT、UPDATE和DELETE。

因为更新表时,MySQL不仅要保存数据,还要保存一下索引文件。

◆建立索引会占用磁盘空间的索引文件。

一般情况这个问题不太严重,但如果你在一个大表上创建了多种组合索引,索引文件的会膨胀很快。

索引只是提高效率的一个因素,如果你的MySQL有大数据量的表,就需要花时间研究建立最优秀的索引,或优化查询语句。

(7)使用索引的注意事项

使用索引时,有以下一些技巧和注意事项:

◆索引不会包含有NULL值的列

只要列中包含有NULL值都将不会被包含在索引中,复合索引中只要有一列含有NULL值,那么这一列对于此复合索引就是无效的。

所以我们在数据库设计时不要让字段的默认值为NULL。

◆使用短索引

对串列进行索引,如果可能应该指定一个前缀长度。

例如,如果有一个CHAR(255)的列,如果在前10个或20个字符内,多数值是惟一的,那么就不要对整个列进行索引。

短索引不仅可以提高查询速度而且可以节省磁盘空间和I/O操作。

◆索引列排序

MySQL查询只使用一个索引,因此如果where子句中已经使用了索引的话,那么orderby中的列是不会使用索引的。

因此数据库默认排序可以符合要求的情况下不要使用排序操作;尽量不要包含多个列的排序,如果需要最好给这些列创建复合索引。

◆like语句操作

一般情况下不鼓励使用like操作,如果非使用不可,如何使用也是一个问题。

like“%aaa%”不会使用索引而like“aaa%”可以使用索引。

◆不要在列上进行运算

1.select*fromuserswhereYEAR(adddate)<2007;

将在每个行上进行运算,这将导致索引失效而进行全表扫描,因此我们可以改成

1.select*fromuserswhereadddate<‘2007-01-01’;

◆不使用NOTIN和<>操作

以上,就对其中MySQL索引类型进行了介绍。

小结

复习

思考题

参考书

教材:

《mysql实用教程》

《mysql入门很简单》清华大学出版社

Mysql数据库应用

课程名称

视图

授课教师

授课班级

授课时数

4

授课方式

理论课

授课重点、难点

创建视图、修改视图和删除视图

授课内容、教具与时间分配

一.视图概述

视图是一个虚拟表,其内容由查询定义。

同真实的表一样,视图包含一系列带有名称的列和行数据。

但是,视图并不在数据库中以存储的数据值集形式存在。

行和列数据来自由定义视图的查询所引用的表,并且在引用视图时动态生成。

二.创建视图——CREATEVIEW

1.语法

CREATE[ORREPLACE][ALGORITHM={UNDEFINED|MERGE|TEMPTABLE}]

VIEW[db_name.]view_name[(column_list)]

ASselect_statement

[WITH[CASCADED|LOCAL]CHECKOPTION]

通过该语句可以创建视图,若给定了[ORREPLACE],则表示当已具有同名的视图时,将覆盖原视图。

select_statement是一个查询语句,这个查询语句可从表或其它的视图中查询。

视图属于数据库,因此需要指定数据库的名称,若未指定时,表示在当前的数据库创建新视图。

表和数据库共享数据库中相同的名称空间,因此,数据库不能包含相同名称的表和视图,并且,视图的列名也不能重复。

3.注意事项

创建视图存在如下注意事项:

(1)运行创建视图的语句需要用户具有创建视图(CRATEVIEW)的权限,若加了[ORREPLACE]时,还需要用户具有删除视图(DROPVIEW)的权限

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

当前位置:首页 > 医药卫生 > 基础医学

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2