第二章:MySQL数据库基础

在学习MySQL的过程中,理解和掌握数据库的基本概念是非常重要的。数据库是MySQL存储和管理数据的核心单位,而表、字段和记录是数据库中的基本组成元素。本章将详细介绍这些基本概念,并通过实例演示如何创建和管理数据库及表。

1. 数据库的基本概念

在MySQL中,数据库是存储数据的容器。一个MySQL实例可以包含多个数据库,每个数据库是独立的,并且每个数据库中可以包含多个表。数据库帮助我们组织和管理数据,以便于高效存取和查询。

数据库中的数据是以表格的形式存储的。每个表由若干列(字段)和行(记录)组成。表是一种结构化的数据存储方式,每个表都有自己的结构定义和约束条件。

2. 创建数据库

在MySQL中,创建数据库使用的命令是CREATE DATABASE。创建数据库时,你可以指定数据库的字符集和排序规则(collation),这是影响数据库中存储数据方式的关键因素。

创建数据库的基本语法:

CREATE DATABASE database_name;

你还可以为数据库指定字符集(如UTF-8)和排序规则:

CREATE DATABASE database_name
    CHARACTER SET utf8
    COLLATE utf8_general_ci;

示例: 创建一个名为school的数据库:

CREATE DATABASE school;

创建数据库后,你可以通过SHOW DATABASES;命令查看当前MySQL实例中的所有数据库。

查看数据库:

SHOW DATABASES;

3. 选择数据库

在创建了数据库之后,我们可以通过USE命令来选择当前操作的数据库。选择数据库后,所有后续的表操作(如创建表、插入数据等)都将作用于该数据库。

选择数据库的基本语法:

USE database_name;

示例: 选择我们刚刚创建的school数据库:

USE school;

4. 数据表的基本概念

在MySQL中,数据是通过来存储的。表由若干个字段(column)和记录(row)组成。字段定义了数据的结构和类型,而记录则是实际存储的数据。

每个表都有一个结构定义(称为表的模式),它指定了表中包含哪些字段、字段的数据类型、是否允许为空、是否为主键等属性。

5. 创建表

要创建一个表,使用CREATE TABLE命令,并在命令中定义表的结构。每个字段都需要指定数据类型,并可以指定其他约束,如是否允许为空、是否为主键等。

创建表的基本语法:

CREATE TABLE table_name (
    column1 datatype [constraint],
    column2 datatype [constraint],
    ...
);

常见的数据类型

  • INT:整数类型,通常用于存储数值数据。
  • VARCHAR(size):变长字符类型,通常用于存储文本数据。
  • TEXT:文本数据类型,用于存储大量文本。
  • DATE:日期类型,用于存储日期(年-月-日)。
  • DATETIME:日期时间类型,用于存储日期和时间。

创建表的示例:

假设我们要在school数据库中创建一个名为students的表,记录学生的信息,包括学号、姓名、性别、出生日期、入学时间等。每个学生有唯一的学号作为主键。

CREATE TABLE students (
    student_id INT NOT NULL AUTO_INCREMENT,  -- 学号,自动递增
    name VARCHAR(100) NOT NULL,              -- 姓名,最多100个字符
    gender ENUM('Male', 'Female') NOT NULL,  -- 性别,限制为'男'或'女'
    birth_date DATE,                         -- 出生日期
    enrollment_date DATETIME,                -- 入学时间
    PRIMARY KEY (student_id)                -- 设置主键
);

在这个表中:

  • student_id是主键,且设置为自动递增(AUTO_INCREMENT),这意味着每当插入新记录时,MySQL会自动为student_id字段生成一个唯一的值。
  • name字段是一个变长字符字段,最多100个字符。
  • gender字段使用ENUM类型,只允许输入'Male'或'Female'。
  • birth_dateenrollment_date分别用于存储出生日期和入学时间。

6. 查看表结构

创建表之后,可以通过DESCRIBE命令查看表的结构,包括字段名称、数据类型、是否可以为空、键类型等信息。

查看表结构的语法:

DESCRIBE table_name;

示例:

DESCRIBE students;

7. 插入数据

创建好表后,我们就可以向表中插入数据了。MySQL提供了INSERT INTO命令,用于向表中插入一行或多行数据。

插入数据的基本语法:

INSERT INTO table_name (column1, column2, ...)
VALUES (value1, value2, ...);

示例:students表中插入一条记录:

INSERT INTO students (name, gender, birth_date, enrollment_date)
VALUES ('John Doe', 'Male', '2005-08-15', '2023-09-01 10:00:00');

在上面的示例中,我们插入了一名名为John Doe的学生,性别为男,出生日期为2005年8月15日,入学时间为2023年9月1日。

8. 查询数据

插入数据之后,我们可以通过SELECT语句查询表中的数据。SELECT语句是SQL中最常用的查询命令,它用于从数据库中获取数据。

查询数据的基本语法:

SELECT column1, column2, ...
FROM table_name
WHERE condition;

示例: 查询students表中的所有学生信息:

SELECT * FROM students;

这条语句会返回students表中所有列的所有数据。如果你只想查询特定的列,可以替换*为列名,例如:

SELECT name, gender FROM students;

9. 更新数据

我们还可以使用UPDATE语句修改表中已有的记录。UPDATE语句允许我们根据指定的条件修改表中的一行或多行数据。

更新数据的基本语法:

UPDATE table_name
SET column1 = value1, column2 = value2, ...
WHERE condition;

示例: 修改students表中某个学生的姓名:

UPDATE students
SET name = 'Jane Doe'
WHERE student_id = 1;

10. 删除数据

如果需要删除表中的某些数据,可以使用DELETE语句。该命令会根据指定的条件删除一行或多行数据。

删除数据的基本语法:

DELETE FROM table_name
WHERE condition;

示例: 删除students表中学号为1的学生记录:

DELETE FROM students
WHERE student_id = 1;

11. 删除表

如果不再需要某个表,可以使用DROP TABLE命令删除它。删除表时,表中的数据也会被永久删除,因此使用时需要小心。

删除表的基本语法:

DROP TABLE table_name;

示例: 删除students表:

DROP TABLE students;

12. 结论

在本章中,我们学习了MySQL数据库中的基本概念,包括数据库、表、字段、记录等。我们详细介绍了如何创建数据库、创建表、插入数据、查询数据、更新数据以及删除数据。掌握这些基础知识对于后续的学习和实际应用非常重要。接下来,我们将进入第三章:MySQL数据类型与表设计,进一步探讨MySQL中的数据类型和如何设计高效的数据库表结构。