1、添加数据
通常情况下,要想操作数据表中的数据,首先要保证数据表中存在数据。MySQL中使用INSERT语句向数据表中添加数据。根据操作的不同目的一般可以分为两种,一种是为所有字段添加数据,另一种是为部分字段添加数据。下面将对这两种操作进行详细讲解。
- 1.为所有字段添加数据
在MySQL中,为所有字段插入记录时,可以省略字段名称,严格按照数据表结构(字段的位置)插入对应的值,基本语法格式如下。
INSERT [INTO] 数据表名 {VALUES | VALUE}(值1[, 值2] …);
从上述语法可知,关键字NTO是可选项,VALUES和VALUE可以任选一种,通常情况下使用VALUES。值列表“值1 [,值2] …”中多个值之间使用逗号分隔。
下面为goods表添加一条商品记录,编号为1,商品名为notebook,售价是4998元,描述信息为High cost performance,具体SQL语句如下。
mysql> INSERT INTO goods
-> VALUES (1, 'notebook', 4998, 'High cost performance');
Query OK, 1 row affected (0.00 sec)
在上述SQL语句中,插入的数据顺序与创建数据表时对应的字段顺序相同,分别表示商品编号、商品名、价格和商品描述。
在MySQL中,若创建的数据表未指定字符集,则数据表及表中的字段将使用默认的字符集latinl。因此,若用户插入的数据中含有中文,则会出现错误提示。例如,向goods表中输入含有中文的数据,具体SQL语句及执行结果如下。
mysql> INSERT INTO goods
-> VALUES(2, '笔记本',9998, '续航时间超过10个小时');
ERROR 1366 (HY000) : Incorrect string value: '\xB1 \xCA\xBC\xC7\xB1 \xBE' for column 'name' at row 1
为了解决以上中文插入的问题,通常在创建数据表时添加表选项,设置数据表的字符集,语法如下所示。
CREATE [TEMPORARY] TABLE [IF NOT EXISTS] 表名
(字段名 字段类型 [字段属性]…) [DEFAULT] {CHARACTER SET|CHARSET} [=] utf8;
CREATE TABLE goods(
字段…
) [DEFAULT] CHARSET utf8;
在上述语法中,CHARACTER SET与CHARSET是同义词,设置字符集时选取其一即可。其中,utf8字符集支持世界上大多数国家的字符ÿ