Mysql insert语句

MySQL的INSERT语法小结

mysql> create table addressbook(fname varchar(255) null,lname varchar(255) null,

phone varchar(255) null,fax varchar(255) null,email varchar(255) null);

Query OK, 0 rows affected (0.11 sec)

mysql> desc addressbook;

+-------+--------------+------+-----+---------+-------+

| Field | Type | Null | Key | Default | Extra |

+-------+--------------+------+-----+---------+-------+

| fname | varchar(255) | YES | | NULL | |

| lname | varchar(255) | YES | | NULL | |

| phone | varchar(255) | YES | | NULL | |

| fax | varchar(255) | YES | | NULL | |

| email | varchar(255) | YES | | NULL | |

+-------+--------------+------+-----+---------+-------+

5 rows in set (0.06 sec)

当向表中插入字符串值(以及一些数据值时)。必须使用引号,否则MySQL认为它们是字段名:

mysql> insert into addressbook(fname,lname,phone,fax,email)

-> values('Rob',Rabbit,'674 1536','382 8364','rob@some.domain');

ERROR 1054 (42S22): Unknown column 'Rabbit' in 'field list'

包含引用标志的值需要在前面加上反斜线,不过数值不需要加引号:

mysql> insert into addressbook(fname,lname,phone,fax,email)

-> values('France','D\'Souza','123 4567','000 7574','fdz@some.domain');

Query OK, 1 row affected (0.05 sec)

mysql> select * from addressbook;

+--------+---------+----------+----------+-----------------+

| fname | lname | phone | fax | email |

+--------+---------+----------+----------+-----------------+

| France | D'Souza | 123 4567 | 000 7574 | fdz@some.domain |

+--------+---------+----------+----------+-----------------+

1 row in set (0.00 sec)

在一个单独的Insert语句中使用多个VALUES()子句可以插入多条记录:

mysql> insert stocks (symbol,price,quantity) values('ABCD',100,4500),

-> ('HYDH',2000,29),('UGTS',25,67);

也可以不使用INSERT。。。VALUES格式,而是使用类似的UPDATE语句,它使用SET语句分别为每一列设置值。故可以不进行下面的操作:

mysql> insert into stocks(symbol,price,quantity) values('HYDH',2000,29);

而是这样做:

mysql> insert into stocks set symbol='HYDH',price=2000,quantity=29;

使用DEFAULT值

mysql> create table forums(name varchar(150) not null,category varchar(50) defau

lt 'UNIX' not null,postsperpage smallint default 15 not null,highlightcolor varc

har(10) default 'red' not null);

Query OK, 0 rows affected (0.11 sec)

mysql> insert into forums(name) values('Apache');

Query OK, 1 row affected (0.05 sec)

mysql> insert into forums(name,highlightcolor) values('Sendmail','green');

Query OK, 1 row affected (0.06 sec)

mysql> select * from forums;

+----------+----------+--------------+----------------+

| name | category | postsperpage | highlightcolor |

+----------+----------+--------------+----------------+

| Apache | UNIX | 15 | red |

| Sendmail | UNIX | 15 | green |

+----------+----------+--------------+----------------+

2 rows in set (0.00 sec)

MySQL 4.0.3以及更高版本支持DEFAULT关键字,MySQL使用这个关键字为记录设置列的默认值。

mysql> insert into forums(name,category,postsperpage,highlightcolor)

-> values('MySQL',default,default,default);

Query OK, 1 row affected (0.06 sec)

使用AUTOINCREMENT字段

当使用AUTOINCREMENT列创建序列时,在INSERT语句中不使用字段名将导致MySQL自动产生序列的下一个序号。这个序号作为表的主键。

mysql> insert into users(uname,upass) values('jim','secret');

Query OK, 1 row affected (0.05 sec)

mysql> insert into users(uname,upass) values('sarah','opense');

Query OK, 1 row affected (0.06 sec)

mysql> insert into users(uname,upass) values('tim','whiteboard');

Query OK, 1 row affected (0.05 sec)

mysql> select * from users;

+-----+-------+------------+

| uid | uname | upass |

+-----+-------+------------+

| 1 | jim | secret |

| 2 | sarah | opense |

| 3 | tim | whiteboard |

+-----+-------+------------+

3 rows in set (0.00 sec)

使用NULL值

我们可以在INSERT语句中使用NULL关键字来向一个字段(只要没有标记为NOT NULL)输入NULL值。下面的例子通过向包含NULL值的email和fax字段的addressbook表添加记录进行说明:

mysql> insert into addressbook(fname,lname,phone,fax,email)

-> values('Polly','Parrot','239 1828',NULL,NULL);

Query OK, 1 row affected (0.05 sec)

mysql> select * from addressbook where email is null or fax is null;

+-------+--------+----------+------+-------+

| fname | lname | phone | fax | email |

+-------+--------+----------+------+-------+

| Polly | Parrot | 239 1828 | NULL | NULL |

+-------+--------+----------+------+-------+

1 row in set (0.02 sec)

转自 http://blog.itpub.net/15203236/viewspace-616118
### 回答1: MySQL INSERT语句用于向MySQL数据库表中插入新行或记录。语法如下: ``` INSERT INTO table_name (column1, column2, column3, ...) VALUES (value1, value2, value3, ...); ``` 其中,`table_name`是要插入数据的表名;`column1, column2, column3, ...`是要插入的数据列的名称;`value1, value2, value3, ...`是要插入的数据值。 例如,如果要向名为`students`的表中插入一条新记录,其中包含学生的姓名、年龄和性别,可以使用以下INSERT语句: ``` INSERT INTO students (name, age, gender) VALUES ('Tom', 20, 'Male'); ``` 这将在`students`表中插入一条新记录,其中姓名为`Tom`,年龄为`20`,性别为`Male`。 ### 回答2: MySQLINSERT语句用于向数据库的表中插入新的行。它的基本语法如下: INSERT INTO 表名 (列1, 列2, 列3, ...) VALUES (值1, 值2, 值3, ...); 其中,INSERT INTO后跟着要插入数据的表名。括号内的列名表示要插入数据的具体列,多列用逗号分隔。然后,根据列的顺序,VALUES后跟着要插入的具体值,也用逗号分隔。 例如,如果我们有一个名为“students”的表,表中包含“name”和“age”两列,我们可以使用INSERT语句插入一条新的学生记录: INSERT INTO students (name, age) VALUES ('张三', 18); 这样,将在表中插入一行数据,name列的值为'张三',age列的值为18。 另外,还可以使用INSERT INTO SELECT语句插入数据。这种方式可以从一个表中选择并插入部分或全部数据。语法如下: INSERT INTO 表名 (列1, 列2, 列3, ...) SELECT 值1, 值2, 值3, ... FROM 源表名 WHERE 条件; 通过将SELECT查询结果添加到INSERT INTO语句中,我们可以根据特定条件选择并向目标表中插入数据。 总的来说,INSERT语句MySQL中插入数据到表中的基本操作之一。通过指定要插入的表名和具体的值,可以方便地向表中添加新的行。 ### 回答3: MySQLINSERT语句用于向已存在的表中插入新的数据行。它的语法如下: INSERT INTO 表名 (列1, 列2, 列3, ...) VALUES (值1, 值2, 值3, ...); 在INSERT INTO后面,我们需要指定要插入数据的表名。 在括号中,我们需要列出要插入数据的列名,多个列名之间用逗号分隔。 在VALUES关键字后面的括号中,我们需要按照与列名的顺序相对应的顺序提供要插入的具体值,同样使用逗号分隔。 以下是一个具体的示例: 假设我们有一个名为"employees"的表,包含列名"emp_id"、"emp_name"和"emp_salary"。 要向该表中插入一条新的员工信息,可以使用如下的INSERT语句INSERT INTO employees (emp_id, emp_name, emp_salary) VALUES (1, '张三', 5000); 这将在"employees"表中插入一条员工ID为1,姓名为"张三",工资为5000的新数据行。 需要注意的是,如果某些列有默认值,可以省略相应的列名和对应的值。另外,对于字符串类型的值,需要使用单引号将其括起来。 总之,使用INSERT语句可以将新的数据行插入到MySQL数据库中的已存在表中,使数据库的内容得到更新。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值