Maison  >  Article  >  base de données  >  Go langage et base de données MySQL : Comment convertir des données en lignes et colonnes ?

Go langage et base de données MySQL : Comment convertir des données en lignes et colonnes ?

WBOY
WBOYoriginal
2023-06-17 08:42:111235parcourir

Avec la croissance continue du volume de données, le traitement et l'analyse des données sont devenus des activités indispensables et importantes pour les entreprises modernes. La base de données est au cœur du traitement et de la gestion des données. En tant que base de données relationnelle offrant d'excellentes performances, des fonctions puissantes et une facilité d'utilisation, MySQL est choisie par de plus en plus d'entreprises. Le langage Go est devenu un langage de programmation privilégié par de plus en plus d'entreprises et de développeurs en raison de ses avantages tels qu'une efficacité élevée, une facilité de développement et un degré élevé de concurrence. Comment convertir les lignes et les colonnes de données dans la base de données MySQL en langage Go ? Cet article vous l'expliquera.

1. Types de données dans la base de données MySQL

Avant d'effectuer le traitement de conversion des lignes et des colonnes de données, nous devons d'abord comprendre les types de données dans la base de données MySQL. MySQL prend en charge une variété de types de données, notamment les types numériques, les types de chaînes, les types d'heure et de date, etc. Le type de données MySQL spécifique et les types de langage Go correspondants sont indiqués dans le tableau suivant :

Type de données MySQL Type de langage Go
INT INT64
float, Real float64
CHAR, VARCHAR, TEXT string
DATE, TIME, DATETIME, TIMESTAMP time.Time
BLOB []byte

2. Stockez les données dans MySQL Dans la base de données

Dans le langage Go, nous pouvons utiliser un pilote MySQL tiers pour nous connecter à la base de données MySQL. Ici, nous utilisons le package github.com/go-sql-driver/mysql pour nous connecter à la base de données MySQL.

Tout d'abord, nous devons définir la chaîne de connexion, y compris le nom d'utilisateur et le mot de passe de la base de données, l'adresse IP et le port du serveur, le nom de la base de données et d'autres informations.

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
}

Nous avons défini la fonction Connect pour se connecter à la base de données MySQL et renvoyer un objet de type sql.DB. Ensuite, nous pouvons définir une structure dans le langage Go pour représenter les données que nous souhaitons stocker. En prenant les informations sur les étudiants comme exemple, la structure est définie comme suit :

type student struct {
    id   int
    name string
    age  int
}

Ensuite, nous pouvons insérer une information sur l'étudiant dans la base de données MySQL via le code suivant :

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
}

Le code ci-dessus définit une fonction InsertStudent pour insérer un étudiant. objet dans la base de données MySQL dans la table des étudiants. Au préalable, nous définissons la table des étudiants dans la base de données comme (nom VARCHAR(50), âge INT).

3. Interroger les données dans la base de données MySQL

Dans le langage Go, nous pouvons utiliser une requête pour exécuter des instructions SQL. Voici comment interroger les informations sur les étudiants dans la table des étudiants :

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
}

Le code ci-dessus définit une fonction QueryStudent pour interroger toutes les informations sur les étudiants dans la table des étudiants de la base de données MySQL. La fonction renvoie un tableau d'informations sur les étudiants.

4. Convertir les lignes de données en colonnes de données

Parfois, nous devons convertir les lignes de données en colonnes de données. Par exemple, nous devons afficher 4 informations sur les élèves dans chaque ligne du tableau d'informations sur les élèves. Voici comment convertir un tableau d'informations sur les étudiants en un tableau bidimensionnel d'informations sur les étudiants :

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
}

Le code ci-dessus définit une fonction ToColumnArray pour convertir un tableau d'informations sur les étudiants en un tableau bidimensionnel d'informations sur les étudiants, avec chaque ligne contenant n informations sur les étudiants.

5. Convertir les colonnes de données en lignes de données

D'un autre côté, nous devons également convertir les colonnes de données en lignes de données. Par exemple, nous devons diviser une grande table en plusieurs petites tables. Voici comment convertir un tableau bidimensionnel d'informations sur les étudiants en un tableau d'informations sur les étudiants :

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
}

Le code ci-dessus définit une fonction ToRowArray pour convertir un tableau bidimensionnel d'informations sur les étudiants en un tableau d'informations sur les étudiants.

Résumé

Cet article explique comment se connecter à la base de données MySQL en langage Go et effectuer le traitement de conversion des lignes et des colonnes de données. Dans le monde des affaires, le traitement et la gestion des données sont très critiques. J'espère que cet article pourra vous inspirer et vous aider à mieux traiter et gérer de grandes quantités de données.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn