数据库基础与 MySQL 实践

90 阅读2分钟

一、数据库基础概念

数据库是按照数据结构来组织、存储和管理数据的仓库。常见的数据库类型有关系型数据库(如 MySQL、Oracle 等)和非关系型数据库(如 MongoDB、Redis 等)。

关系型数据库基于关系模型,使用表来存储数据,表由行(记录)和列(字段)组成。表与表之间可以通过外键建立关系。例如,有一个students表:

idnameage
1Alice20
2Bob22

还有一个scores表:

idstudent_idscore
1190
2285

这里scores表中的student_id是外键,关联到students表中的id

二、MySQL 实践

  1. 安装与启动

    • 在 Linux 系统上,可以使用包管理器来安装 MySQL,例如在 Ubuntu 上:

plaintext

sudo apt - get update
sudo apt - get install mysql - server
  • 安装完成后,可以使用systemctl命令启动 MySQL 服务:

plaintext

复制

sudo systemctl start mysql
  1. 创建数据库和表

    • 登录到 MySQL 控制台:

plaintext

mysql - u root - p
  • 创建一个新的数据库:

plaintext

CREATE DATABASE mydb;
USE mydb;
  • mydb数据库中创建students表:

plaintext

CREATE TABLE students (
    id INT AUTO_INCREMENT PRIMARY KEY,
    name VARCHAR(50) NOT NULL,
    age INT
);
  1. 插入和查询数据

    • 插入数据:

plaintext

INSERT INTO students (name, age) VALUES ('Charlie', 21);
  • 查询数据:

plaintext

SELECT * FROM students;
  1. 连接数据库的 Go 代码示例

    • 在 Go 中,可以使用database/sql包和 MySQL 驱动(如github.com/go - sql - driver/mysql)来连接和操作 MySQL 数据库。

    • 示例代码:

go

package main

import (
    "database/sql"
    "fmt"
    "log"

    _ "github.com/go - sql - driver/mysql"
)

func main() {
    db, err := sql.Open("mysql", "root:password@tcp(127.0.0.1:3306)/mydb")
    if err!= nil {
        log.Fatal(err)
    }
    defer db.Close()

    // 查询数据
    rows, err := db.Query("SELECT * FROM students")
    if err!= nil {
        log.Fatal(err)
    }
    defer rows.Close()

    for rows.Next() {
        var id int
        var name string
        var age int
        err = rows.Scan(&id, &name, &age)
        if err!= nil {
            log.Fatal(err)
        }
        fmt.Printf("ID: %d, Name: %s, Age: %d\n", id, name, age)
    }
}
  • 上述代码首先打开与 MySQL 数据库的连接,然后执行查询操作并遍历结果集。