MySQL数据库技术教案
- 格式:docx
- 大小:64.54 KB
- 文档页数:42
2011〜2012学年第1学期课程名称MySQL 数据库系(院、部)教研开室(实验室)授课班级主讲教师职称使用教材MySQL 实用教程二O一一年八月教案Mysql内容、在MySQL中有如下几种数据类型:教具与时(1)数值型间分配MySQL 提供了五种整型:TINYINT、SMALLINT、MEDIUMINT、INT 和BIGINT,三种浮点类型:FLOAT、DOUBLE 和DECIMAL。
数值是诸如32或这样的值。
MySQL支持科学表示法,科学表示法由整数或浮点数后跟“ e”或“ E”、一个符号(“ + ”或“-”)和一个整数指数来表示。
+12和都是合法的科学表示法表示的数。
而不是合法的,因为指数前的符号未给岀。
浮点数由整数部分、一个小数点和小数部分组成。
整数部分和小数部分可以分别为空,但不能同时为空。
数值前可放一个负号“-”以表示负值。
(2)字符(串)型BLOB 小BLOB课程名称授课班级数据库操作授课时数授课教师授课方式理论课(4) NULL 值NULL表示未知值。
比如填写表格中通讯地址不清楚留空不填写,这就是NULL值小结复习本次课程主要内容为思考Mysql数据类型题《mysql入门很简单》清华大学岀版社参考书Mysql数据库应用(3)日期和时间型授课 1 创建数据库重 2 删除数据库点、 3 数据库存储引擎难点MySQL 存储引擎简介InnoDB 存储引擎MyISAM 存储引擎MEMORY 存储引擎. 存储引擎的选择授课创建数据库(当然,数据库名\"asb\" 不能是已经存在的)内容、mysql> create database asb;教具与时选用数据库,使其成为当前操作的数据库间分配mysql> use asb;成功选中后会有如下显示:Database changed甚至可以在窗口命令登陆mysql 数据库的时候直接选中要操作的数据库(当然前提是数asb 据库存在)bin>mysql asb -u uesername -pEnter password:******查看当前所操作的数据库名称mysql> select database();运行后结果如下:| database() || asb |1 row in set sec)数据库存储引擎:ISAMISAM 是一个定义明确且历经时间考验的数据表格管理方法,它在设计之时就考虑到数据库被查询的次数要远大于更新的次数。
因此,ISAM 执行读取操作的速度很快,而且不占用大量的内存和存储资源。
ISAM 的两个主要不足之处在于,它不支持事务处理,也不能够容错:如果你的硬盘崩溃了,那么数据文件就无法恢复了。
如果你正在把ISAM 用在关键任务应用程序里,那就必须经常备份你所有的实时数据,通过其复制特性,MySQL 能够支持这样的备份应用程序。
MyISAMMyISAM 是MySQL 的ISAM 扩展格式和缺省的数据库引擎。
除了提供ISAM 里所没有的索引和字段管理的大量功能,MyISAM 还使用一种表格锁定的机制,来优化多个并发的读写操作。
其代价是你需要经常运行OPTIMIZE TABLE 命令,来恢复被更新机制所浪费的空间。
MyISAM 还有一些有用的扩展,例如用来修复数据库文件的MyISAMChk 工具和用来恢复浪费空间的MyISAMPack 工具。
MyISAM 强调了快速读取操作,这可能就是为什么MySQL 受到了Web 开发如此青睐的主要原因:在Web 开发中你所进行的大量数据操作都是读取操作。
所以,大多数虚拟主机提供商和Internet 平台提供商(Internet Presence Provider ,IPP) 只允许使用MyISAM 格式。
HEAPHEAP 允许只驻留在内存里的临时表格。
驻留在内存里让HEAP 要比ISAM 和MyISAM 都快,但是它所管理的数据是不稳定的,而且如果在关机之前没有进行保存,那么所有的数据都会丢失。
在数据行被删除的时候,HEAP 也不会浪费大量的空间。
HEAP 表格在你需要使用SELECT 表达式来选择和操控数据的时候非常有用。
要记住,在用完表格之后就删除表格。
让我再重复一遍:在你用完表格之后,不要忘记删除表格。
InnoDB 和Berkley DBInnoDB 和Berkley DB(BDB) 数据库引擎都是造就MySQL 灵活性的技术的直接产品,这项技术就是MySQL++ API 。
在使用MySQL 的时候,你所面对的每一个挑战几乎都源于ISAM 和MyISAM 数据库引擎不支持事务处理也不支持外来键。
尽管要比ISAM 和MyISAM 引擎慢很多,但是InnoDB 和BDB 包括了对事务处理和外来键的支持,这两点都是前两个引擎所没有的。
如前所述,如果你的设计需要这些特性中的一者或者两者,那你就要被迫使用后两个引擎中的一个了。
本次课程主要内容为小结Mysql数据库操作复习数据库存储引擎思考复习题目:题1.什么是存储引擎?如何选择?参考书数据库操作方法《mysql入门很简单》清华大学岀版社Mysql数据库应用课程一宀切数据库表操作授课教师名称授课十如授课时数 4 授课方式理论课班级授课 1.创建表重点、 2.修改表难点3.删除表授课用CREATE TABLE语句创建数据表内容、用CREATE TABLE语句创建表。
此语句的完整语法是相当复杂的,因为存在那么多的可选子教具句,但在实际中此语句的应用相当简单。
如我们在第1章中使用的所有CREATETABLE语句都与时不那么复杂。
间分配有意思的是,大多数复杂东西都是一些子句,这些子句MySQl在分析后扔掉。
参阅附录1可以看到这些复杂的东西。
1、CREATE TABLE语句的基本语法CREATE TABLE tbl_ name(create_defi niti on,…)[TYPE =table_type]create_definition: col_name type [NOT NULL | NULL] [DEFAULT default_value][AUTO_INCREMENT][PRIMARY KEY] 用ALTER TABLE语句修改表的结构有时你可能需要改变一下现有表的结构,那么Alter Table 语句将是你的合适选择。
增加列alter table tbl_name add col_name type例如, 给表增加一列weightmysql>alter table pet add weight int;删除列alter table tbl_name drop col_name例如,删除列weight :mysql>alter table pet drop weight;改变列alter table tbl_name modify col_name type例如,改变weight 的类型:mysql> alter table pet modify weight samllint;另一种方法是:alter table tbl_name change old_col_name col_name type 例如:mysql> alter table pet change weight weight samllint;给列更名mysql>alter table pet change weight wei;给表更名alter table tbl_name rename new_tbl例如,把pet 表更名为animalmysql>alter table pet rename animal;改变表的类型另外,可以为列增加或删除索引等属性。
用DROP TABLE语句删除数据表DROP TABLE [IF EXISTS] tbl_name [, tbl_name,...]DROP TABLE删除一个或多个数据库表。
所有表中的数据和表定义均被删除,故小心使用这个命令!在MySQL或以后版本,你可以使用关键词IF EXISTS类避免不存在表的一个错误发生。
例如:mysql>USE mytest;mysql>DROP TABLE guestbook;或者,也可以同时指定数据库和表:mysql>DROP TABLE mytest. guestbook;本节讲述了有关表的大部分操作,现在将所述内容总结如下:MySQ啲表的三种类型小结如何创建表、删除表复习如何改变表的结构、名字思考题复习题目:参考 1. 数据表操作方法?书教材:《mysql 实用教程》《mysql 入门很简单》清华大学出版社Mysql 数据库应用删除索引的语法:1.DROP INDEX [indexName](2 )唯一索引它与前面的普通索引类似,不同的就是:索引列的值必须唯一,但允许有空值。
如果是组 合索引,则列值的组合必须唯一。
它有以下几种创建方式:授课内 容、教具 与时间分 配索引是快速搜索的关键。
MySQL 索引的建立对于MySQ 啲高效运行是很重要的。
下面 介绍几种常见的 MySQL 索引类型。
MySQL 索引类型包括:(1 )普通索引这是最基本的索引,它没有任何限制。
它有以下几种创建方式:♦创建索引1. CREATE INDEX indexNameON mytable(username(length));如果是CHAR VARCHA 类型,length 可以小于字段实际长度;如果是 BLOB 和TEXT 类型,必须指定length ,下同。
♦修改表结构1. ALTER mytable ADD INDEX [indexName]ON (user name(le ngth))♦创建表的时候直接指定1. 2. CREATE TABLE mytable( ID INT NOT NULL,3. 4. 5.username VARCHAR(16) NOT NULL, INDEX [indexName] (username(length)) );ON mytable;建到一建表时,usernname 长度为16,这里用10。
这是因为一般情况下名字的长度不会超过10,这样会加速索引查询速度,还会减少索引文件的大小,提高INSERT 的更新速度。
如果分别在usernname ,city , age 上建立单列索引,让该表有 3个单列索引,查询时和上述的组合索引效率也会大不一样,远远低于我们的组合索引。
虽然此时有了三个索引, 但MySQL 只能用到其中的那个它认为似乎是最有效率的单列索引。
建立这样的组合索引,其实是相当于分别建立了下面三组组合索引:1. user nn ame,city,age2. user nn ame,city3.user nn ame为什么没有city ,age 这样的组合索引呢?这是因为 MySQL 组合索引"最左前缀"的结果。