在MySQL中,联系电话通常以字符串格式存储。这是因为电话号码可能包含数字、短横线、加号等字符,而MySQL中的数值类型只能存储纯数字。
如果我们将联系电话保存在一个名为“contacts”的表中,可以使用以下语句创建该表:
CREATE TABLE contacts ( id INT NOT NULL AUTO_INCREMENT, name VARCHAR(50), phone VARCHAR(20), email VARCHAR(50), PRIMARY KEY (id) );
在上面的例子中,我们使用VARCHAR类型来存储联系电话。VARCHAR可以存储不同长度的字符串,而CHAR类型则要求所有值具有相同的固定长度。在本例中,我们将电话长度设置为20,这足以容纳绝大多数电话号码。
当我们向contacts表插入数据时,可以使用以下语句:
INSERT INTO contacts (name, phone, email) VALUES ('张三', '+86 18688888888', 'zhangsan@example.com'), ('李四', '010-12345678', 'lisi@example.com');
请注意,电话号码包括国际区号和本地号码,可能包含短横线、加号等符号。在查询电话号码时,我们可以使用LIKE运算符来模糊匹配:
SELECT * FROM contacts WHERE phone LIKE '%8888%';
上面的查询将返回所有包含“8888”的电话号码对应的联系人。但是,这种模糊匹配可能会返回意外结果,例如名为“年会8888”的联系人。因此,在设计数据库时尽量避免在电话号码中添加不必要的符号或文字。