在MySQL中增加数据主要是通过INSERT INTO
SQL语句来实现的。以下是对插入语句的详细介绍以及举例说明:
1、插入语句的基本格式:
1INSERT INTO table_name (column1, column2, ..., columnN)
2VALUES (value1, value2, ..., valueN);
-
table_name
:这是你想要插入数据的目标表名。 -
column1, column2, ..., columnN
:这是目标表中你想插入数据的列名列表,可以指定全部或部分列名。如果不指定列名,那么必须按照表结构定义的列顺序提供值。 -
value1, value2, ..., valueN
:这是对应列的值列表,确保值的类型和数量与列定义匹配。
示例1:插入单行数据
假设有一个名为users
的表,其结构如下:
1CREATE TABLE users (
2 id INT AUTO_INCREMENT PRIMARY KEY,
3 username VARCHAR(50),
4 email VARCHAR(100),
5 password VARCHAR(100),
6 created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
7);
现在要插入一个新的用户:
1INSERT INTO users (username, email, password)
2VALUES ('JohnDoe', 'john.doe@example.com', 'hashed_password');
示例2:插入所有列的数据
如果你不需要指定列名,而是按照表定义的列顺序插入数据:
1INSERT INTO users
2VALUES (NULL, 'JaneDoe', 'jane.doe@example.com', 'hashed_password');
这里id
列由于是AUTO_INCREMENT
,所以我们留空,MySQL会自动为其生成一个新的唯一ID。
示例3:插入多行数据
同时插入多行数据:
1INSERT INTO users (username, email, password)
2VALUES
3 ('AliceSmith', 'alice.smith@example.com', 'hashed_pwd1'),
4 ('BobJohnson', 'bob.johnson@example.com', 'hashed_pwd2');
特殊情况:
- 对于具有默认值或自动生成的列(如
AUTO_INCREMENT
列),可以不指定其值。 - 对于允许
NULL
的列,可以使用NULL
关键字插入。 - 若要基于某个列的唯一性插入或更新数据,可以使用
INSERT INTO ... ON DUPLICATE KEY UPDATE
语句。