Rumah  >  Artikel  >  pangkalan data  >  Bahasa Go dan pangkalan data MySQL: Bagaimana untuk menukar data ke dalam baris dan lajur?

Bahasa Go dan pangkalan data MySQL: Bagaimana untuk menukar data ke dalam baris dan lajur?

WBOY
WBOYasal
2023-06-17 08:42:111235semak imbas

Dengan pertumbuhan berterusan volum data, pemprosesan dan analisis data telah menjadi perniagaan yang amat diperlukan dan penting untuk perusahaan moden. Pangkalan data adalah teras pemprosesan dan pengurusan data. Sebagai pangkalan data hubungan dengan prestasi cemerlang, fungsi berkuasa dan kemudahan penggunaan, MySQL dipilih oleh semakin banyak perusahaan. Bahasa Go telah menjadi bahasa pengaturcaraan yang digemari oleh semakin banyak perusahaan dan pembangun kerana kelebihannya seperti kecekapan tinggi, kemudahan pembangunan dan tahap keselarasan yang tinggi. Bagaimana untuk menukar baris dan lajur data dalam pangkalan data MySQL dalam bahasa Go? Artikel ini akan menerangkannya kepada anda.

1. Jenis data dalam pangkalan data MySQL

Sebelum melaksanakan pemprosesan penukaran baris dan lajur data, kita perlu terlebih dahulu memahami jenis data dalam pangkalan data MySQL. MySQL menyokong pelbagai jenis data, termasuk jenis angka, jenis rentetan, jenis masa dan tarikh, dsb. Jenis data MySQL khusus dan jenis bahasa Go yang sepadan ditunjukkan dalam jadual berikut:

MySQL 数据类型 Go语言类型
INT int64
FLOAT, REAL float64
CHAR, VARCHAR, TEXT string
DATE, TIME, DATETIME, TIMESTAMP time.Time
BLOB []byte

2. Simpan data dalam pangkalan data MySQL

Dalam bahasa Go, kita boleh menggunakan Pemacu MySQL pihak ketiga untuk menyambung ke pangkalan data MySQL. Di sini kami menggunakan pakej github.com/go-sql-driver/mysql untuk menyambung ke pangkalan data MySQL.

Pertama, kita perlu menentukan rentetan sambungan, termasuk nama pengguna dan kata laluan pangkalan data, alamat IP pelayan dan port, nama pangkalan data dan maklumat lain.

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
}

Kami menentukan fungsi Connect untuk menyambung ke pangkalan data MySQL dan mengembalikan objek jenis sql.DB. Seterusnya, kita boleh mentakrifkan struktur dalam bahasa Go untuk mewakili data yang ingin kita simpan. Mengambil maklumat pelajar sebagai contoh, strukturnya ditakrifkan seperti berikut:

type student struct {
    id   int
    name string
    age  int
}

Seterusnya, kita boleh memasukkan sekeping maklumat pelajar ke dalam pangkalan data MySQL melalui kod berikut:

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
}

Kod di atas mentakrifkan fungsi InsertStudent, Masukkan objek pelajar ke dalam jadual pelajar dalam pangkalan data MySQL. Terdahulu, kami mentakrifkan jadual pelajar dalam pangkalan data sebagai (nama VARCHAR(50), umur INT).

3. Tanya data dalam pangkalan data MySQL

Dalam bahasa Go kita boleh menggunakan pertanyaan untuk melaksanakan pernyataan SQL. Berikut ialah cara untuk menanyakan maklumat pelajar dalam jadual pelajar:

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
}

Kod di atas mentakrifkan fungsi QueryStudent, yang digunakan untuk menanyakan semua maklumat pelajar dalam jadual pelajar dalam pangkalan data MySQL. Fungsi ini mengembalikan tatasusunan maklumat pelajar.

4. Menukar baris data kepada lajur data

Kadangkala kita perlu menukar baris data kepada lajur data Sebagai contoh, kita perlu memaparkan 4 maklumat pelajar dalam setiap baris dalam jadual maklumat pelajar. Berikut ialah cara menukar tatasusunan maklumat pelajar kepada tatasusunan dua dimensi maklumat pelajar:

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
}

Kod di atas mentakrifkan fungsi ToColumnArray untuk menukar tatasusunan maklumat pelajar kepada tatasusunan dua dimensi pelajar maklumat, dengan setiap baris mengandungi n maklumat pelajar.

5. Menukar lajur data kepada baris data

Sebaliknya, kita juga perlu menukar lajur data kepada baris data Sebagai contoh, kita perlu membahagikan jadual besar kepada berbilang jadual kecil . Berikut ialah cara untuk menukar tatasusunan dua dimensi maklumat pelajar kepada tatasusunan maklumat pelajar:

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
}

Kod di atas mentakrifkan fungsi ToRowArray untuk menukar tatasusunan dua dimensi maklumat pelajar kepada tatasusunan pelajar maklumat.

Ringkasan

Artikel ini memperkenalkan cara menyambung ke pangkalan data MySQL dalam bahasa Go dan melaksanakan pemprosesan penukaran baris dan lajur data. Dalam perniagaan sebenar, pemprosesan dan pengurusan data adalah sangat kritikal. Saya harap artikel ini dapat memberi inspirasi kepada anda dan membantu anda memproses dan mengurus sejumlah besar data dengan lebih baik.

Atas ialah kandungan terperinci Bahasa Go dan pangkalan data MySQL: Bagaimana untuk menukar data ke dalam baris dan lajur?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn