您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 质量控制/管理 > mysql参考手册笔记
第3章教程1、mysql注释符有三种:(1)、#...(2)、--...(要求第2个破折号后面至少跟一个空格符(例如空格、tab、换行符等等)。)(3)、/*...*(允许跨多行)2、用MySQL,可以使用/*!*/语法把MySQL特定的关键词加到语句中。在/**/中的代码将被其它大多数SQL服务器视为注释(并被忽略)。3、一个命令通常由SQL语句组成,随后跟着一个分号。(有一些例外不需要分号。早先提到的QUIT是一个例子。)当发出一个命令时,mysql将它发送给服务器并显示执行结果,然后显示另一个mysql显示它准备好接受其它命令。mysql显示返回了多少行,以及查询花了多长时间,它给你提供服务器性能的一个大致概念。因为他们表示时钟时间(不是CPU或机器时间),并且因为他们受到诸如服务器负载和网络延时的影响,因此这些值是不精确的。4、你可以在一行上输入多条语句,只需要以一个分号间隔开各语句:mysqlSELECTVERSION();SELECTNOW();5、不必全在一个行内给出一个命令,较长命令可以输入到多个行中。mysql通过寻找终止分号而不是输入行的结束来决定语句在哪儿结束。(换句话说,mysql接受自由格式的输入:它收集输入行但直到看见分号才执行。)这里是一个简单的多行语句的例子:mysqlSELECT-USER()-,-CURRENT_DATE;6、如果你决定不想执行正在输入过程中的一个命令,输入\c取消它:mysqlSELECT-USER()-\cmysql7、下表显示出可以看见的各个提示符并简述它们所表示的mysql的状态:8、在MySQL中,可以写由‘'’或‘’字符括起来的字符串(例如,'hello'或goodbye)。9、USE,类似QUIT,不需要一个分号。(如果你喜欢,你可以用一个分号终止这样的语句;这无碍)USE语句在使用上也有另外一个特殊的地方:它必须在一个单行上给出。10、AND和OR可以混用,但AND比OR具有更高的优先级。11、loaddata方法:创建一个文本文件,每个条目一行,用tab分开,各个列与createtable中的列次序相对应,不知道的值为NULL用\N代替。LOADDATALOCALINFILE‘/path/filename.txt’INTOTABLEtable_name;注意windows中\r\n做为行的结束符因此应该使用LOADDATALOCALINFILE‘/path/filename.txt’INTOTABLEtable_nameLINESTERMINATEDBY‘\r\n’;如果想一次增加一条新的记录使用INSERT语句12、在字符类型列上Orderby,排序时没有区分大小写:对于某一列,可以使用BINARY强制执行区分大小写的分类功能,如:ORDERBYBINARYcol_name。(注意和前一个以“j和J”开头的数据)13、计算生日,可以计算当前日期的年和出生日期之间的差。如果当前日期的日历年比出生日期早,则减去一年:mysqlSELECTname,birth,CURDATE(),-(YEAR(CURDATE())-YEAR(birth))--(RIGHT(CURDATE(),5)RIGHT(birth,5))-ASage-FROMpet;+----------+------------+------------+------+|name|birth|CURDATE()|age|+----------+------------+------------+------+|Fluffy|1993-02-04|2003-08-19|10||Claws|1994-03-17|2003-08-19|9||Buffy|1989-05-13|2003-08-19|14||Fang|1990-08-27|2003-08-19|12||Bowser|1989-08-31|2003-08-19|13||Chirpy|1998-09-11|2003-08-19|4||Whistler|1997-12-09|2003-08-19|5||Slim|1996-04-29|2003-08-19|7||Puffball|1999-03-30|2003-08-19|4|+----------+------------+------------+------+此处,YEAR()提取日期的年部分,RIGHT()提取日期的MM-DD(日历年)部分的最右面5个字符。比较MM-DD值的表达式部分的值一般为1或0,如果CURDATE()的年比birth的年早,则年份应减去1。14、使用扩展正则表达式,使用REGEXP和NOTREGEXP操作符(或RLIKE和NOTRLIKE,它们是同义词)。为了定位一个模式以便它必须匹配被测试值的开始或结尾,在模式开始处使用“^”或在模式的结尾用“$”。15、为了找出当前选择了哪个数据库,使用DATABASE()函数:mysqlSELECTDATABASE();+------------+|DATABASE()|+------------+|menagerie|+------------+如果你还没选择任何数据库,结果是NULL。16、如果表有索引,SHOWINDEXFROMtbl_name生成有关索引的信息。17、根据天计算访问量:下面的例子显示了如何使用位组函数来计算每个月中用户访问网页的天数。CREATETABLEt1(yearYEAR(4),monthINT(2)UNSIGNEDZEROFILL,dayINT(2)UNSIGNEDZEROFILL);INSERTINTOt1VALUES(2000,1,1),(2000,1,20),(2000,1,30),(2000,2,2),(2000,2,23),(2000,2,23);示例表中含有代表用户访问网页的年-月-日值。可以使用以下查询来确定每个月的访问天数:SELECTyear,month,BIT_COUNT(BIT_OR(1day))ASdaysFROMt1GROUPBYyear,month;将返回:+------+-------+------+|year|month|days|+------+-------+------+|2000|01|3||2000|02|2|+------+-------+------+该查询计算了在表中按年/月组合的不同天数,可以自动去除重复的询问。解释:1、BIT_COUNT(expr):返回expr的二进制表达式中”1“的个数。例如:29=11101则:BIT_COUNT(29)=4;2、BIT_OR(expr):返回expr中所有比特的bitwiseOR。计算执行的精确度为64比特(BIGINT)。例如:上面例子中,2000年02月中有一条2号的记录两条23号的记录,所以1day表示出来就是“1<<2”和“1<<23”,得到二进制数100和100000000000000000000000。然后再OR运算。即100OR10000000000000000000000OR10000000000000000000000=100000000000000000000100;这样再用BIT_COUNT处理得出的值就是2,自动去除了重复的日期。18、列属性ZEROFILL:1.Mysql的列属性ZEROFILL,是根据列的显示长度,如果不足的话,补“0”。2.如果为一个数值列指定ZEROFILL,MySQL自动为该列添加UNSIGNED属性第4章MySQL程序概述19、你也许会发现需要使用MySQL程序安装的bin目录的路径名来调用MySQL程序。如果你试图不在bin目录下运行MySQL程序,可能会遇到“程序未找到”错误。为了更方便地使用MySQL,可以将bin目录的路径名添加到PATH环境变量中。然后运行程序时只需要输入程序名,而不需要输入整个路径名。20、在命令行上使用选项,在命令行中指定的程序选项遵从下述规则:·在命令名后面紧跟选项。·选项参量以一个和两个破折号开始,取决于它具有短名还是长名。许多选项有两种形式。例如,-?和--help是指导MySQL程序显示帮助消息的选项的短名和长名。·选项名对大小写敏感。-v和-V均有效,但具有不同的含义。(它们是--verbose和--version选项的短名)。·部分选项在选项名后面紧随选项值。例如,-hlocalhost或--host=localhost表示客户程序的MySQL服务器主机。选项值可以告诉程序MySQL服务器运行的主机名。·对于带选项值的长选项,通过一个‘=’将选项名和值隔离开来。对于带选项值的短选项,选项值可以紧随选项字母后面,或者二者之间可以用一个空格隔开。(-hlocalhost和-hlocalhost是等效的)。该规则的例外情况是指定MySQL密码的选项。该选项的形式可以为--password=pass_val或--password。在后一种情况(未给出密码值),程序将提示输入密码。也可以给出密码选项,短形式为-ppass_val或-p。然而,对于短形式,如果给出了密码值,必须紧跟在选项后面,中间不能插入空格。这样要求的原因是如果选项后面有空格,程序没有办法来告知后面的参量是密码值还是其它某种参量。因此,下面两个命令的含义完全不同:·shellmysql–ptest·shellmysql-ptest第一个命令让mysql使用密码test,但没有指定默认数据库。第二个命令让mysql提示输入密码并使用test作为默认数据库。21、对mysql偶尔有用的另一个选项是-e或--execute选项,可用来将SQL语句传递给服务器。该语句必须用引号引起来(单引号或双引号)。(然而,如果想要在查询中将值引起来,则对于查询应使用双引号,查询中引用的值应使用单引号)。当使用该选项时,语句被执行,然后mysql立即退出命令外壳。(注:语句最后的“mysql”为数据库名)。可以按这种方式传递多个SQL语句,用分号隔开:22、使用选项文件。MySQL程序可以从选项文件(有时也称为配置文件)读取启动选项。选项文件提供了一种很方便的方式来指定常用的选项,因此不需要每次运行程序时从命令行输入。在Windows中,MySQL程序从以下文件读取启动选项:文件名目的WINDIR\my.ini全局选项C:\my.cnf全局选项INSTALLDIR\my.ini全局选项defaults-extra-file用--defaults-extra-file=path指定的文件,如果有WINDIR表示Windows目录的位置。通常为C:\WINDOWS或C:\WINNT。你可以使用下面的命令通过环境变量WINDIR的值确定其确切位置:C:\echo%WINDIR%INSTALLDIR表示MySQL的安装目录。一般为C:\PROGRAMDIR\MySQL\MySQL5.1Server,其中PROGRAMDIR表示程序目录(通常为Windows英文版的ProgramFiles),第7章优化23、EXPLAIN语法:EXPLAINtbl_name或:EXPLAIN[EXTENDED]SELECTselect_optionsEXPLAIN语句可以用作DESCRIBE的一个同义词,或获得关于MySQL如何执行SELECT语句的信息:·EXPLAINtbl_name是DESCRIBEtbl_name或SHOWCOLUMNSFROMtbl_name的一个同义词。·如果在SELECT语句前放上关键词EXPLAIN,MySQL将解释它如何处理SELECT,提供有关表如何联接和联接的次序。EXPLAIN为用于SELECT语句中的每个表返回一行信息。表以它们在处理查询过程中将被MySQL读入的顺序被列出。MySQL用一遍扫描多次联接(single-sweepmulti-join)的方式解决所有联接。这意味着MySQL从第一个表中读
本文标题:mysql参考手册笔记
链接地址:https://www.777doc.com/doc-2883618 .html