MySQL学习由浅至深(二)ppt课件_第1页
MySQL学习由浅至深(二)ppt课件_第2页
MySQL学习由浅至深(二)ppt课件_第3页
MySQL学习由浅至深(二)ppt课件_第4页
MySQL学习由浅至深(二)ppt课件_第5页
已阅读5页,还剩16页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

初级第二章,要做就做最好,要不就不做!,1,MySQLAB提供了几种类型的程序:MYSQL服务器和服务器启动脚本:mysqld是MySQL服务器mysqld_safe、mysql.server和mysqld_multi是服务器启动脚本mysql_install_db初始化数据目录和初始数据库访问服务器的客户程序:mysql是一个命令行客户程序,用于交互式或以批处理模式执行SQL语句。mysqladmin是用于管理功能的客户程序。mysqlcheck执行表维护操作。mysqldump和mysqlhotcopy负责数据库备份。mysqlimport导入数据文件。mysqlshow显示信息数据库和表的相关信息。,2,登录MySql-Front客户端,3,CREATEDATABASE语法CREATEINDEX语法CREATETABLE语法ALTERDATABASE语法ALTERTABLE语法DROPDATABASE语法DROPINDEX语法DROPTABLE语法RENAMETABLE语法,4,语法如下:CREATEDATABASE|SCHEMAIFNOTEXISTSdb_namecreate_specification,create_specification.create_specification:DEFAULTCHARACTERSETcharset_name|DEFAULTCOLLATEcollation_name例子如下:mysqlcreatedatabasedemocharactersetutf8;,5,语法如下:CREATETEMPORARYTABLEIFNOTEXISTStbl_name(create_definition,.)table_optionsselect_statement例子如下:mysqlcreatetabletest(sidint,startdate,remakevarchar(200);,6,语法如下:RENAMETABLEtbl_nameTOnew_tbl_name,tbl_name2TOnew_tbl_name2重命名操作自动进行,这意味着当重命名正在运行时,其它线程不能读取任何表。例如,如果您有一个原有的表old_table,您可以创建另一个具有相同结构的空表new_table,然后用此空表替换原有的表例子如下:mysqlrenametabletesttonew_test;,7,语法如下:create_definition:column_definition|CONSTRAINTsymbolPRIMARYKEYindex_type(index_col_name,.)|KEYindex_nameindex_type(index_col_name,.)|INDEXindex_nameindex_type(index_col_name,.)|CONSTRAINTsymbolUNIQUEINDEXindex_nameindex_type(index_col_name,.)|FULLTEXT|SPATIALINDEXindex_name(index_col_name,.)|CONSTRAINTsymbolFOREIGNKEYindex_name(index_col_name,.)reference_definition|CHECK(expr)例子如下:mysqlcreatetabletest2(sidintPRIMARYKEY,startdate,remakevarchar(50);插入数据,主键重复约束,会提示错误,请修改主键数据:mysqlinsertintotest2(sid,start,remake)values(100,now(),test100);mysqlinsertintotest2(sid,start,remake)values(100,now(),test100);,8,语法如下:CREATEUNIQUE|FULLTEXT|SPATIALINDEXindex_nameUSINGindex_typeONtbl_name(index_col_name,.)index_col_name:col_name(length)ASC|DESC例子如下:mysqlcreateindextest_start_indexontest(start);,9,语法如下:DROPTEMPORARYTABLEIFEXISTStbl_name,tbl_name.RESTRICT|CASCADE。DROPTABLE用于取消一个或多个表。您必须有每个表的DROP权限。所有的表数据和表定义会被取消,所以使用本语句要小心!例子如下:mysqlDROPTABLEIFEXISTStest2;,注意:对于一个带分区的表,DROPTABLE会永久性地取消表定义,取消各分区,并取消储存在这些分区中的所有数据。DROPTABLE还会取消与被取消的表有关联的分区定义(.par)文件,10,语法如下:DROPDATABASE|SCHEMAIFEXISTSdb_name。DROPDATABASE用于取消数据库中的所用表格和取消数据库。使用此语句时要非常小心!如果要使用DROPDATABASE,您需要获得数据库DROP权限。IFEXISTS用于防止当数据库不存在时发生错误。例子如下:mysqlDROPDATABASEIFEXISTSdemo;,11,语法如下:ALTERIGNORETABLEtbl_namealter_specification,alter_specification.alter_specification:ADDCOLUMNcolumn_definitionFIRST|AFTERcol_name|ADDCOLUMN(column_definition,.)|ADDINDEXindex_nameindex_type(index_col_name,.)|ADDCONSTRAINTsymbolPRIMARYKEYindex_type(index_col_name,.)ALTERTABLE用于更改原有表的结构。例如,您可以增加或删减列,创建或取消索引,更改原有列的类型,或重新命名列或表。您还可以更改表的评注和表的类型。,12,mysqlALTERTABLEt2DROPCOLUMNc,DROPCOLUMNd;删除test表中的两个字段c与d。mysqlALTERTABLEt2ADDCOLUMNc1INT,ADDCOLUMNd1VARCHAR(20);删除test表中的两个字段c与d。查看表字段与数据类型mysqlshowcolumnsfromt2;,13,INSERT语法SELECT语法UPDATE语法DELETE语法TRUNCATE语法,14,INSERT语法:往需要的表中写入相应的字段数据mysqlinsertintonew_test(sid,start,remake)values(200,now(),test100);INSERT.SELECT语法表之间数据快速复制mysqlinsertintotest(sid,start,remake)select*fromnew_test;,15,JOIN语法SQL语句联合查询一个表引用还被称为一个联合表达式。与SQL标准相比,table_factor的语法被扩展了。SQL标准只接受table_reference,而不是圆括号内的一系列条目。如果我们把一系列table_reference条目中的每个逗号都看作相当于一个内部联合,则这是一个稳妥的扩展。mysqlselect*fromtesttleftjoin(new_testn)on(t.sid=n.sid);mysqlSELECT*FROMtestt1LEFTJOINnew_testt2ONt1.sid=t2.sidUNION语法SQL语句组合查询语法:SELECT.UNIONALL|DISTINCTSELECT.UNIONALL|DISTINCTSELECT.例子:(SELECTaFROMtbl_nameWHEREa=10ANDB=1)UNION(SELECTaFROMtbl_nameWHEREa=11ANDB=2)ORDERBYaLIMIT10;,16,修改表数据语法:UPDATELOW_PRIORITYIGNOREtbl_nameSETcol_name1=expr1,col_name2=expr2.WHEREwhere_definitionORDERBY.LIMITrow_count例子:mysqlupdatetestsetsid=300;mysqlupdatetestsetsid=300whereremark=test;,17,删除表中的数据:DELETELOW_PRIORITYQUICKIGNOREFROMtbl_nameWHEREwhere_definitionORDERBY.LIMITrow_count例子:mysqldeletefromtest;mysqldeletefromtestwheresid=200;多表删除数据:对于第一个语法,只删除列于FROM子句之前的表中的对应的行。对于第二个语法,只删除列于FROM子句之中(在USING子句之前)的表中的对应的行。作用是,您可以同时删除许多个表中的行,并使用其它的表进行搜索:DELETEt1,t2FROMt1,t2,t3WHEREt1.id=t2.idANDt2.id=t3.id;或:DELETEFROMt1,t2USINGt1,t2,t3WHEREt1.id=t2.idANDt2.id=t3.id;,18,TRUNCATETABLE用于完全清空一个表。从逻辑上说,该语句与用于删除所有行的DELETE语句等同,但是在有些情况下,两者在使用上有所不同。语法:TRUNCATETABLEtbl_name;删减操作会取消并重新创建表,这比一行一行的删除行要快很多。删减操作不能保证对事务是安全的;在进行事务处理和表锁定的过程中尝试进行删减,会发生错误。被删除的行的数目没有被返回。只要表定义文件tbl_name.frm是合法的,则可以使用TRUNCATETABLE把表重新创建为一个空表,即使数据或索引文件已经被破坏。例子:mysqlTRUNCATETABLEtest;,19,如果您使用GROUPBY,则输出行根据GROUPBY列进行分类,如同您对相同的列进行了ORDERBY。MySQL对GROUPBY进行了扩展,因此您可以在各列(在子句中进行命名)的后面指定ASC和DESC例子:mysqlSELECTa,COUNT(b)FROMtest_tableGROUPBYaDESCmysqlselectstart,count(sid)fromnew_testgroupbysiddesc;HAVING子句基本上是最后使用,只位于被发送给客户端的条目之前,没有进行优化。(LIMIT用于HAVING之后。)SQL标准要求HAVING必须引用GROUPBY子句中的列或用于总计函数中的列。不过,MySQL支持对此工作性质的扩展,并允许HAVING因为SELECT清单中的列和外部子查询中的列。如果HAVING子句引用了一个意义不明确的列,则会出现警告。在下面的语句中,col2意义不明确,因为它既作为别名使用,又作为列名使用:例子:mysqlSELECTCOUNT(col1)AScol2FROMtGROUPBYcol2HAVINGcol2=2;,20,MySQL通过SETAUTOCOMMIT,STARTTRANSACTION,COMMIT和

温馨提示

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

最新文档

评论

0/150

提交评论