MySQL数据库技术教案课程

上传人:奇异 文档编号:64999184 上传时间:2022-03-22 格式:DOCX 页数:40 大小:119.55KB
收藏 版权申诉 举报 下载
MySQL数据库技术教案课程_第1页
第1页 / 共40页
MySQL数据库技术教案课程_第2页
第2页 / 共40页
MySQL数据库技术教案课程_第3页
第3页 / 共40页
资源描述:

《MySQL数据库技术教案课程》由会员分享,可在线阅读,更多相关《MySQL数据库技术教案课程(40页珍藏版)》请在装配图网上搜索。

1、20112012学年第1学期课程名称MySQL数据库系(院、部)教研室(实验室)授课班级主讲教师职称使用教材MySQL实用教程年八月教案课程名称MYSQ擞据库应用授课教师授课班级授课时数1授课方式理论课授课重点、难点关系数据库简介2.mysql安装授课内容、教具与时间分配数据库是从多关系型数据库产品中的一个,相比其他数据库而言,MySQL数据库可以称为目前运行速度最快的SQL语言。除此外还具有许多其他数据库所不具有的功能和选择。MySQL数据库是一种完全免费的产品,用户可以从网上直接下载,可以是个人,也可是商业用户,是不用支付任何费用的一个数据库。MySQL数据库具有以下特点:?没有限制同时访

2、问数据库的用户数量。?可以保存记录超过50,000,000条。?数据库系统的运行速度是目前所有产品中最快的。?可以简单、有效地进行用户权限的设置。?从MySQL数据库具有的以上牛1点可以看出,MySQL数据库是一个运行速度快、多线程、多用户和强大的SQL数据库服务器。MySQL可以运行在多种平台上,包才WindowsNT、UNIX和Linux系统。MySQL是建立数据库驱动和动态网站的最佳数据库。PHP、MySQL和Apache是Linux平台网站的最佳组合。目前,国际上知名公司也开始把MySQL作为其数据库管理系统,这也充分的证明了MySQL数据库的优越性能和广阔的发展前景。2.安装数据库系

3、统?数据库概述数据库理论基础数据存储方式数据库泛型数据库在开发中作用小结复习题本次课程主要内容为mysql关系数据库简介Mysql安装配置mysql入门很简单清华大学出版社Mysql数据库应用课程名称MYSQ擞据库应用授课教师授课班级授课时数4授课方式理论课授课重点、难点数据类型授课1.MySQL的数据类型I容、在MySQL中有如下几种数据类型:教具与时(1)数值型间分配MySQL提供了五种整型:TINYINT、SMALLINT、MEDIUMINT、INT和BIGINT,三种浮点类型:FLOAT、DOUBLE和DECIMAL。数值是诸如32或这样的值。MySQL支持科学表示法,科学表示法由整数

4、或浮点数后跟“e”或“E、一个符号(“+”或“-)和一个整数指数来表示。+12和都是合法的科学表示法表示的数。而不是合法的,因为指数前的符号未给出。浮点数由整数部分、一个小数点和小数部分组成。整数部分和小数部分可以分别为空,但不能同时为空。数值前可放一个负号“-”以表示负值(2)字符(串)型类型名说明CHAR定长字符串VARCHAR可变长字符串TINYBLOB非常小的BLOB(二进制大对象)BLOB小BLOB(3)日期和时间型类型名说明DATE“yyyymm-dD1格式表示的日期值TIMEhh:mm:ss格式表示的时间值DATETIME“YYYYMM-DD hh:mm:ss格式TIMESTAM

5、P“YYYYMMDDhhMms武表示的时间戳值YEAR“YYYY格式的年份值(4) NULL 值NULL表示未知值。比如填写表格中通讯地址不清楚留空不填写,这就是NULL值小结复习本次课程主要内容为思考 Mysql数据类型题 mysql入门很简单清华大学出版社拳芳书Mysql数据库应用课程名称授课班级数据库操作授课时数授课教师授课方式理论课MEDIUMBLOB中等的BLOBLONGBLOB大BLOBTINYTEXT非常小的文本串TEXT小文本串MEDIUMTEXT中等文本串LONGTEXT大文本串ENUM枚举;列可赋予某个枚举成员SET集合;列可赋予多个集合成员授课1创建数据库重2删除数据库点

6、、3数据库存储引擎难点MySQL存储引擎简介InnoDB存储引擎MyISAM存储引擎MEMORY存储引擎.存储引擎的选择授课创建数据库(当然,数据库名asb不能是已经存在的)内容、mysqlcreatedatabaseasb;教具与时选用数据库,使其成为当前操作的数据库间分配mysqluseasb;成功选中后会有如下显示:Databasechanged甚至可以在窗口命令登陆mysql数据库的时候直接选中要操作的数据库(当然前提是asb数据库存在)binmysqlasb-uuesername-pEnterpassword:*查看当前所操作的数据库名称mysqlselectdatabase();运

7、行后结果如下:+|database()|+|asb|+1rowinsetsec)数据库存储引擎:ISAMISAM是一个定义明确且历经时间考验的数据表格管理方法,它在设计之时就考虑到数据库被查询的次数要远大于更新的次数。因此,ISAM执行读取操作的速度很快,而且不占用大量的内存和存储资源。ISAM的两个主要不足之处在于,它不支持事务处理,也不能够容错:如果你的硬盘崩溃了,那么数据文件就无法恢复了。如果你正在把ISAM用在关键任务应用程序里,那就必须经常备份你所有的实时数据,通过其复制特性,MySQL能够支持这样的备份应用程序。MyISAMMyISAM是MySQL的ISAM扩展格式和缺省的数据库引

8、擎。除了提供ISAM里所没有的索引和字段管理的大量功能,MyISAM还使用一种表格锁定的机制,来优化多个并发的读写操作。其代价是你需要经常运行OPTIMIZETABLE命令,来恢复被更新机制所浪费的空间。MyISAM还有一些有用的扩展,例如用来修复数据库文件的MyISAMChk工具和用来恢复浪费空间的MyISAMPack工具。MyISAM强调了快速读取操作,这可能就是为什么MySQL受到了Web开发如此青睐的主要原因:在Web开发中你所进行的大量数据操作都是读取操作。所以,大多数虚拟主机提供商和Internet平台提供商(InternetPresenceProvider,IPP)只允许使用My

9、ISAM格式。HEAPHEAP允许只驻留在内存里的临时表格。驻留在内存里让HEAP要比ISAM和MyISAM都快,但是它所管理的数据是不稳定的,而且如果在关机之前没有进行保存,那么所有的数据都会丢失。在数据行被删除的时候,HEAP也不会浪费大量的空间。HEAP表格在你需要使用SELECT表达式来选择和操控数据的时候非常有用。要记住,在用完表格之后就删除表格。让我再重复一遍:在你用完表格之后,不要忘记删除表格。InnoDB和BerkleyDBInnoDB和BerkleyDB(BDB)数据库引擎都是造就MySQL灵活性的技术的直接产品,这项技术就是MySQL+API。在使用MySQL的时候,你所面

10、对的每一个挑战几乎都源于ISAM和MyISAM数据库引擎不支持事务处理也不支持外来键。尽管要比ISAM和MyISAM引擎慢很多,但是InnoDB和BDB包括了对事务处理和外来键的支持,这两点都是前两个引擎所没有的。如前所述,如果你的设计需要这些特性中的一者或者两者,那你就要被迫使用后两个引擎中的一个了。本次课程主要内容为小结Mysql数据库操作复习数据库存储引擎思考复习题目:题1.什么是存储引擎?如何选择?拳芳书数据库操作方法mysql入门很简单清华大学出版社Mysql数据库应用课程“办数据库表操作授课教师名称授课授课时数4授课方式理论课班级授课1.创建表重点、2.修改表难点3.删除表授课用C

11、REATETABLE语句创建数据表内容、用CREATETABLE语句创建表。此语句的完整语法是相当复杂的,因为存在那么多的可选子句,教具但在实际中此语句的应用相当简单。如我们在第1章中使用的所有CREATETABLE语句者B不那与时么复杂。间分配有意思的是,大多数复杂东西都是一些子句,这些子句MySQ小分析后扔掉。参阅附录1可以看到这些复杂的东西。1、CREATETABLE语句的基本语法CREATETABLEtbl_name(create_definition,.)TYPE=table_typecreate_definition:col_nametypeNOTNULL|NULLDEFAULTd

12、efault_valueAUTO_INCREMENTPRIMARYKEY用ALTERTABLE语句修改表的结构有时你可能需要改变一下现有表的结构,那么AlterTable语句将是你的合适选择。增加列altertabletbl_nameaddcol_nametype例如,给表增加一列weightmysqlaltertablepetaddweightint;删除列altertabletbl_namedropcol_name例如,删除列weight:mysqlaltertablepetdropweight;改变列altertabletbl_namemodifycol_nametype例如,改变wei

13、ght的类型:mysqlaltertablepetmodifyweightsamllint;另一种方法是:altertabletbl_namechangeold_col_namecol_nametype例如:mysqlaltertablepetchangeweightweightsamllint;给列更名mysqlaltertablepetchangeweightwei;给表更名例如,把pet表更名为animalmysqlaltertablepetrenameanimal;改变表的类型另外,可以为列增加或删除索引等属性。用DROPTABLE语句删除数据表DROPTABLEIFEXISTStbl

14、_name,tbl_name,.DROPTABL删除一个或多个数据库表。所有表中的数据和表定义均被删除,故小心使用这个命令!在MySQL或以后版本,你可以使用关键词IFEXISTS类避免不存在表的一个错误发生。例如:mysqlUSEmytest;mysqlDROPTABLEguestbook;或者,也可以同时指定数据库和表:mysqlDROPTABLEmytest.guestbook;本节讲述了有关表的大部分操作,现在将所述内容总结如下:MySQL勺表的三种类型小结如何创建表、删除表复习如何改变表的结构、名字思考题复习题目:参考1.数据表操作方法?书教材:mysql实用教程mysql入门很简单

15、清华大学出版社Mysql数据库应用课程名称Mysql索引授课教师授课班级授课时数2授课方式理论课授课重点、难点Mysql索引授课内容、教具与时间分配索引是快速搜索的关键。MySQlJt引的建立对于MySQL勺高效运行是很重要的。下面介绍几种常见的MySQ琮引类型。MySQL索引类型包括:(1)普通索引这是最基本的索引,它没有任何限制。它有以下几种创建方式:创建索引1.CREATEINDEXindexNameONmytable(username(length);如果是CHARVARCHA喽型,length可以小于字段实际长度;如果是BLO所口TEXT类型,必须指定length,下同。修改表结构1

16、.ALTERmytableADDINDEXindexNameON(username(length)创建表的时候直接指定1. CREATETABLEmytable(2. IDINTNOTNULL,3. usernameVARCHAR(16)NOTNULL,4. INDEXindexName(username(length)5. );删除索引的语法:1.DROPINDEXindexNameONmytable;(2)唯一索引它与前面的普通索引类似,不同的就是:索引列的值必须唯一,但允许有空值。如果是组合索引,则列值的组合必须唯一。它有以下几种创建方式:创建索引1.CREATEUNIQUEINDEXi

17、ndexNameONmytable(username(length)修改表结构1.ALTERmytableADDUNIQUEindexNameON(username(length)创建表的时候直接指定1. CREATETABLEmytable(2. IDINTNOTNULL,3. usernameVARCHAR(16)NOTNULL,4. UNIQUEindexName(username(length)5. );(3)主键索引它是一种特殊的唯一索引,不允许有空值。一般是在建表的时候同时创建主键索引:1. CREATETABLEmytable(2. IDINTNOTNULL,3. usernam

18、eVARCHAR(16)NOTNULL,4. PRIMARYKEY(ID)5. );当然也可以用ALTER命令。记住:一个表只能有一个主键。(4)组合索引为了形象地对比单列索引和组合索引,为表添加多个字段:1. CREATETABLEmytable(2. IDINTNOTNULL,3. usernameVARCHAR(16)NOTNULL,4. cityVARCHAR(50)NOTNULL,5. ageINTNOTNULL6. );为了进一步榨取MySQLll勺效率,就要考虑建立组合索引。就是将name,city,age建到一个索引里:1.ALTERTABLEmytableADDINDEXna

19、me_city_age(name(10),city,age);建表时,usernname长度为16,这里用10。这是因为一般情况下名字的长度不会超过10,这样会加速索引查询速度,还会减少索引文件的大小,提高INSERT的更新速度。如果分别在usernname,city,age上建立单列索引,让该表有3个单列索引,查询时和上述的组合索引效率也会大不一样,远远低于我们的组合索引。虽然此时有了三个索引,但MySQLR能用到其中的那个它认为似乎是最有效率的单列索引。建立这样的组合索引,其实是相当于分别建立了下面三组组合索引:1. usernname,city,age2. usernname,city3

20、. usernname为什么没有city,age这样的组合索引呢?这是因为MySQLM合索引“最左前缀”的结果。简单的理解就是只从最左面的开始组合。并不是只要包含这三列的查询都会用到该组合索引,下面的几个SQL就会用到这个组合索引:1. SELECT*FROMmytableWHREEusername=adminANDcity=关叼W2. SELECT*FROMmytableWHREEusername=admin”而下面几个则不会用到:1. SELECT*FROMmytableWHREEage=20ANDcity=关叼W2. SELECT*FROMmytableWHREEcity=关阴I(5)建

21、立索引的时机到这里我们已经学会了建立索引,那么我们需要在什么情况下建立索引呢?一般来说,在WHER和JOIN中出现的列需要建立索引,但也不完全如此,因为MySQL只对,=,BETWEENIN,以及某些时候的LIKE才会使用索引。例如:1. SELECT2. FROMmytabletLEFTJOINmytablem3. ON=WHERE=20AND=关附N此时就需要对city和age建立索引,由于mytable表的userame也出现在了JOIN子句中,也有对它建立索引的必要。刚才提到只有某些时候的LIKE才需建立索引。因为在以通配符崎口开头作查询时,MySQL不会使用索引。例如下句会使用索引:

22、1.SELECT*FROMmytableWHEREusernamelikeadmin%而下句就不会使用:1. SELECT*FROMmytableWHEREtNamelike%admin因此,在使用LIKE时应注意以上的区别。(6)索引的不足之处上面都在说使用索引的好处,但过多的使用索引将会造成滥用。因此索引也会有它的缺点:虽然索引大大提高了查询速度,同时却会降低更新表的速度,如对表进行INSERTUPDATE和DELETE因为更新表时,MySQL仅要保存数据,还要保存一下索引文件。建立索引会占用磁盘空间的索引文件。一般情况这个问题不太严重,但如果你在一个大表上创建了多种组合索引,索引文件的会

23、膨胀很快。索引只是提高效率的一个因素,如果你的MySQLt大数据量的表,就需要花时间研究建立最优秀的索引,或优化查询语句。(7)使用索引的注意事项使用索引时,有以下一些技巧和注意事项:索引不会包含有NULL值的列只要列中包含有NULL值都将不会被包含在索引中,复合索引中只要有一列含有NULL值,那么这一列对于此复合索引就是无效的。所以我们在数据库设计时不要让字段的默认值为NULL使用短索引对串列进行索引,如果可能应该指定一个前缀长度。例如,如果有一个CHAR(255)的列,如果在前10个或20个字符内,多数值是惟一的,那么就不要对整个列进行索引。短索引不仅可以提高查询速度而且可以节省磁盘空间和

24、I/O操作。索引列排序MySQL查询只使用一个索引,因此如果where子句中已经使用了索引的话,那么orderby中的列是不会使用索引的。因此数据库默认排序可以符合要求的情况下不要使用排序操作;尽量不要包含多个列的排序,如果需要最好给这些列创建复合索引。like语句操作一般情况下不鼓励使用like操作,如果非使用不可,如何使用也是一个问题。like%aaa%不会使用索引而likeaaa%可以使用索引。不要在列上进行运算1.select*fromuserswhereYEAR(adddate)2007;将在每个行上进行运算,这将导致索引失效而进行全表扫描,因此我们可以改成1.select*from

25、userswhereadddate期版本的用户长期有需要触发器的要求。我们曾经许诺支持所有ANSI标准的特性。您可以使用它来检查或预防坏的数据进入数据库。您可以改变或者取消INSERT,UPDATE以及DELETE语句。您可以在一个会话中监视数据改变的动作。语法1 .语法:命名规贝ICREATETRIGGER-BEFOREAFTERINSERT|UPDATE|DELETEONFOREACHROW触发器必须有名字,最多64个字符,可能后面会附有分隔符.它和MySQL中其他对象的命名方式基本相象. trigger_name:标识触发器名称,用户自行指定; trigger_time:标识触发时机,用

26、before和after替换; trigger_event:标识触发事件,用insert,update和delete替换; tbl_name:标识建立触发器的表名,即在哪张表上建立触发器; trigger_stmt:触发器程序体。触发器程序可以使用begin和end作为开始和结束,中间包含多条语句。查看触发器查看触发器语法如下,如果知道触发器所在数据库,以及触发器名称等具体信息:SHOW?TRIGGERS?from?SF_User?like?usermaps%”;?/*?查看SF_User库上名称和usermaps%配的触发器?*/?如果不了解触发器的具体的信息,或者需要查看数据库上所有触发器

27、,如下:SHOWTRIGGERS;trigger_name?小结复习题经臼书本节讲述了触发器的使用:复习题目:1.如何创建触发器?教材:mysql实用教程mysql入门很简单清华大学出版社Mysql数据库应用课程名称SQL查询语句授课教师授课授课时数授课方式理论课班级授课基本查询语句重占、使用集合函数查询难点连接查询授课SELECT被用来检索从一个或多个表中精选的行。select_expression指出你想要检索的歹U。内SELECT也可以用容、教具来检索不引用任何表的计算行与时间分1、select*fromtablel;2、selectfield1,field2fromtablel;3、s

28、electcount(*)fromtable2;4、select,fromtable1,table2where=valed1;5、select*fromtable1wherefield1=valed1andfiels2=valed2ordedbyfield1;6、 select*fromtable1wherefiled1=valed1orderbyfiled1desclinitn;7、select*fromtable2wherenamelike%$lin%;(模糊)8、sub_selects府级)select*fromtable1whereidIn(selectidfromtable2);9、

29、select.intotable(高级)(可用selectintooutfile;insertselkect替代)10、SELECTMAX(field1)ASfield1FROMtable1列的最大值其中:表:字段:field集合函数查询对一个表中的记录进行数据统计。例如,如果你想统计存储在表中的一次民意测验的投票结果。或者你想知道一个访问者在你的站点上平均花费了多少时间。要对表中的任何类型的数据进行统计,都需要使用集合函数。你可以统计记录数目,平均值,最小值,最大值,或者求和。当你使用一个集合函数时,它只返回一个数,该数值代表这几个统计值之一。这些函数的最大特点就是经常和GROUPBY语句配

30、合使用,需要注意的是集合函数不能和非分组的列混合使用。行列计数计算查询语句返回的记录行数直接计算函数COUNT(*)的值计算字段的平均值需要计算这些值的平均值。使用函数AVG(),你可以返回一个字段中所有值的平均值。SELECTAVG(vote)FROMopinion计算字段值的和SELECTSUM(purchase_amount)FROMorders计算字段值的极值求字段的极值,涉及两个函数MAX()和MIN()。SELECTname,MIN(birth)FROMpet;mysql多表连接查询innerjoinfullouterjoin,leftjoin,rightjion内部连接inner

31、join两表都满足的组合fullouter全连两表相同的组合在一起,A表有,B表没有的数据(显示为null),同样B表有A表没有的显示为(null)A表leftjoinB表左连,以A表为基础,A表的全部数据,B表有的组合。没有的为nullA表rightjoinB表右连,以B表为基础,B表的全部数据,A表的有的组合。没有的为null一、外连接1 .概念:包括左向外联接、右向外联接或完整外部联接2 .左连接:leftjoin或leftouterjoin(1)左向外联接的结果集包括LEFTOUTER子句中指定的左表的所有行,而不仅仅是联接列所匹配的行。如果左表的某行在右表中没有匹配行,则在相关联的结

32、果集行中右表的所有选择列表列均为空值(null)。(2)sql语句select*fromtable1leftjointable2on=3 .右连接:rightjoin或rightouterjoin(1)右向外联接是左向外联接的反向联接。将返回右表的所有行。如果右表的某行在左表中没有匹配行,则将为左表返回空值。(2)sql语句select*fromtable1rightjointable2on=4 .完整外部联接:fulljoin或fullouterjoin(1)完整外部联接返回左表和右表中的所有行。当某行在另一个表中没有匹配行时,则另一个表的选择列表列包含空值。如果表之间有匹配行,则整个结果集

33、行包含基表的数据值。(2)sql语句select*fromtable1fulljointable2on=、内连接1 .概念:内联接是用比较运算符比较要联接列的值的联接2 .内连接:join或innerjoin语句select*fromtableljointable2on=三、交叉连接(完全)1 .概念:没有WHERE子句的交叉联接将产生联接所涉及的表的笛卡尔积。第一个表的行数乘以第二个表的行数等于笛卡尔积结果集的大小。(table1和table2交叉连接产生3*3=9条记录)2 .交叉连接:crossjoin(不带条件where.)语句select*fromtablelcrossjointab

34、le2小结本节讲述了部分查询操作:复习复习题目:思考1.练习表的查询?题教材:mysql实用教程拳芳书mysql入门很简单清华大学出版社Mysql数据库应用课程名称Mysql插入更新删除授课教师授课班级授课时数4授课方式理论课授课重点、难点Mysql的插入更新删除方法授课内容、教具1插入、更新和删除记录1.1插入记录与时间分配Insertintotable_name(field_name1,field_name2,)values(valuel,value2,Insertintovalues(valuel,value2,);的更新插入删除方法?教材:mysql实用教程mysql入门很简单清华大学

35、出版社Mysql数据库应用课程名称Mysql运算符授课教师授课班级授课时数4授课方式理论课授课重点、难点算术运算符、比较运算符、逻辑运算符、位运算符、表达式授课内容、教具与时间分配运算符优先级顺序最高优先级:=1 |,or,xor2 &,and3 between,case,when,then,else4 =,=,=,!=,is,like,regexp,in5 |6 &7 8 -,+9 *,/,div,%,mod10 人11 -(unaryminus),(unarybitinversion)12 !,not最低优先级binary,collate算数运算符加mysqlselect1+2;减mysq

36、lselect2-1;乘mysqlselect2*3;除mysqlselect5/3;商mysqlselect5div2;模mysqlselect5%2,mod(5,2);逻辑运算符非mysqlselectnot0,not1,notnull;mysqlselect!0,!1,!null;与mysqlselect(1and1),(0and1),(3and1),(1andnull);mysqlselect(1&1),(0&1),(3&1),(1&null);或mysqlselect(1or0),(0or0),(1ornull),(1or1),(nullornull);mysqlselect(1|0

37、),(0|0),(1|null),(1|1),(null|null);异或mysqlselect(1xor1),(0xor0),(1xor0),(0xor1),(nullxor1);mysqlselect(1A1),(0A0),(1A0),(0A1),(nullA1);比较运算符mysqlselect1=0,1=1,null=null;不等于mysqlselect10,11,nullnull;安全等于mysqlselect11,20,00,nullnull;小于mysqlselectab,aa,ac,1selectbdf=b,b=b,0selectab,abca,10;大于等于mysqlsel

38、ecta=b,abc=a,1=0,1=1;betweenmysqlselect10between10and20,9between10and20;inmysqlselect1in(1,2,3),tin(t,a,b,T,e),0in(1,2);isnullmysqlselect0isnull,nullisnull;isnotnullmysqlselect0isnotnull,nullisnotnull;likemysqlselect123456like123%,123456like%123%,123456like%321%;regexpmysqlselectabcdefregexpab,abcde

39、fgregexpk;位运算符位与mysqlselect2&3;mysqlselect2&3&4;位或mysqlselect2|3;位异或mysqlselect2A3;位取反位右移mysqlselect1003;位左移mysqlselect1003;小结复习思考题经支书本节讲述了mysql运算符:1.熟悉各种运算符及其使用方法教材:mysql实用教程mysql入门很简单清华大学出版社Mysql数据库应用课程名称系统内置函数授课教师授课班级授课时数2授课方式理论课授课重点、难占八、Mysql函数使用授课内容、教具与时间分配算数运算子+,-,*,/除于0会等于NULL。比较运算子任何东西跟NULL比

40、较会等于NULL。比较字符串通常不需要注意大小写,如果要比较大小写,用BINARY关键词。逻辑运算子传回的值后1(true),0(false,或NULL。任何/、是0或小是NULL的值都是true。字符串函式concat(s1,s2,)-连接字符串s1和s2conv(n,original_base,new_base)-转换数字n从本来的base至U新的baselength(s)-找字符串的长度load_file(filename)-依照字符串传回档案的内容locate(needle,haystack,position)-传回needle子符串的开始位直,在haystack子符串里,从posit

41、ion开始lower(s)andupper(s)-转换s到小与或人与quote(s)-跳脱s字符串,让它可以安全输入数据库replace(target,find,replace)-传回target字符串,?各find字符串覆盖成replace字符串soundex(s)-传回跟s类似的soundex字符串。soundex是字符串的发音substring(s,position,length)-传回字符串里的字符串,s是本来的字符串,position是开始的位置,length是传回的字数trim(s)-移除开头跟字尾的空格符。也可以用rtrim()或ltrim()字符串比较的函式LIKE-利用通配字

42、符来进行比较RLIKE-利用正规表示法来进行比较STRCMP-比较字符串,类似C里面的strcmp()MATCH-进彳亍full-text比较数字函式abs(n)传回n的正数ceiling(n)nroundeduptothenearestintegerflooKn)nroundeddowntothenearestintegermod(n,m)和div这两个函式会将n除于m。div传回商数,mod()会传回剩余数。power(n,m)ntothepowerofmrand(n)传回0到1的随意数。n可以不提供,如果提供会用来产生随意数。相同的n会产生相同的随意数。round(n,d)nrounde

43、dtothenearestinteger.ifsupplyd,nwillberoundedtoddecimalplaces.sqrt(n)传回n的平方mod()可以是mod(9,2)或9mod2或9%2。div只能用9div2。日期和时间函式adddate(date,INTERVALntype)和subdate(date,INTERVALntype)cast函式cast可以用来改变类型,用cast()和convert。函式。两个函式相同,但是不同的语法构造。cast(expressionAStype)convert(expression,type)cast()是依照ANSI的规格,conver

44、t。是依照ODBC的规格。类型可以是BINARY,CHAR,DATE,DATETIME,SIGNED(INTEGER),和UNSIGNED(INTEGER)。通常MySQL会自动帮你改变类型。其它函式benchmark(count,expression)这个函式是用来测试查询的速度,只会传回0值。encrypt(s,salt)将s加密用Unix的加密系统。salt字符串是两个字符的字符串,可以不用。如果没有crypt功能,像在Windows系统,这个函式会传回NULL。found_rows()传回字段的数量,如果没有用LIMIT。只有在SELECT里使用SQL_CALC_FOUND_ROWS才

45、能用这个函式。last_insert_id()传回最后产生的AUTO_INCREMENT值。md5(s)传回128bitMD5的加密字符串。password(s)计算s的密码,不建议用这个函式来储存密码。用于GROUPBY的函式这些还是专门为了GROUPBY而写的。avg(column)-传回字段的平均值count(column)-传回字段的数量min(column)-传回字段的最小值max(column)-传回子段的最大值std(column)-传回字段的标准差sum(column)-传回字段的总数小结复习思考题经支书本节讲述了有美函数的使用:复习题目:1.熟悉各种函数及其使用。教材:mys

46、ql实用教程mysql入门很简单清华大学出版社Mysql数据库应用课程名称过程式数据库对象授课教师授课班级授课时数2授课方式理论课授课重点、难点创建存储过程调用存储过程查看存储过程授课内容、教具与时间分配我们大家都知道MySQL存储过程是从MySQL开始逐渐增加新的功能。存储过程在实际应用中也是优点大于缺点。不过最主要的还是执行效率和SQL代码封装。特别是SQL代码封装功能,如果没有存储过程。在外部程序访问数据库时(例如PHP),要组织很多SQL语句。特别是业务逻辑复杂的时候,一大堆的SQL和条件夹杂在PHP代码中,让人不寒而栗。现在有了MySQL存储过程,业务逻辑可以封装存储过程中,这样不仅

47、容易维护,而且执行效率也高。一、MySQL创建存储过程“pr_add”是个简单的MySQL存储过程,这个MySQL存储过程后两个int类型的输入参数“a”、b”,返回这两个参数的和。1. dropprocedureifexistspr_add二、调用MySQL存储过程2. callpr_add(10,20);执行MySQL存储过程,存储过程参数为MySQL用户变量。3. seta=10;4. setb=20;5. callpr_add(a,b);三、MySQL存储过程特点创建MySQL存储过程的简单语法为:1.createprocedure存储过程名字()2. (3. in|out|inout

48、参数datatype4. )5. begin6. MySQL语句;7. end;MySQL存储过程参数如果不显式指定“in”、“out”、“inout”,则默认为“in”。习惯上,对于是“in”的参数,我们都不会显式指定。1. MySQL存储过程名字后面的“()”是必须的,即使没有一个参数,也需要“()”2. MySQL存储过程参数,不能在参数名称前加“,如:aint。下面的创建存储过程语法在MySQL中是错误的(在SQLServer中是正确的)。MySQL存储过程中的变量,不需要在变量名字前加,虽然MySQL客户端用户变量要加个“。3. MySQL存储过程的参数不能指定默认值。4. MySQ

49、L存储过程不需要在procedurebody前面加as。而SQLServer存储过程必须加“as”关键字。5. 如果MySQL存储过程中包含多条MySQL语句,则需要beginend关键字。6. MySQL存储过程中的每条语句的末尾,都要加上分号“;”7. MySQL存储过程中的注释。8. 不能在MySQL存储过程中使用“return”关键字。9. 调用MySQL存储过程时候,需要在过程名字后面加“()”,即使没有一个参数,也需要“()”1. callpr_no_param();10. 因为MySQL存储过程参数没有默认值,所以在调用MySQL存储过程时候,不能省略小结参数。可以用null来替

50、代。本节讲述了有关表的大部分操作,现在将所述内容总结如下:复习MySQL勺表的三种类型思考题如何创建表、删除表经臼书如何改变表的结构、名字复习题目:1.数据表操作方法?教材:mysql实用教程mysql入门很简单清华大学出版社Mysql数据库应用课程名称备份与恢复授课教师授课班级授课时数4授课方式理论课授课重点、难点授课内容、教具与时间分配目前MySQL支持的免费备份工具有:mysqldump、mysqlhotcopy,还可以用SQL语法进行备份:BACKUPTABL豉者SELECTINTOOUTFILE又或者备份二进制日志(binlog),还可以是直接拷贝数据文件和相关的配置文件。MyISA

51、M表是保存成文件的形式,因此相对比较容易备份,上面提到的几种方法都可以使用。Innodb所有的表都保存在同一个数据文件ibdata1中(也可能是多个文件,或者是独立的表空间文件),相对来说比较不好备份,免费的方某可以是拷贝数据文件、备份binlog,或者用mysqldump。1、mysqldump备份mysqldump是来用SQL级别的备份机制,匕将数据表导成SQL脚本文件,在小何的MySQL版本之间升级时相对比较合适,这也是最常用的备份方法。还原用mysqldump备份出来的文件是一个可以直接倒入的SQL脚本,有两种方法可以将数据导入。直接用mysql客户端例如:/usr/local/mys

52、ql/bin/mysql-uyejr-pyejrdb_name用SOURCE语法其实这不是标准的SQL语法,而是mysql客户端提供的功能,例如:SOURCE/tmp/;这里需要指定文件的绝对路径,并且必须是mysqld运行用户(例如nobody)有权限读取的文件。2、 mysqlhotcopy备份mysqlhotcopy是一个PERL程序,最初由TimBunce编写。它使用LOCKTABLESFLUSHTABLES和cp或scp来快速备份数据库。它是备份数据库或单个表的最快的途径,但它只能运行在数据库文件(包括数据表定义文件、数据文件、索引文件)所在的机器上。mysqlhotcopy只能用于

53、备份MyISAM并且只能运行在类Unix和NetWare系统上。mysqlhotcopy支持一次性拷贝多个数据库,同时还支持正则表达。还原mysqlhotcopy备份出来的是整个数据库目录,使用时可以直接拷贝到mysqld指定的datadir(在这里是/usr/local/mysql/data/)目录下即可,同时要注意权限的问题,如下例:root#cp-rfdb_name/usr/local/mysql/data/root#chown-Rnobody:nobody/usr/local/mysql/data/(将db_name目录的属主改成mysqld运行用户)3、 SQL语法备份备份BACKUPTABLE语法其实和mysqlhotcopy的工作原理差不多,都是锁表,然后拷贝数据文件。它能实现在线备份,但是效果不理想

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

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!