欧美一区二区三区,国内熟女精品熟女A片视频小说,日本av网,小鲜肉男男GAY做受XXX网站

mysql列與行的轉換

錢斌斌1年前7瀏覽0評論

MySQL是一種關系型數據庫管理系統,其中最基本的概念就是“列”和“行”。

列是數據庫中的一個屬性,它代表了一種數據類型,比如字符串、數字、日期等等。在MySQL中,每個表都包含多個列,而每個列會有相應的名稱和數據類型。當我們向一張表中插入新的數據時,需要為每個列都指定相應的值。

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

行是數據庫中的一條記錄,它代表了一組數據,其中每個數據對應了表中的某個列。在MySQL中,每個表都包含多個行,而每個行會有一個唯一的標識符,稱為“主鍵”。

CREATE TABLE table_name (
id INT PRIMARY KEY,
col1 VARCHAR(255),
col2 INT
);

有時候,我們希望將列轉換成行,或者將行轉換成列,以滿足一些特定的需求。在MySQL中,可以使用PIVOT語句和UNPIVOT語句來實現這種轉換。

PIVOT語句將一個表中的多個行轉換成多個列,其中每個列代表了一個行的屬性,同時還保留了其他的列。例如,我們有一個表包含了每個人的姓名、年齡和性別,我們想要將姓名、年齡和性別分別作為列來呈現。

SELECT
name,
MAX(CASE WHEN attribute = 'age' THEN value END) AS age,
MAX(CASE WHEN attribute = 'gender' THEN value END) AS gender
FROM
person
GROUP BY
name;

UNPIVOT語句則是將一個表中的多個列轉換成多個行,其中每個行代表了一個列的屬性,同時還保留了其他的列。例如,我們有一個表包含了每個人的姓名、年齡和性別,我們想要將姓名、年齡和性別分別作為行來呈現。

SELECT
name,
attribute,
value
FROM
person
UNPIVOT
(value FOR attribute IN (age, gender)) AS unpiv;