1. MySQL 데이터베이스에 연결
MySQL 데이터베이스를 탐색하기 전에 먼저 MySQL 데이터베이스와의 연결을 설정해야 합니다. Golang은 MySQL 데이터베이스에 보다 편리하게 연결할 수 있도록 Database/sql 패키지를 제공합니다. 먼저 이 패키지를 소개해야 합니다.
import ( "database/sql" "fmt" _ "github.com/go-sql-driver/mysql" )
MySQL 데이터베이스에 연결하려면 데이터베이스 연결 주소, 데이터베이스 이름, 계정 번호, 비밀번호 및 기타 정보를 지정해야 합니다. 샘플 코드는 다음과 같습니다.
db, err := sql.Open("mysql", "user:password@tcp(127.0.0.1:3306)/database_name") if err != nil { fmt.Println("连接数据库出错:", err) return } defer db.Close()
그 중 "mysql"은 드라이버 이름, 연결 주소는 "127.0.0.1:3306", 데이터베이스 이름은 "database_name", 계정과 비밀번호는 "user"입니다. 그리고 "비밀번호".
데이터베이스에 연결한 후 함수 끝에서 데이터베이스 연결을 닫아야 하는데, 이는 위 코드와 같이 defer 문을 통해 수행할 수 있습니다.
2. 데이터 쿼리
MySQL 데이터베이스에 연결한 후 데이터베이스를 쿼리할 수 있습니다. Golang에서는 쿼리 작업을 수행하는 방법이 두 가지가 있습니다. 하나는 단일 행 쿼리에 쿼리 함수를 사용하는 것이고, 다른 하나는 다중 행 쿼리에 queryRows 함수를 사용하는 것입니다.
단일 행 쿼리
단일 행 쿼리는 데이터베이스 테이블의 데이터 한 행을 쿼리하는 것을 말합니다. 샘플 코드는 다음과 같습니다.
row := db.QueryRow("SELECT * FROM table_name WHERE id=?", 1) if err != nil { fmt.Println("查询出错:", err) return } var id int var name string var age int var address string err = row.Scan(&id, &name, &age, &address) if err != nil { fmt.Println("查询结果获取失败:", err) return } fmt.Println(id, name, age, address)
위 코드에서는 QueryRow 함수를 사용하여 쿼리합니다. 여기서 "?"는 쿼리 조건의 값을 나타내는 자리 표시자입니다(이 경우 id=1). Scan 함수를 사용하여 각 필드의 값을 가져오고 쿼리 결과에서 데이터 행을 반환할 수 있습니다. 마지막으로 쿼리 결과를 출력합니다.
다중 행 쿼리
다중 행 쿼리는 데이터베이스 테이블의 여러 데이터 행을 쿼리하는 것을 의미합니다. 샘플 코드는 다음과 같습니다.
rows, err := db.Query("SELECT * FROM table_name WHERE age > ?", 18) if err != nil { fmt.Println("查询出错:", err) return } defer rows.Close() for rows.Next() { var id int var name string var age int var address string err = rows.Scan(&id, &name, &age, &address) if err != nil { fmt.Println("查询结果获取失败:", err) return } fmt.Println(id, name, age, address) }
위 코드에서 쿼리 함수를 사용하여 쿼리합니다. 여기서 "?"는 쿼리 조건의 값(이 경우 age>18)을 나타내는 자리 표시자입니다. for 루프를 사용하여 쿼리 결과에 있는 여러 데이터 행을 탐색하고 Scan 함수를 사용하여 각 필드의 값을 얻을 수 있습니다. 마지막으로 쿼리 결과를 출력합니다.
3. MySQL 데이터 탐색
데이터베이스 테이블의 데이터를 쿼리한 후 for 루프를 통해 데이터를 탐색하고 처리할 수 있습니다. 샘플 코드는 다음과 같습니다.
rows, err := db.Query("SELECT * FROM table_name") if err != nil { fmt.Println("查询出错:", err) return } defer rows.Close() for rows.Next() { var id int var name string var age int var address string err = rows.Scan(&id, &name, &age, &address) if err != nil { fmt.Println("查询结果获取失败:", err) return } fmt.Println(id, name, age, address) // 在此处可以对获取到的数据进行处理 }
위 코드에서는 먼저 Query 함수를 사용하여 데이터베이스 테이블의 모든 데이터를 쿼리한 다음 for 루프를 통해 데이터의 각 행을 순회한 후 다음을 통해 각 필드의 값을 얻습니다. 스캔 기능을 수행하고 최종적으로 데이터 획득이 처리됩니다. 쿼리 결과를 닫으려면 닫기 기능을 사용해야 합니다. 처리가 완료되면 쿼리 결과는 더 이상 필요하지 않습니다.
위 내용은 golang에서 mysql 데이터베이스를 탐색하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!