mysql数据库数据插入
时间: 2025-05-17 14:24:40 浏览: 28
### 如何向 MySQL 数据库中插入数据
在 MySQL 中,`INSERT INTO` 是用于向表中插入新记录的关键字。以下是详细的说明以及一些常见的场景。
#### 基本语法
基本的 `INSERT INTO` 语句有以下两种形式:
1. **指定列名**
如果只希望为某些特定的列赋值,则可以显式声明这些列的名字。
```sql
INSERT INTO 表名称 (列1, 列2, ...) VALUES (值1, 值2, ...);
```
2. **不指定列名**
如果要为所有的列都提供值,则不需要列出列名。
```sql
INSERT INTO 表名称 VALUES (值1, 值2, ...);
```
注意,在第二种情况下,提供的值的数量和顺序必须与表中的列完全匹配[^4]。
#### 示例:插入字符串和日期时间类型的数据
##### 字符串类型的插入
当插入包含中文字符的数据时,可能会遇到乱码问题。这通常是因为编码设置不当引起的。为了防止这种情况发生,可以在创建数据库或表的时候设定合适的字符集(如 utf8 或 utf8mb4),并确保客户端连接也使用相同的字符集[^1]。
下面是一个简单的例子:
```sql
CREATE TABLE students (
id INT AUTO_INCREMENT PRIMARY KEY,
name VARCHAR(50),
info TEXT
);
-- 插入一条含有中文的信息
INSERT INTO students (name, info) VALUES ('张三', '来自北京');
```
##### DateTime 类型的插入
对于 datetime 类型字段,如果想存储 Java 当前的时间戳到 MySQL 的 birthday 字段里,由于直接传递 java.util.Date 对象可能不会被正确识别,因此推荐转换成 SQL Date 格式或者通过预处理语句绑定参数的方式完成操作[^3]。
这里给出一个基于 JDBC API 实现的例子:
```java
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
public class InsertDateTimeExample {
public static void main(String[] args) throws Exception {
String url = "jdbc:mysql://localhost:3306/testdb";
String user = "root";
String password = "";
Connection conn = DriverManager.getConnection(url, user, password);
// 使用 PreparedStatement 来安全地执行带参数的查询
String sql = "INSERT INTO users(birthday) VALUES (?)";
PreparedStatement pstmt = conn.prepareStatement(sql);
pstmt.setDate(1, new java.sql.Date(System.currentTimeMillis()));
int affectedRows = pstmt.executeUpdate();
System.out.println("受影响行数:" + affectedRows);
pstmt.close();
conn.close();
}
}
```
上述代码片段展示了如何利用 Java 将系统的当前时间作为 date 类型写入名为 `users` 的表格中的 `birthday` 属性上[^2]。
---
###
阅读全文
相关推荐
















