mysql 插入数据语句
时间: 2023-11-12 07:55:10 浏览: 63
mysql 插入数据语句有多种语法形式,以下是两种常用的语法形式:
1. 普通插入语句:
INSERT INTO `table_name` (`column1`, `column2`, ...) VALUES ('value1', 'value2', ...);
例如:
INSERT INTO `users` (`username`, `money`) VALUES ('小张', 30);
2. 插入或更新语句:
INSERT INTO `table_name` (`column1`, `column2`, ...)
VALUES ('value1', 'value2', ...)
ON DUPLICATE KEY UPDATE `column1`='new_value1', `column2`='new_value2', ...;
例如:
INSERT INTO `users` (`username`, `money`)
VALUES ('小张', 30)
ON DUPLICATE KEY UPDATE `money`=VALUES(`money`)+30;
以上是常用的两种插入数据的语句,它们可以根据具体的需求来选择使用。如果需要批量插入数据,可以使用一次性插入多条数据的形式。
相关问题
mysql插入数据语句
在MySQL中,常用的插入数据语句有以下三种:
1. `INSERT INTO`:正常的插入数据,插入数据的时候会检查主键或者唯一索引,如果出现重复就会报错。
语法格式如下:
```sql
INSERT INTO table_name (column1, column2, column3, ...)
VALUES (value1, value2, value3, ...);
```
其中,`table_name`是要插入数据的表名,`column1, column2, column3, ...`是要插入数据的列名,`value1, value2, value3, ...`是要插入的数据值。
例如,要向`students`表中插入一条数据,可以使用以下语句:
```sql
INSERT INTO students (name, age, gender)
VALUES ('Tom', 18, 'male');
```
2. `REPLACE INTO`:表示插入并替换数据,若表中有primary key或者unique索引,在插入数据的时候,若遇到重复的数据,则用新数据替换,如果没有数据效果则和`INSERT INTO`一样。
语法格式如下:
```sql
REPLACE INTO table_name (column1, column2, column3, ...)
VALUES (value1, value2, value3, ...);
```
其中,`table_name`是要插入数据的表名,`column1, column2, column3, ...`是要插入数据的列名,`value1, value2, value3, ...`是要插入的数据值。
例如,要向`students`表中插入一条数据,如果该表中已经存在`name`为`Tom`的记录,则用新数据替换该记录,可以使用以下语句:
```sql
REPLACE INTO students (name, age, gender)
VALUES ('Tom', 20, 'male');
```
3. `INSERT IGNORE INTO`:插入并忽略数据,如果中已经存在相同的记录,则忽略当前新数据。这样不用校验是否存在了,有则忽略,无则添加。
语法格式如下:
```sql
INSERT IGNORE INTO table_name (column1, column2, column3, ...)
VALUES (value1, value2, value3, ...);
```
其中,`table_name`是要插入数据的表名,`column1, column2, column3, ...`是要插入数据的列名,`value1, value2, value3, ...`是要插入的数据值。
例如,要向`students`表中插入一条数据,如果该表中已经存在`name`为`Tom`的记录,则忽略该条数据,可以使用以下语句:
```sql
INSERT IGNORE INTO students (name, age, gender)
VALUES ('Tom', 18, 'male');
```
mysql循环插入数据语句
循环插入数据的MySQL语句可以使用WHILE...DO方式来实现。首先需要设置delimiter,告诉解释器这段命令是否已经结束了,MySQL是否可以执行了。默认情况下,delimiter是';',但是在编写procedure时,如果使用默认设置,一旦遇到';',MySQL就会执行。\[2\]
下面是一个示例的循环插入数据的MySQL语句:
```sql
DELIMITER //
CREATE PROCEDURE callback()
BEGIN
DECLARE num INT;
SET num = 100;
WHILE num < 300 DO
INSERT INTO t_user(user_loginName,user_password,user_name,user_gender,user_email,user_gradeValueInt)
VALUES(CONCAT("YuWang", num),CONCAT("pwd", num),CONCAT("YuWang", num),"男","1024@qq.com",num);
SET num = num + 1;
END WHILE;
END //
DELIMITER ;
```
以上代码创建了一个名为callback的存储过程,通过循环插入数据到t_user表中。循环的条件是num小于300,每次循环插入一条数据,num递增1。可以根据实际需求修改循环条件和插入的数据。\[1\]
#### 引用[.reference_title]
- *1* *2* [Mysql循环插入数据](https://blog.csdn.net/bakelFF/article/details/123515258)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item]
- *3* [MySQL循环插入数据](https://blog.csdn.net/weixin_45574151/article/details/123205722)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item]
[ .reference_list ]