在Golang中,可以使用第三方库如Go-MySQL-Driver来实现对MySQL数据库的表创建删除和数据表操作(CRUD)。
表创建和删除:
- 创建表
通过执行CREATE TABLE语句来创建一个新的数据表。例如:
_, err := db.Exec(`
CREATE TABLE users (
id INT NOT NULL AUTO_INCREMENT,
name VARCHAR(50) NOT NULL,
age INT NOT NULL DEFAULT 0,
PRIMARY KEY (id)
)
`)
if err != nil {
log.Fatal(err)
}
- 删除表
通过执行DROP TABLE语句来删除一个已有的数据表。例如:
_, err := db.Exec("DROP TABLE IF EXISTS users")
if err != nil {
log.Fatal(err)
}
数据表操作(CRUD):
- 插入数据
通过执行INSERT INTO语句来向数据表中插入一条新纪录。例如:
result, err := db.Exec("INSERT INTO users(name, age) VALUES (?, ?)", "Tom", 20)
if err != nil {
log.Fatal(err)
}
// 获取插入记录ID
id, _ := result.LastInsertId()
fmt.Println("New record ID:", id)
- 查询数据
通过执行SELECT语句来从数据表中查询符合条件的记录。例如:
rows, err := db.Query("SELECT * FROM users WHERE age > ?", 18)
if err != nil {
log.Fatal(err)
}
defer rows.Close()
for rows.Next() {
var id int
var name string
var age int
if err := rows.Scan(&id, &name, &age); err != nil {
log.Fatal(err)
}
fmt.Printf("ID: %d, Name: %s, Age: %d\n", id, name, age)
}
- 更新数据
通过执行UPDATE语句来更新符合条件的记录。例如:
_, err := db.Exec("UPDATE users SET age = ? WHERE name = ?", 22, "Tom")
if err != nil {
log.Fatal(err)
}
- 删除数据
通过执行DELETE FROM语句来删除符合条件的记录。例如:
_, err := db.Exec("DELETE FROM users WHERE age < ?", 18)
if err != nil {
log.Fatal(err)
}
需要注意的是,在进行数据表操作时,应该避免使用字符串拼接或格式化SQL语句,而应该使用占位符和参数绑定的方式来避免SQL注入攻击。同时,需要对数据库连接和资源进行适当地释放和管理,避免资源泄漏和性能问题。




