兴趣爱好怎么用多项选择,insert into……那儿我不会

创建 TEST数据库,创表,有姓名、性别和兴趣爱好字段 字性别字段单选(男/女”),兴题要好李段用多员出是,可提《篮球,“足球,音乐,电影,'画画',‘摄影')。
①向STUDENTS表插入数据:(李明,男,足球,音乐,电影),(张君”女求',足球,电影

insert into students(姓名,性别,爱好) values('黎明','男','足球,音乐,电影'),('张军','女','女求,足球,电影')

这种不确定的内容,要么,你就用一个字段放所有内容,要么,就做个分表,然后每个内容一行,和students 关联

首先,我们需要创建 TEST 数据库,并在其中创建 STUDENTS 表:

CREATE DATABASE TEST;

USE TEST;

CREATE TABLE STUDENTS (
    id INT AUTO_INCREMENT PRIMARY KEY,
    name VARCHAR(50),
    gender ENUM('男', '女'),
    interests SET('篮球', '足球', '音乐', '电影', '画画', '摄影')
);

注意,这里使用了 ENUM 类型来限定性别字段的可选值,使用了 SET 类型来限定兴趣爱好字段的可选值。

然后,我们可以使用 INSERT INTO 语句向 STUDENTS 表插入数据:

INSERT INTO STUDENTS (name, gender, interests) VALUES
('李明', '男', '足球,音乐,电影'),
('张君', '女', '足球,电影');

注意,这里使用了逗号来分隔多个兴趣爱好,这是因为在 SET 类型中,多个值需要使用逗号来分隔。同时,也可以使用单引号将多个值括起来,形成一个字符串,但需要注意字符串中不能包含逗号。
在使用 SET 类型时,可以使用数字代替每个选项,例如:

CREATE TABLE STUDENTS (
    id INT AUTO_INCREMENT PRIMARY KEY,
    name VARCHAR(50),
    gender ENUM('男', '女'),
    interests SET('1', '2', '3', '4', '5', '6')
);

然后,可以使用数字代替字符串来表示每个选项,例如:

INSERT INTO STUDENTS (name, gender, interests) VALUES
('李明', '男', '2,3,4'),
('张君', '女', '2,4');

这样可以节省存储空间,但需要注意每个数字对应哪个选项。
在使用多选选项时,可以使用 JSON 格式来存储,例如:

CREATE TABLE STUDENTS (
    id INT AUTO_INCREMENT PRIMARY KEY,
    name VARCHAR(50),
    gender ENUM('男', '女'),
    interests JSON
);

然后,可以使用 JSON 格式存储每个学生的兴趣爱好,例如:

INSERT INTO STUDENTS (name, gender, interests) VALUES
('李明', '男', '["篮球", "足球", "音乐", "电影"]'),
('张君', '女', '["足球", "电影"]');

这样可以更灵活地存储多选选项,而且可以方便地进行查询和处理。
补充说明:在使用多选选项时,还可以使用关联表来存储,例如:

首先,我们需要创建两个表,一个是 STUDENTS 表,另一个是 INTERESTS 表:

CREATE TABLE STUDENTS (
    id INT AUTO_INCREMENT PRIMARY KEY,
    name VARCHAR(50),
    gender ENUM('男', '女')
);

CREATE TABLE INTERESTS (
    id INT AUTO_INCREMENT PRIMARY KEY,
    name VARCHAR(50)
);

然后,我们需要向 INTERESTS 表中插入所有可选的兴趣爱好:

INSERT INTO INTERESTS (name) VALUES
('篮球'),
('足球'),
('音乐'),
('电影'),
('画画'),
('摄影');

接下来,我们需要创建一个关联表,将每个学生和他们的兴趣爱好关联起来:

CREATE TABLE STUDENT_INTERESTS (
    student_id INT,
    interest_id INT,
    PRIMARY KEY (student_id, interest_id),
    FOREIGN KEY (student_id) REFERENCES STUDENTS(id),
    FOREIGN KEY(interest_id) REFERENCES INTERESTS(id)
);

注意,这里使用了两个外键来关联 STUDENTS 表和 INTERESTS 表,同时使用了联合主键来保证每个学生只能选择一个兴趣爱好一次。

然后,我们可以使用 INSERT INTO 语句向 STUDENTS 表插入数据,并同时向 STUDENT_INTERESTS 表中插入关联数据:

INSERT INTO STUDENTS (name, gender) VALUES
('李明', '男'),
('张君', '女');

INSERT INTO STUDENT_INTERESTS (student_id, interest_id) VALUES
(1, 2),
(1, 3),
(1, 4),
(2, 2),
(2, 4);

注意,这里使用了 STUDENT_INTERESTS 表来存储每个学生选择的兴趣爱好,每个学生可以选择多个兴趣爱好,每个兴趣爱好也可以被多个学生选择。这样可以更灵活地存储多选选项,并且可以避免重复数据的出现。同时,也可以方便地进行查询和处理,例如:

查询每个学生选择的兴趣爱好:

SELECT s.name, i.name
FROM STUDENTS s
JOIN STUDENT_INTERESTS si ON s.id = si.student_id
JOIN INTERESTS i ON si.interest_id = i.id;

查询选择某个兴趣爱好的所有学生:

SELECT s.name
FROM STUDENTS s
JOIN STUDENT_INTERESTS si ON s.id = si.student_id
JOIN INTERESTS i ON si.interest_id = i.id
WHERE i.name = '足球';

统计每个兴趣爱好被选择的次数:

SELECT i.name, COUNT(*) AS count
FROM STUDENT_INTERESTS si
JOIN INTERESTS i ON si.interest_id = i.id
GROUP BY si.interest_id;

以上是使用关联表来存储多选选项的方法,相比使用 SET 类型或 JSON 格式,这种方法更加灵活、可扩展,但需要更多的表和关系维护。在实际应用中,可以根据具体情况选择最适合的方法。
写作不易记得采纳