《2022年MySQL数据库技术教案 .pdf》由会员分享,可在线阅读,更多相关《2022年MySQL数据库技术教案 .pdf(42页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、1 教案20112012 学年第 1 学期课程名称MySQL 数据库系 ( 院 、 部 ) 教研室 (实验室 ) 授课班级主讲教师职称使用教材MySQL 实用教程二一一年八月名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 1 页,共 42 页 - - - - - - - - - 2 教案课程名称MYSQL 数据库应用授课教师授课班级授课时数1 授课方式理论课授课重点、难点1.mysql 关系数据库简介2. mysql安装授课内容、教具与时间分配1.MySQL 数据库是从多关系型数据库
2、产品中的一个,相比其他数据库而言,MySQL 数据库可以称为目前运行速度最快的SQL 语言。除此外还具有许多其他数据库所不具有的功能和选择。MySQL 数据库是一种完全免费的产品,用户可以从网上直接下载,可以是个人,也可是商业用户,是不用支付任何费用的一个数据库。MySQL 数据库具有以下特点:?没有限制同时访问数据库的用户数量。?可以保存记录超过50,000,000 条。?数据库系统的运行速度是目前所有产品中最快的。?可以简单、有效地进行用户权限的设置。?从 MySQL 数据库具有的以上特点可以看出,MySQL 数据库是一个运行速度快、多线程、 多用户和强大的SQL 数据库服务器。MySQL
3、 可以运行在多种平台上,包括Windows NT 、UNIX 和 Linux系统。 MySQL 是建立数据库驱动和动态网站的最佳数据库。PHP、MySQL 和 Apache 是 Linux 平台网站的最佳组合。目前,国际上知名公司也开始把MySQL 作为其数据库管理系统,这也充分的证明了MySQL 数据库的优越性能和广阔的发展前景。2.安装数据库系统?如何得到 MySQL 数据库呢?维护MySQL 的主要网站是http:/www.MySQL.com 。读者可以从这个网站下载MySQL 数据库。在全球有许多MySQL 数据库的镜像网站。可以选择一个就近的网站下载,这样可以比较快地得到MySQL
4、数据库。中国用户可以从http:/www.MySQL.cn/ 下载。得到了MySQL 数据库后,接下来进行安装, 笔者就以 Windows 2003 为例来进行介绍。 首先要把下载的MySQL数据库压缩文件解压到指定目录。名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 2 页,共 42 页 - - - - - - - - - 3 数据库概述1.1 数据库理论基础1.1.1 数据存储方式1.1.2 数据库泛型1.1.3 数据库在开发中作用小结复习思考题参考书本次课程主要内容为mysql
5、 关系数据库简介Mysql 安装配置mysql 入门很简单清华大学出版社Mysql 数据库应用课程名称MYSQL 数据库应用授课教师授课班级授课时数4 授课方式理论课授课重点、难点1.Mysql 数据类型名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 3 页,共 42 页 - - - - - - - - - 4 授课内容、教具与时间分配1. MySQL 的数据类型在 MySQL 中有如下几种数据类型:(1)数值型MySQL 提供了五种整型:TINYINT 、SMALLINT、MEDI
6、UMINT、INT 和 BIGINT ,三种浮点类型:FLOAT 、DOUBLE 和 DECIMAL 。数值是诸如32 或 153.4 这样的值。 MySQL 支持科学表示法,科学表示法由整数或浮点数后跟“ e”或“ E” 、一个符号(“+”或“ -” )和一个整数指数来表示。1.24E+12 和 23.47e-1 都是合法的科学表示法表示的数。而1.24E12 不是合法的,因为指数前的符号未给出。浮点数由整数部分、一个小数点和小数部分组成。整数部分和小数部分可以分别为空,但不能同时为空。数值前可放一个负号“-”以表示负值。(2)字符(串)型类型名说明CHAR 定长字符串VARCHAR 可变长
7、字符串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-DD hh:mm:ss”格式名师资料总结 - - -精品资料欢迎下载 - - - - - - - -
8、- - - - - - - - - - 名师精心整理 - - - - - - - 第 4 页,共 42 页 - - - - - - - - - 5 TIMESTAMP “YYYYMMDDhhmmss”格式表示的时间戳值YEAR “YYYY ”格式的年份值(4) NULL 值NULL 表示未知值。比如填写表格中通讯地址不清楚留空不填写,这就是NULL 值。小结复习思考题参考书本次课程主要内容为Mysql 数据类型mysql 入门很简单清华大学出版社Mysql 数据库应用课程名称数据库操作授课教师授课班级授课时数2 授课方式理论课授课重点、难点1 创建数据库2 删除数据库3 数据库存储引擎3.1
9、MySQL 存储引擎简介3.2 InnoDB 存储引擎3.3 MyISAM存储引擎3.4 MEMORY 存储引擎. 3.5 存储引擎的选择授课内容、教具与时创建数据库(当然,数据库名asb不能是已经存在的) mysql create database asb; 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 5 页,共 42 页 - - - - - - - - - 6 间分配选用数据库,使其成为当前操作的数据库 mysql use asb; 成功选中后会有如下显示: Database
10、 changed 甚至可以在窗口命令登陆mysql 数据库的时候直接选中要操作的数据库(当然前提是asb 数据库存在) binmysql asb -u uesername -p Enter password:* 查看当前所操作的数据库名称 mysql select database(); 运行后结果如下: +-+ | database() | +-+ | asb | +-+ 1 row in set (0.00 sec) 数据库存储引擎:ISAMISAM 是一个定义明确且历经时间考验的数据表格管理方法,它在设计之时就考虑到数据库被查询的次数要远大于更新的次数。因此,ISAM 执行读取操作的速度
11、很快,而且不占用大量的内存和存储资源。ISAM的两个主要不足之处在于,它不支持事务处理,也不能够容错:如果你的硬盘崩溃了,那么数据文件就无法恢复了。如果你正在把ISAM 用在关键任务应用程序里,那就必须经常备份你所有的实时数据,通过其复制特性,MySQL 能够支持这样的备份应用程序。名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 6 页,共 42 页 - - - - - - - - - 7 MyISAMMyISAM是 MySQL 的 ISAM 扩展格式和缺省的数据库引擎。除了提供IS
12、AM里所没有的索引和字段管理的大量功能,MyISAM还使用一种表格锁定的机制,来优化多个并发的读写操作。其代价是你需要经常运行OPTIMIZE TABLE命令,来恢复被更新机制所浪费的空间。 MyISAM还有一些有用的扩展,例如用来修复数据库文件的MyISAMChk工具和用来恢复浪费空间的MyISAMPack工具。MyISAM强调了快速读取操作,这可能就是为什么MySQL受到了 Web 开发如此青睐的主要原因:在Web 开发中你所进行的大量数据操作都是读取操作。所以,大多数虚拟主机提供商和Internet平台提供商 (Internet Presence Provider, IPP) 只允许使用
13、MyISAM格式。HEAPHEAP 允许只驻留在内存里的临时表格。驻留在内存里让HEAP 要比 ISAM 和 MyISAM都快,但是它所管理的数据是不稳定的,而且如果在关机之前没有进行保存,那么所有的数据都会丢失。在数据行被删除的时候,HEAP 也不会浪费大量的空间。HEAP 表格在你需要使用SELECT 表达式来选择和操控数据的时候非常有用。要记住,在用完表格之后就删除表格。让我再重复一遍:在你用完表格之后,不要忘记删除表格。InnoDB和 Berkley DBInnoDB和 Berkley DB(BDB)数据库引擎都是造就MySQL灵活性的技术的直接产品,这项技术就是MySQL+ API。
14、在使用 MySQL 的时候,你所面对的每一个挑战几乎都源于 ISAM 和 MyISAM数据库引擎不支持事务处理也不支持外来键。尽管要比ISAM 和MyISAM引擎慢很多,但是InnoDB和 BDB 包括了对事务处理和外来键的支持,这两点都是前两个引擎所没有的。如前所述,如果你的设计需要这些特性中的一者或者两者,那你就要被迫使用后两个引擎中的一个了。小结复习思考题参考书本次课程主要内容为Mysql 数据库操作数据库存储引擎复习题目:1.什么是存储引擎?如何选择?名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - -
15、- - - - - 第 7 页,共 42 页 - - - - - - - - - 8 2.mysql数据库操作方法mysql 入门很简单清华大学出版社Mysql 数据库应用课程名称数据库表操作授课教师授课班级授课时数4 授课方式理论课授课重点、难点1. 创建表2. 修改表3. 删除表授课内容、教具与时间分配用 CREATE TABLE 语句创建数据表用 CREATE TABLE 语句创建表。此语句的完整语法是相当复杂的,因为存在那么多的可选子句,但在实际中此语句的应用相当简单。如我们在第 1 章中使用的所有 CREATE TABLE 语句都不那么复杂。有意思的是, 大多数复杂东西都是一些子句,
16、这些子句MySQL 在分析后扔掉。 参阅附录 1 可以看到这些复杂的东西。1、CREATE TABLE 语句的基本语法CREATE TABLE tbl_name(create_definition,.) TYPE =table_type create_definition: col_name type NOT NULL | NULL DEFAULT default_value AUTO_INCREMENTPRIMARY KEY 用 ALTER TABLE语句修改表的结构有时你可能需要改变一下现有表的结构,那么Alter Table语句将是你的合适选择。增加列alter table tbl_na
17、me add col_name type 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 8 页,共 42 页 - - - - - - - - - 9 例如 , 给表增加一列weight mysqlalter table pet add weight int; 删除列alter table tbl_name drop col_name 例如,删除列weight :mysqlalter table pet drop weight; 改变列alter table tbl_name mod
18、ify 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; 给列更名mysqlalter table pet change weight wei; 给表更名alter table tbl_name rename new_tbl 例如,把pet 表更名为 anima
19、l mysqlalter table pet rename animal; 改变表的类型另外,可以为列增加或删除索引等属性。用 DROP TABLE 语句删除数据表名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 9 页,共 42 页 - - - - - - - - - 10 DROP TABLE IF EXISTS tbl_name , tbl_name,. DROP TABLE 删除一个或多个数据库表。所有表中的数据和表定义均被删除,故小心使用这个命令!在 MySQL 3.22 或
20、以后版本, 你可以使用关键词IF EXISTS类避免不存在表的一个错误发生。例如:mysqlUSE mytest; mysqlDROP TABLE guestbook; 或者,也可以同时指定数据库和表:mysqlDROP TABLE mytest. guestbook; 小结复习思考题参考书本节讲述了有关表的大部分操作,现在将所述内容总结如下:MySQL 的表的三种类型如何创建表、删除表如何改变表的结构、名字复习题目:1.数据表操作方法?教材: mysql 实用教程mysql 入门很简单清华大学出版社Mysql 数据库应用课程名称Mysql 索引授课教师名师资料总结 - - -精品资料欢迎下载
21、 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 10 页,共 42 页 - - - - - - - - - 11 授课班级授课时数2 授课方式理论课授课重点、难点Mysql 索引授课内容、教具与时间分配索引是快速搜索的关键。MySQL 索引的建立对于MySQL 的高效运行是很重要的。下面介绍几种常见的MySQL索引类型。MySQL 索引类型包括:(1)普通索引这是最基本的索引,它没有任何限制。它有以下几种创建方式:创建索引1.CREATE INDEX indexName ON mytable(username(length
22、); 如果是 CHAR ,VARCHAR 类型, length可以小于字段实际长度;如果是BLOB和 TEXT类型,必须指定 length,下同。修改表结构1.ALTER mytable ADD INDEX indexName ON (username(length) 创建表的时候直接指定1.CREATE TABLE mytable( 2.3.ID INT NOT NULL, 4.5.username VARCHAR(16) NOT NULL, 6.7.INDEX indexName (username(length) 8.9.); 删除索引的语法:1.DROP INDEX indexName
23、 ON mytable; (2)唯一索引名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 11 页,共 42 页 - - - - - - - - - 12 它与前面的普通索引类似,不同的就是:索引列的值必须唯一,但允许有空值。如果是组合索引,则列值的组合必须唯一。它有以下几种创建方式:创建索引1.CREATE UNIQUEINDEX indexName ONmytable(username(length) 修改表结构1.ALTER mytable ADD UNIQUE indexNam
24、e ON(username(length) 创建表的时候直接指定1.CREATE TABLE mytable( 2.3.ID INT NOT NULL, 4.5.username VARCHAR(16) NOT NULL, 6.7.UNIQUE indexName (username(length) 8.9.); (3)主键索引它是一种特殊的唯一索引,不允许有空值。一般是在建表的时候同时创建主键索引:1.CREATE TABLE mytable( 2.3.ID INT NOT NULL, 4.5.username VARCHAR(16) NOT NULL, 6.7.PRIMARYKEY(ID)
25、 8.9.); 当然也可以用 ALTER 命令。记住:一个表只能有一个主键。(4)组合索引为了形象地对比单列索引和组合索引,为表添加多个字段:名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 12 页,共 42 页 - - - - - - - - - 13 1.CREATE TABLE mytable( 2.3.ID INT NOT NULL, 4.5.username VARCHAR(16) NOT NULL, 6.7.city VARCHAR (50) NOT NULL, 8.9.
26、age INT NOT NULL 10.11.); 为了进一步榨取MySQL的效率,就要考虑建立组合索引。就是将 name, city, age建到一个索引里:1.ALTERTABLE mytable ADD INDEX name_city_age ( name(10),city,age); 建表时, usernname 长度为 16 ,这里用 10 。这是因为一般情况下名字的长度不会超过10,这样会加速索引查询速度,还会减少索引文件的大小,提高INSERT的更新速度。如果分别在 usernname ,city ,age 上建立单列索引,让该表有3 个单列索引,查询时和上述的组合索引效率也会大
27、不一样,远远低于我们的组合索引。虽然此时有了三个索引,但MySQL 只能用到其中的那个它认为似乎是最有效率的单列索引。建立这样的组合索引,其实是相当于分别建立了下面三组组合索引:1.usernname,city,age 2.3.usernname,city 4.5.usernname 为什么没有 city,age 这样的组合索引呢?这是因为MySQL 组合索引“最左前缀”的结果。简单的理解就是只从最左面的开始组合。并不是只要包含这三列的查询都会用到该组合索引,下面的几个SQL就会用到这个组合索引:1.SELECT * FROM mytable WHREE username=admin AND
28、city=郑州 2.3.SELECT * FROM mytable WHREE username=admin 而下面几个则不会用到:名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 13 页,共 42 页 - - - - - - - - - 14 1.SELECT * FROM mytable WHREE age=20 AND city=郑州 2.3.SELECT * FROM mytable WHREE city=郑州 (5)建立索引的时机到这里我们已经学会了建立索引,那么我们需要在
29、什么情况下建立索引呢?一般来说,在 WHERE 和 JOIN 中出现的列需要建立索引,但也不完全如此,因为MySQL 只对 ,=,BETWEEN,IN,以及某些时候的LIKE 才会使用索引。例如:1.SELECT t.Name2.3.FROM mytable t LEFT JOIN mytable m 4.5.ON t.Name=m.username WHERE m.age=20 AND m.city=郑州 此时就需要对city和 age 建立索引,由于mytable 表的 userame 也出现在了JOIN子句中,也有对它建立索引的必要。刚才提到只有某些时候的LIKE 才需建立索引。因为在以
30、通配符% 和_开头作查询时,MySQL 不会使用索引。例如下句会使用索引:1.SELECT * FROM mytable WHERE username likeadmin% 而下句就不会使用:1.SELECT * FROM mytable WHEREt Name like%admin 因此,在使用LIKE 时应注意以上的区别。(6)索引的不足之处上面都在说使用索引的好处,但过多的使用索引将会造成滥用。因此索引也会有它的缺点:虽然索引大大提高了查询速度,同时却会降低更新表的速度,如对表进行INSERT 、UPDATE 和 DELETE 。因为更新表时,MySQL 不仅要保存数据,还要保存一下索引
31、文件。建立索引会占用磁盘空间的索引文件。一般情况这个问题不太严重,但如果你在一个大表上创建了多种组合索引,索引文件的会膨胀很快。索引只是提高效率的一个因素,如果你的MySQL 有大数据量的表,就需要花时间研究建立最优秀的索引,或优化查询语句。名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 14 页,共 42 页 - - - - - - - - - 15 (7)使用索引的注意事项使用索引时,有以下一些技巧和注意事项:索引不会包含有NULL值的列只要列中包含有NULL值都将不会被包含在索
32、引中,复合索引中只要有一列含有NULL值,那么这一列对于此复合索引就是无效的。所以我们在数据库设计时不要让字段的默认值为 NULL 。使用短索引对串列进行索引, 如果可能应该指定一个前缀长度。例如,如果有一个CHAR(255)的列,如果在前 10 个或 20 个字符内,多数值是惟一的,那么就不要对整个列进行索引。短索引不仅可以提高查询速度而且可以节省磁盘空间和I/O 操作。索引列排序MySQL 查询只使用一个索引,因此如果where 子句中已经使用了索引的话,那么order by 中的列是不会使用索引的。因此数据库默认排序可以符合要求的情况下不要使用排序操作;尽量不要包含多个列的排序,如果需要
33、最好给这些列创建复合索引。like语句操作一般情况下不鼓励使用like操作,如果非使用不可,如何使用也是一个问题。like “%aaa% ” 不会使用索引而like “aaa% ”可以使用索引。不要在列上进行运算1.select * from users where YEAR(adddate)2007; 将在每个行上进行运算,这将导致索引失效而进行全表扫描,因此我们可以改成1.select * from users whereadddate 2007-01-01;不使用NOT IN 和操作以上,就对其中MySQL索引类型进行了介绍。小结复习思考题教材: mysql 实用教程mysql 入门很简
34、单清华大学出版社名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 15 页,共 42 页 - - - - - - - - - 16 参考书Mysql 数据库应用课程名称视图授课教师授课班级授课时数4 授课方式理论课授课重点、难点创建视图、修改视图和删除视图授课内容、教具与时间分配一视图概述视图是一个虚拟表,其内容由查询定义。同真实的表一样,视图包含一系列带有名称的列和行数据。但是,视图并不在数据库中以存储的数据值集形式存在。行和列数据来自由定义视图的查询所引用的表,并且在引用视图时动态
35、生成。二创建视图 CREATE VIEW1. 语法CREATE OR REPLACE ALGORITHM = UNDEFINED | MERGE | TEMPTABLE VIEW db_name.view_name (column_list) AS select_statement WITH CASCADED | LOCAL CHECK OPTION 通过该语句可以创建视图,若给定了 OR REPLACE ,则表示当已具有同名的视图时,名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第
36、16 页,共 42 页 - - - - - - - - - 17 将覆盖原视图。select_statement是一个查询语句,这个查询语句可从表或其它的视图中查询。视图属于数据库,因此需要指定数据库的名称,若未指定时,表示在当前的数据库创建新视图。表和数据库共享数据库中相同的名称空间,因此,数据库不能包含相同名称的表和视图,并且,视图的列名也不能重复。3.注意事项创建视图存在如下注意事项:(1) 运行创建视图的语句需要用户具有创建视图(CRATE VIEW )的权限,若加了OR REPLACE 时,还需要用户具有删除视图(DROP VIEW )的权限;(2) SELECT 语句不能包含FRO
37、M 子句中的子查询;(3) SELECT 语句不能引用系统或用户变量;(4) SELECT 语句不能引用预处理语句参数;(5) 在存储子程序内,定义不能引用子程序参数或局部变量;(6) 在定义中引用的表或视图必须存在。但是,创建了视图后,能够舍弃定义引用的表或视图。要想检查视图定义是否存在这类问题,可使用CHECK TABLE语句;(7) 在定义中不能引用TEMPORARY表,不能创建TEMPORARY视图;(8) 在视图定义中命名的表必须已存在;(9) 不能将触发程序与视图关联在一起;(10) 在视图定义中允许使用ORDER BY,但是,如果从特定视图进行了选择,而名师资料总结 - - -精
38、品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 17 页,共 42 页 - - - - - - - - - 18 该视图使用了具有自己ORDER BY 的语句,它将被忽略。三修改视图 ALTER VIEW1. 语法ALTER ALGORITHM = UNDEFINED | MERGE | TEMPTABLE VIEW view_name (column_list) AS select_statement WITH CASCADED | LOCAL CHECK OPTION 该语句用于更改已有视图的定义。其语法
39、与CREATE VIEW 类似。四删除视图 DROP VIEW1. 语法DROP VIEW IF EXISTS view_name , view_name . RESTRICT | CASCADE 该语句用户删除视图,可一次删除多个视图。IF EXISTS 选项确保语句正确运行。若没有该子句,当指定的视图不存在时,将发生错误。小结复习思考题参考书本文讲述MySql5.x中视图的使用,包括创建视图、修改视图和删除视图的相关知识,包括命令的语法、使用举例以及注意事项。复习题目:1.视图与表的区别和联系?名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - -
40、 - - - - 名师精心整理 - - - - - - - 第 18 页,共 42 页 - - - - - - - - - 19 教材: mysql 实用教程mysql 入门很简单清华大学出版社Mysql 数据库应用课程名称触发器使用授课教师授课班级授课时数2 授课方式理论课授课重点、难点创建触发器触发器的删除授课内容、教具与时间分配为什么要用触发器我们在 MySQL 5.0中包含对触发器的支持是由于以下原因: MySQL 早期版本的用户长期有需要触发器的要求。我们曾经许诺支持所有ANSI标准的特性。您可以使用它来检查或预防坏的数据进入数据库。您可以改变或者取消INSERT, UPDATE 以
41、及 DELETE 语句。您可以在一个会话中监视数据改变的动作。语法1. 语法:命名规则 CREATE TRIGGER - BEFORE | AFTER INSERT | UPDATE | DELETE ON FOR EACH ROW 触发器必须有名字,最多64 个字符,可能后面会附有分隔符.它和 MySQL 中其他对象的命名方式基本相象. trigger_name :标识触发器名称,用户自行指定; trigger_time:标识触发时机,用before和 after替换; trigger_event:标识触发事件,用insert,update 和 delete替换; tbl_name :标识建
42、立触发器的表名,即在哪张表上建立触发器; trigger_stmt:触发器程序体。名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 19 页,共 42 页 - - - - - - - - - 20 触发器程序可以使用begin 和 end 作为开始和结束,中间包含多条语句。 查看触发器查看触发器语法如下,如果知道触发器所在数据库,以及触发器名称等具体信息:SHOW TRIGGERS from SF_User like usermaps%; /* 查看 SF_User 库上名称和user
43、maps% 匹配的触发器 */ 如果不了解触发器的具体的信息,或者需要查看数据库上所有触发器,如下:SHOW TRIGGERS; / 查看所有触发器用上述方式查看触发器可以看到数据库的所有触发器,不过如果一个库上的触发器太多,由于会刷屏,可能没有办法查看所有触发器程序。 删除触发器删除触发器语法如下:DROP TRIGGER schema_name.trigger_name 小结复习思考题参考书本节讲述了触发器的使用:复习题目:1.如何创建触发器?教材: mysql 实用教程mysql 入门很简单清华大学出版社Mysql 数据库应用课程名称SQL查询语句授课教师授课班级授课时数8 授课方式理论
44、课名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 20 页,共 42 页 - - - - - - - - - 21 授课重点、难点基本查询语句使用集合函数查询连接查询授课内容、教具与时间分配SELECT 被用来检索从一个或多个表中精选的行。select_expression指出你想要检索的列。SELECT 也可以用来检索不引用任何表的计算行1、select*from table1; 2、select field1,field2 from table1; 3、select count(
45、*)from table2; 4、select table1.filed1,table2.filed2 from table1,table2 where table1.field1=valed1; 5、select *from table1 where field1=valed1 and fiels2=valed2 orded by field1; 6、select*from table1 where filed1=valed1 order byfiled1 desc linit n; 7、select *from table2 where name like %$lin%;(模糊 ) 8、s
46、ub_selects(高级 ) select *from table1 where id In(select id from table2.); 9、select .into table.(高级 ) (可用 select.into outfile.;insert.selkect. 替代 ) 10、SELECT MAX(field1) AS field1 FROM table1 列的最大值其中:表:字段: field 集合函数查询对一个表中的记录进行数据统计。例如,如果你想统计存储在表中的一次民意测验的投票结果。或者你想知道一个访问者在你的站点上平均花费了多少时间。要对表中的任何类型的数据进行统
47、计,都需要使用集合函数。你可以统计记录数目,平均值,最小值,最大值,名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 21 页,共 42 页 - - - - - - - - - 22 或者求和。当你使用一个集合函数时,它只返回一个数,该数值代表这几个统计值之一。这些函数的最大特点就是经常和GROUP BY语句配合使用,需要注意的是集合函数不能和非分组的列混合使用。行列计数计算查询语句返回的记录行数直接计算函数COUNT(*) 的值计算字段的平均值需要计算这些值的平均值。使用函数 AVG
48、() ,你可以返回一个字段中所有值的平均值。SELECT AVG(vote) FROM opinion 计算字段值的和SELECT SUM(purchase_amount) FROM orders 计算字段值的极值求字段的极值,涉及两个函数MAX() 和 MIN() 。SELECT name,MIN(birth) FROM pet; mysql 多表连接查询inner join,full outer join,left join,right jion 内部连接 inner join 两表都满足的组合full outer 全连 两表相同的组合在一起,A表有, B表没有的数据(显示为null ),
49、 同样B表有名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 22 页,共 42 页 - - - - - - - - - 23 A表没有的显示为(null) A表 left join B表 左连 , 以 A表为基础, A表的全部数据,B表有的组合。没有的为null A表 right join B表 右连 , 以 B表为基础, B表的全部数据,A表的有的组合。没有的为null 一、外连接1. 概念:包括左向外联接、右向外联接或完整外部联接2. 左连接: left join 或 left
50、outer join (1) 左向外联接的结果集包括 LEFT OUTER 子句中指定的左表的所有行,而不仅仅是联接列所匹配的行。如果左表的某行在右表中没有匹配行,则在相关联的结果集行中右表的所有选择列表列均为空值(null)。(2)sql 语句select * from table1 left join table2 on table1.id=table2.id 3. 右连接: right join 或 right outer join (1) 右向外联接是左向外联接的反向联接。将返回右表的所有行。如果右表的某行在左表中没有匹配行,则将为左表返回空值。(2)sql 语句select * fr