读书笔记——MySQL5.1参考手册

1. 规则定义:

mysql(MySQL命令行客户端程序),mysqld(MySQL服务器执行程序)。

shell>指明命令将从注册外壳程序中执行,mysql>指明命令将从mysql客户端程序中执行

shell> type a shell command here(在此输入shell命令)
mysql> type a mysql statement here(在此输入mysql语句)

数据库、表和;列名必须代入语句中。为了指明该代入是必要的,在本手册中使用了db_nametbl_namecol_name

在语法介绍中,方括号(“[”和“]”)用于指明可选字或子句。例如,在下面的语句中,IF EXISTS是可选的:

DROP TABLE [IF EXISTS] tbl_name

当某一语法成分由多个可选项组成时,可选项应用竖线“|”分开。当可能选择一组选择中的某一成员时,可选项将列在方括号(“[”和“]”)中

TRIM([[BOTH | LEADING | TRAILING] [remstr] FROM] str)
当必须选择一组选择中的某一成员时,可选项将列在大括号(“ {”和“ }”)中。
{DESCRIBE | DESC} tbl_name [col_name | wild]
省略号( )表明省略了语句的某一选择,通常是为了提供复杂语法的简短表述。例如, INSERT ... SELECT是后跟SLECT语句的 INSERT语句的简短形式。</span省略号还能指明语句的前部分语法元素可重复。在下面的示例中,可给定多个reset_option值,第1个值后每一个可由逗号分开:
RESET reset_option [,reset_option] ...
MySQL的SHOW命令可用于检索关于数据库、数据库引擎、表和索引的信息。EXPLAIN命令可用于确定优化器处理查询的方
explain select * from tba a INNER JOIN tbb b on a.adminID = b.id where b.status=1

show create table tbname; 显示创建表的语句。

show VARIABLES; select version; 显示版本

 可以同时执行多个查询sql,只要中间以分号隔开。在命令行和客户端软件中都可以,将会显示两个查询结果。

如果你决定不想执行正在输入过程中的一个命令,输入\c取消它:

 

提示符

含义

mysql>

准备好接受新命令。

->

等待多行命令的下一行。

'>

等待下一行,等待以单引号(')开始的字符串的结束。

">

等待下一行,等待以双引号(")开始的字符串的结束。

`>

等待下一行,等待以反斜点(`)开始的识别符的结束。

/*>

等待下一行,等待以/*开始的注释的结束。

授权

GRANT ALL ON menagerie.* TO ;

如果你想要在命令行上在-p选项后提供 密码,则不能插入空格(例如,如-pmypassword,不是-p mypassword)。但是,不建议在命令行输入密码,因为这样会暴露 密码,能被在机器上登录的其它用户窥探到。

Windows中的编辑器(使用\r\n做为行的结束符创建文件,应使用:

mysql> LOAD DATA LOCAL INFILE '/path/pet.txt' INTO TABLE pet
-> LINES TERMINATED BY '\r\n';

RIGHT(CURDATE(),5)提取日期的MM-DD (日历年)部分的最右面5个字符。

MONTH(DATE_ADD(CURDATE(),INTERVAL 1 MONTH));

AUTO_INCREMENT列生成的值的计算方法为:MAX(auto_increment_column) + 1

 

2. sql 优化

1.grant权限许可设置越简单,mysql查询权限许可消耗越小,速度越快。

2. 如果问题与具体的sql表达式或者函数有关,可以进行benchmark()函数测试。  select BENCHMARK(count,expr)   计算次数,表达式

3.explain

explain tablename  作用和describe tablename   show columns from tablename效果一样;但是放在select sql语句前就能获取sql的执行顺序。

 

推荐文章  mysql explain详解。http://blog.csdn.net/cnbird2008/article/details/4527918

 

两个表通过对应的列连接,首先确保这两列都有索引,这样才能用上索引,提高速度。其次这两列的类型和宽度需要一致才能用上索引查询。否则将至少无法使用上其中一个索引。

 

ip地址存储为无符号整型  SET ip = INET_ATON('{$_SERVER['REMOTE_ADDR']}') 。

 

 

mysql多行数据连接成一行的问题解决方案:

GROUP_CONCAT([DISTINCT] expr [,expr ...]

             [ORDER BY {unsigned_integer | col_name | expr}

                 [ASC | DESC] [,col_name ...]]

             [SEPARATOR str_val])

 

 

你可能感兴趣的:(读书笔记——MySQL5.1参考手册)