データ量が増加し続けるにつれ、データ処理と分析は現代の企業にとって不可欠かつ重要なビジネスとなっています。データベースはデータの処理と管理の中核です。 MySQL は、優れたパフォーマンス、強力な機能、使いやすさを備えたリレーショナル データベースとして、ますます多くの企業に選ばれています。 Go 言語は、高効率、開発の容易さ、高度な同時実行性などの利点により、ますます多くの企業や開発者に好まれるプログラミング言語となっています。 MySQLデータベースのデータ行と列をGo言語で変換するにはどうすればよいですか?この記事ではそれについて説明します。
1. MySQL データベースのデータ型
データの行と列の変換処理を実行する前に、まず MySQL データベースのデータ型を理解する必要があります。 MySQL は、数値型、文字列型、時刻および日付型など、さまざまなデータ型をサポートしています。特定の MySQL データ型とそれに対応する Go 言語型を次の表に示します。
Go 言語型 | |
---|---|
int64 | |
float64 | |
string | |
time.Time | |
[]byte |
import ( "database/sql" _ "github.com/go-sql-driver/mysql" ) const ( USERNAME = "root" PASSWORD = "12345678" NETWORK = "tcp" SERVER = "localhost" PORT = 3306 DATABASE = "test" ) func Connect() (*sql.DB, error) { connStr := fmt.Sprintf("%s:%s@%s(%s:%d)/%s", USERNAME, PASSWORD, NETWORK, SERVER, PORT, DATABASE) db, err := sql.Open("mysql", connStr) if err != nil { return nil, err } return db, nil }
type student struct { id int name string age int }
func InsertStudent(db *sql.DB, stu *student) error { sql := "INSERT INTO student (name, age) VALUES (?, ?)" stmt, err := db.Prepare(sql) if err != nil { return err } defer stmt.Close() _, err = stmt.Exec(stu.name, stu.age) if err != nil { return err } return nil }
func QueryStudent(db *sql.DB) ([]*student, error) { students := make([]*student, 0) rows, err := db.Query("SELECT * FROM student") if err != nil { return nil, err } defer rows.Close() for rows.Next() { stu := new(student) err := rows.Scan(&stu.id, &stu.name, &stu.age) if err != nil { return nil, err } students = append(students, stu) } if err = rows.Err(); err != nil { return nil, err } return students, nil }
func ToColumnArray(students []*student, n int) [][]*student { result := make([][]*student, (len(students)+n-1)/n) for i := range result { result[i] = make([]*student, n) } for i, s := range students { row, col := i/n, i%n result[row][col] = s } return result }
func ToRowArray(students [][]*student) []*student { result := make([]*student, 0) for _, row := range students { for _, s := range row { if s != nil { result = append(result, s) } } } return result }
以上がGo 言語と MySQL データベース: データを行と列に変換するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。