只挑选几个重点命令讲解
1 COM_QUERY
COM_QUERY用于向服务器发送立即执行的基于文本的查询。
报文结构:
3 bytes 报文长度 | 1 byte 序号 | 1 byte 命令 | n bytes 参数 |
---|
包体部分:
- command_id ( 1 ):0x03 COM_QUERY
- query ( string.EOF ):query_text
查询字符串的长度取自数据包长度-1。
报文实例:
2 COM_QUERY响应
COM_QUERY响应报文可能是:
1. ERR_Packet报文
2. OK_Packet报文
3. Protocol::LOCAL_INFILE_Request (本文不介绍该报文)
4. ProtocolText::Resultset
2.1 何时返回OK_Packet和ERR_Packet报文
如果SQL是create、insert、update或者是delete,则返回的是对应的OK_Packet或者ERR_Packet报文。
2.1.1 create语句返回报文
sql语句:
CREATE TABLE test(
id int auto_increment primary key,
type_char char(10) DEFAULT NULL
);
create语句报文:
create语句响应报文: