关闭

关闭

关闭

封号提示

内容

首页 MYSQL命令大全.doc

MYSQL命令大全.doc

MYSQL命令大全.doc

上传者: 金色圣堂 2011-10-21 评分 0 0 0 0 0 0 暂无简介 简介 举报

简介:本文档为《MYSQL命令大全doc》,可适用于IT/计算机领域,主题内容包含启动:netstartmySql启动:netstartmySqlsourcef:dbsql  进入:mysqlurootpmysqlhlocalho符等。

启动:netstartmySql启动:netstartmySqlsourcef:dbsql  进入:mysqlurootpmysqlhlocalhosturootpdatabaseName  列出数据库:showdatabases  选择数据库:usedatabaseName  列出表格:showtables  显示表格列的属性:showcolumnsfromtableName  建立数据库:sourcefileNametxt  匹配字符:可以用通配符代表任何一个字符%代表任何字符串  增加一个字段:altertabletabelNameaddcolumnfieldNamedateType  增加多个字段:altertabletabelNameaddcolumnfieldNamedateType,addcolumnsfieldNamedateType  多行命令输入:注意不能将单词断开当插入或更改数据时不能将字段的字符串展开到多行里否则硬回车将被储存到数据中  增加一个管理员帐户:grantallon**touserlocalhostidentifiedby"password"  每条语句输入完毕后要在末尾填加分号''或者填加'g'也可以  查询时间:selectnow()  查询当前用户:selectuser()  查询数据库版本:selectversion()  查询当前使用的数据库:selectdatabase()    、删除studentcourse数据库中的students数据表:  rmfstudentcoursestudents*    、备份数据库:(将数据库test备份)mysqldump–urootptest>c:testtxt(注意是在dos窗口(cmd)下输入才行如果不行的话看看MySQL的ben是不是未配置使用setpath查看环境变量的配置)  备份表格:(备份test数据库下的mytable表格)  mysqldumpurootptestmytable>c:testtxt  将备份数据导入到数据库:(导回test数据库)  mysqlurootptest<c:texttxt    、创建临时表:(建立临时表zengchao)  createtemporarytablezengchao(namevarchar())    、创建表是先判断表是否存在  createtableifnotexistsstudents(……)    、从已经有的表中复制表的结构  createtabletableselect*fromtablewhere<>    、复制表  createtabletableselect*fromtable    、对表重新命名  altertabletablerenameastable    、修改列的类型  altertabletablemodifyidintunsigned修改列id的类型为intunsigned  altertabletablechangeidsidintunsigned修改列id的名字为sid而且把属性修改为intunsigned    、创建索引  altertabletableaddindexindid(id)  createindexindidontable(id)  createuniqueindexindidontable(id)建立唯一性索引    、删除索引  dropindexidxidontable  altertabletabledropindexindid    、联合字符或者多个列(将列id与":"和列name和"="连接)  selectconcat(id,':',name,'=')fromstudents    、limit(选出到条)<第一个记录集的编号是>  select*fromstudentsorderbyidlimit,    、MySQL不支持的功能事务视图外键和引用完整性存储过程和触发器(New)检索符合条件的前十条  SELECT*FROMaccountinfoorderbyaccountIDdesclimit,    、MySQL会使用索引的操作符号  <,<=,>=,>,=,between,in,不带或者开头的like    、使用索引的缺点  )减慢增删改数据的速度  )占用磁盘空间  )增加查询优化器的负担  当查询优化器生成执行计划时会考虑索引太多的索引会给查询优化器增加工作量导致无法选择最优的查询方案    、分析索引效率  方法:在一般的SQL语句前加上explain  分析结果的含义:  )table:表名  )type:连接的类型(ALLRangeRef)。其中ref是最理想的  )possiblekeys:查询可以利用的索引名  )key:实际使用的索引  )keylen:索引中被使用部分的长度(字节)  )ref:显示列名字或者"const"(不明白什么意思)  )rows:显示MySQL认为在找到正确结果之前必须扫描的行数  )extra:MySQL的建议    、使用较短的定长列  )尽可能使用较短的数据类型  )尽可能使用定长数据类型  a)用char代替varchar固定长度的数据处理比变长的快些  b)对于频繁修改的表磁盘容易形成碎片从而影响数据库的整体性能  c)万一出现数据表崩溃使用固定长度数据行的表更容易重新构造。使用固定长度的数据行每个记录的开始位置都是固定记录长度的倍数可以很容易被检测到但是使用可变长度的数据行就不一定了  d)对于MyISAM类型的数据表虽然转换成固定长度的数据列可以提高性能但是占据的空间也大    、使用not和enum  尽量将列定义为not这样可使数据的出来更快所需的空间更少而且在查询时MySQL不需要检查是否存在特例即值从而优化查询  如果一列只含有有限数目的特定值如性别是否有效或者入学年份等在这种情况下应该考虑将其转换为enum列的值MySQL处理的更快因为所有的enum值在系统内都是以标识数值来表示的    、使用optimizetable  对于经常修改的表容易产生碎片使在查询数据库时必须读取更多的磁盘块降低查询性能。具有可变长的表都存在磁盘碎片问题这个问题对blob数据类型更为突出因为其尺寸变化非常大。可以通过使用optimizetable来整理碎片保证数据库性能不下降优化那些受碎片影响的数据表。optimizetable可以用于MyISAM和BDB类型的数据表。实际上任何碎片整理方法都是用mysqldump来转存数据表然后使用转存后的文件并重新建数据表    、使用procedureanalyse()  可以使用procedureanalyse()显示最佳类型的建议使用很简单在select语句后面加上procedureanalyse()就可以了例如:  select*fromstudentsprocedureanalyse()  select*fromstudentsprocedureanalyse(,)  第二条语句要求procedureanalyse()不要建议含有多于个值或者含有多于字节的enum类型如果没有限制输出可能会很长    、使用查询缓存  )查询缓存的工作方式:  第一次执行某条select语句时服务器记住该查询的文本内容和查询结果存储在缓存中下次碰到这个语句时直接从缓存中返回结果当更新数据表后该数据表的任何缓存查询都变成无效的并且会被丢弃。  )配置缓存参数:  变量:querycachetype查询缓存的操作模式。有中模式:不缓存:缓存查询除非与selectsqlnocache开头:根据需要只缓存那些以selectsqlcache开头的查询querycachesize:设置查询缓存的最大结果集的大小比这个值大的不会被缓存。    、调整硬件  )在机器上装更多的内存  )增加更快的硬盘以减少IO等待时间  寻道时间是决定性能的主要因素逐字地移动磁头是最慢的一旦磁头定位从磁道读则很快  )在不同的物理硬盘设备上重新分配磁盘活动如果可能应将最繁忙的数据库存放在不同的物理设备上这跟使用同一物理设备的不同分区是不同的因为它们将争用相同的物理资源(磁头)。、自动添加日期时间在定义数据类型的时候将其定义为timestamp即可例如:createTimetimestamp当createTime列为空的时候自动添加当前系统时间。查找满足结果的行数SELECTcount(*)FROMpaaccountinfowhere…Mysql里的数据类型MySQL支持大量的列类型它可以被分为类:数字类型、日期和时间类型以及字符串(字符)类型。本节首先给出可用类型的一个概述并且总结每个列类型的存储需求然后提供每个类中的类型性质的更详细的描述。概述有意简化更详细的说明应该考虑到有关特定列类型的附加信息例如你能为其指定值的允许格式。由MySQL支持的列类型列在下面。下列代码字母用于描述中:M指出最大的显示尺寸。最大的合法的显示尺寸是。D适用于浮点类型并且指出跟随在十进制小数点后的数码的数量。最大可能的值是但是应该不大于M。方括号(“”和“”)指出可选的类型修饰符的部分。注意如果你指定一个了为ZEROFILLMySQL将为该列自动地增加UNSIGNED属性。TINYINT(M)UNSIGNEDZEROFILL一个很小的整数。有符号的范围是到无符号的范围是到。SMALLINT(M)UNSIGNEDZEROFILL一个小整数。有符号的范围是到无符号的范围是到。MEDIUMINT(M)UNSIGNEDZEROFILL一个中等大小整数。有符号的范围是到无符号的范围是到。INT(M)UNSIGNEDZEROFILL一个正常大小整数。有符号的范围是到无符号的范围是到。INTEGER(M)UNSIGNEDZEROFILL这是INT的一个同义词。BIGINT(M)UNSIGNEDZEROFILL一个大整数。有符号的范围是到无符号的范围是到。注意所有算术运算用有符号的BIGINT或DOUBLE值完成因此你不应该使用大于(位)的有符号大整数除了位函数!注意当两个参数是INTEGER值时、和*将使用BIGINT运算!这意味着如果你乘个大整数(或来自于返回整数的函数)如果结果大于你可以得到意外的结果。一个浮点数字不能是无符号的对一个单精度浮点数其精度可以是<=对一个双精度浮点数是在和之间这些类型如FLOAT和DOUBLE类型马上在下面描述。FLOAT(X)有对应的FLOAT和DOUBLE相同的范围但是显示尺寸和小数位数是未定义的。在MySQL中这是一个真正的浮点值。在更早的MySQL版本中FLOAT(precision)总是有位小数。该句法为了ODBC兼容性而提供。FLOAT(M,D)ZEROFILL一个小(单精密)浮点数字。不能无符号。允许的值是E到E和E到E。M是显示宽度而D是小数的位数。没有参数的FLOAT或有<的一个参数表示一个单精密浮点数字。DOUBLE(M,D)ZEROFILL一个正常大小(双精密)浮点数字。不能无符号。允许的值是E到E、和E到E。M是显示宽度而D是小数位数。没有一个参数的DOUBLE或FLOAT(X)(<=X<=)代表一个双精密浮点数字。DOUBLEPRECISION(M,D)ZEROFILLREAL(M,D)ZEROFILL这些是DOUBLE同义词。DECIMAL(M,D)ZEROFILL一个未压缩(unpack)的浮点数字。不能无符号。行为如同一个CHAR列:“未压缩”意味着数字作为一个字符串被存储值的每一位使用一个字符。小数点并且对于负数“”符号不在M中计算。如果D是值将没有小数点或小数部分。DECIMAL值的最大范围与DOUBLE相同但是对一个给定的DECIMAL列实际的范围可以通过M和D的选择被限制。如果D被省略它被设置为。如果M被省掉它被设置为。注意在MySQL里M参数包括符号和小数点。NUMERIC(M,D)ZEROFILL这是DECIMAL的一个同义词。DATE一个日期。支持的范围是''到''。MySQL以'YYYYMMDD'格式来显示DATE值但是允许你使用字符串或数字把值赋给DATE列。DATETIME一个日期和时间组合。支持的范围是'::'到'::'。MySQL以'YYYYMMDDHH:MM:SS'格式来显示DATETIME值但是允许你使用字符串或数字把值赋给DATETIME的列。TIMESTAMP(M)一个时间戳记。范围是'::'到年的某时。MySQL以YYYYMMDDHHMMSS、YYMMDDHHMMSS、YYYYMMDD或YYMMDD格式来显示TIMESTAMP值取决于是否M是(或省略)、、或但是允许你使用字符串或数字把值赋给TIMESTAMP列。一个TIMESTAMP列对于记录一个Insert或Update操作的日期和时间是有用的因为如果你不自己给它赋值它自动地被设置为最近操作的日期和时间。你以可以通过赋给它一个值设置它为当前的日期和时间。TIME一个时间。范围是'::'到'::'。MySQL以'HH:MM:SS'格式来显示TIME值但是允许你使用字符串或数字把值赋给TIME列。YEAR(|)一个或位数字格式的年(缺省是位)。允许的值是到和(位年格式)如果你使用位()。MySQL以YYYY格式来显示YEAR值但是允许你把使用字符串或数字值赋给YEAR列。(YEAR类型在MySQL中是新类型。)CHAR(M)BINARY一个定长字符串当存储时总是是用空格填满右边到指定的长度。M的范围是~个字符。当值被检索时空格尾部被删除。CHAR值根据缺省字符集以大小写不区分的方式排序和比较除非给出BINARY关键词。NATIONALCHAR(短形式NCHAR)是ANSISQL的方式来定义CHAR列应该使用缺省字符集。这是MySQL的缺省。CHAR是CHARACTER的一个缩写。NATIONALVARCHAR(M)BINARY一个变长字符串。注意:当值被存储时尾部的空格被删除(这不同于ANSISQL规范)。M的范围是~个字符。VARCHAR值根据缺省字符集以大小写不区分的方式排序和比较除非给出BINARY关键词值。VARCHAR是CHARACTERVARYING一个缩写。TINYBLOBTINYTEXT一个BLOB或TEXT列最大长度为(^)个字符。BLOBTEXT一个BLOB或TEXT列最大长度为(^)个字符。MEDIUMBLOBMEDIUMTEXT一个BLOB或TEXT列最大长度为(^)个字符。LONGBLOBLONGTEXT一个BLOB或TEXT列最大长度为(^)个字符。ENUM('value','value',)枚举。一个仅有一个值的字符串对象这个值式选自与值列表'value'、'value',,或。一个ENUM最多能有不同的值。SET('value','value',)一个集合。能有零个或多个值的一个字符串对象其中每一个必须从值列表'value','value',选出。一个SET最多能有个成员。

职业精品

热点搜索换一换

用户评论

0/200
    暂无评论

精彩专题

上传我的资料

热门资料

资料评价:

/7
0下载券 下载 加入VIP, 送下载券

意见
反馈

返回
顶部