MySQL中的SELECT、INSERT INTO操作详解

MySQL中的SELECT、INSERT INTO操作详解

MySQL中的SELECT、INSERT INTO操作详解

MySQL是最常用的关系型数据库管理系统之一,广泛应用于各种软件开发和数据处理场景。本文将对MySQL中的SELECT、INSERT INTO操作进行详细讲解,帮助读者更好地理解和应用这两种重要的数据库操作。

一、SELECT操作详解

SELECT是MySQL中最常用的操作之一,用于从数据库中检索数据。它可以通过指定表名、字段名、过滤条件等,灵活地提取出满足要求的数据。下面将详细说明SELECT的语法和常用功能。

1. SELECT语法

SELECT语句的基本语法如下:

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

其中:

  • column1, column2, ...表示要查询的字段名,多个字段之间用逗号分隔;
  • table_name表示要查询的表名;
  • condition表示查询的条件,可以使用比较运算符(如=><)、逻辑运算符(如ANDOR)以及通配符(如LIKE)等。

2. 基本查询

首先,我们创建一个名为students的表,并向其中插入一些数据,以便后续查询演示:

CREATE TABLE students (
    id INT AUTO_INCREMENT PRIMARY KEY,
    name VARCHAR(100),
    age INT,
    gender ENUM('男', '女'),
    major VARCHAR(100)
);

INSERT INTO students (name, age, gender, major)
VALUES ('张三', 20, '男', '计算机科学'),
       ('李四', 21, '女', '数学'),
       ('王五', 19, '男', '物理');

然后,我们可以对students表执行各种SELECT操作,如:

  • 查询所有字段:
SELECT * FROM students;

输出为:

+----+--------+-----+--------+------------------+
| id | name   | age | gender | major            |
+----+--------+-----+--------+------------------+
| 1  | 张三   | 20  | 男     | 计算机科学       |
| 2  | 李四   | 21  | 女     | 数学             |
| 3  | 王五   | 19  | 男     | 物理             |
+----+--------+-----+--------+------------------+
  • 查询指定字段:
SELECT name, age FROM students;

输出为:

+--------+-----+
| name   | age |
+--------+-----+
| 张三   | 20  |
| 李四   | 21  |
| 王五   | 19  |
+--------+-----+

3. WHERE条件查询

除了查询指定字段,我们还可以使用WHERE子句来进行条件查询。下面是一些常见的条件查询示例:

  • 查询年龄大于20岁的学生:
SELECT * FROM students WHERE age > 20;

输出为:

+----+------+-----+--------+---------+
| id | name | age | gender | major   |
+----+------+-----+--------+---------+
| 2  | 李四 | 21  | 女     | 数学    |
+----+------+-----+--------+---------+
  • 查询名字以”张”开头的学生:
SELECT * FROM students WHERE name LIKE '张%';

输出为:

+----+------+-----+--------+---------------+
| id | name | age | gender | major         |
+----+------+-----+--------+---------------+
| 1  | 张三 | 20  | 男     | 计算机科学 |
+----+------+-----+--------+---------------+

4. 排序查询

在SELECT语句中,我们可以使用ORDER BY子句对查询结果进行排序。例如,按照年龄从小到大的顺序查询学生:

SELECT * FROM students ORDER BY age ASC;

输出为:

+----+------+-----+--------+--------+
| id | name | age | gender | major  |
+----+------+-----+--------+--------+
| 3  | 王五 | 19  | 男     | 物理   |
| 1  | 张三 | 20  | 男     | 计算机科学|
| 2  | 李四 | 21  | 女     | 数学   |
+----+------+-----+--------+--------+

5. 聚合查询

除了基本的查询操作,SELECT还支持一些聚合函数,如COUNTSUMAVG等,用于对数据进行统计和计算。

例如,计算学生的平均年龄:

SELECT AVG(age) FROM students;

输出为:

+----------+
| AVG(age) |
+----------+
| 20       |
+----------+

二、INSERT INTO操作详解

INSERT INTO是MySQL中用于向表中插入数据的操作。下面将详细说明INSERT INTO的语法和常用功能。

1. INSERT INTO语法

INSERT INTO语句的基本语法如下:

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

其中:

  • table_name表示要插入数据的表名;
  • (column1, column2, ...)表示要插入数据的字段名,多个字段之间用逗号分隔;
  • (value1, value2, ...)表示要插入的数据值。

2. 插入单行数据

我们以前面创建的students表为例,向其中插入一条新数据:

INSERT INTO students (name, age, gender, major)
VALUES ('赵六', 22, '女', '化学');

执行完毕后,再执行以下查询语句,可以发现新数据已成功插入:

SELECT * FROM students;

输出为:

+----+--------+-----+--------+------------------+
| id | name   | age | gender | major            |
+----+--------+-----+--------+------------------+
| 1  | 张三   | 20  | 男     | 计算机科学       |
| 2  | 李四   | 21  | 女     | 数学             |
| 3  | 王五   | 19  | 男     | 物理             |
| 4  | 赵六   | 22  | 女     | 化学             |
+----+--------+-----+--------+------------------+

3. 插入多行数据

除了插入单行数据,INSERT INTO还支持一次性插入多行数据。使用INSERT INTO时只需在字段和值的列表后面加上多个括号,并用逗号分隔即可。

例如,插入两行新数据:

INSERT INTO students (name, age, gender, major)
VALUES ('钱七', 23, '男', '机械'),
       ('孙八', 24, '女', '英语');

再次执行查询语句

SELECT * FROM students;

输出结果为:

+----+--------+-----+--------+------------------+
| id | name   | age | gender | major            |
+----+--------+-----+--------+------------------+
| 1  | 张三   | 20  | 男     | 计算机科学       |
| 2  | 李四   | 21  | 女     | 数学             |
| 3  | 王五   | 19  | 男     | 物理             |
| 4  | 赵六   | 22  | 女     | 化学             |
| 5  | 钱七   | 23  | 男     | 机械             |
| 6  | 孙八   | 24  | 女     | 英语             |
+----+--------+-----+--------+------------------+

4. 批量插入数据

如果要向表中插入大量数据,可以使用INSERT INTO的批量插入功能,能够显著提高插入的效率。

首先,我们创建一个名为scores的表,并向其中插入一些数据,供后续批量插入演示:

CREATE TABLE scores (
    id INT AUTO_INCREMENT PRIMARY KEY,
    student_id INT,
    score INT
);

INSERT INTO scores (student_id, score)
VALUES (1, 90),
       (2, 85),
       (3, 95),
       (4, 88),
       (5, 92),
       (6, 89);

接下来,我们演示批量插入数据的方法。假设我们有一个包含学生信息的CSV文件,每行包含学生的姓名、年龄、性别和专业,文件内容如下:

赵九,25,男,生物学
钱十,26,女,经济学

我们可以使用LOAD DATA语句将CSV文件的数据批量插入到students表中:

LOAD DATA INFILE 'path/to/file.csv'
INTO TABLE students
FIELDS TERMINATED BY ','
LINES TERMINATED BY '\n'
(name, age, gender, major);

需要将path/to/file.csv替换为实际的文件路径。执行完毕后,再次执行查询语句,可以发现CSV文件中的数据已成功插入:

SELECT * FROM students;

5. 插入查询结果

在MySQL中,我们还可以使用INSERT INTO语句插入查询结果。这在需要创建新表并将查询结果写入其中时非常有用。

例如,我们想创建一个名为math_students的新表,将专业为”数学”的学生插入其中:

CREATE TABLE math_students AS
SELECT *
FROM students
WHERE major = '数学';

执行完毕后,执行以下查询语句,可以查看新表中的数据:

SELECT * FROM math_students;

输出结果为:

+----+--------+-----+--------+-------+
| id | name   | age | gender | major |
+----+--------+-----+--------+-------+
| 2  | 李四   | 21  | 女     | 数学  |
+----+--------+-----+--------+-------+

三、总结

本文对MySQL中的SELECT、INSERT INTO操作进行了详细讲解。通过学习SELECT,我们可以灵活地从数据库中检索所需的数据,并实现排序、条件查询和聚合计算等功能。INSERT INTO则可以让我们方便地向数据库中插入单行、多行和批量数据,甚至可以根据查询结果创建新表。

Camera课程

Python教程

Java教程

Web教程

数据库教程

图形图像教程

办公软件教程

Linux教程

计算机教程

大数据教程

开发工具教程