Para saber o que é uma chave composta, precisamos ter o conhecimento do que é uma chave primária, uma chave primária é uma coluna que possui um valor único e não nulo em uma tabela SQL. 

Agora, uma chave composta também é uma chave primária, mas a diferença é que ela é feita pela combinação de mais de uma coluna para identificar a linha específica na tabela.

Chave composta:

Uma chave composta é feita pela combinação de duas ou mais colunas em uma tabela que pode ser usada para identificar exclusivamente cada linha na tabela quando as colunas são combinadas, a exclusividade de uma linha é garantida, mas quando é considerada individualmente não garante exclusividade, ou também pode ser entendida como uma chave primária feita pela combinação de dois ou mais atributos para identificar exclusivamente cada linha em uma tabela. 

Observação: 

  •  Uma chave composta também pode ser feita pela combinação de mais de uma chave candidata.
  • Uma chave composta não pode ser nula.

Exemplo:

Criação de um banco de dados:

CREATE School;

Usando banco de dados:

USE School;

Criando uma tabela com uma chave composta:

CREATE TABLE student
(rollNumber INT, 
name VARCHAR(30), 
class VARCHAR(30), 
section VARCHAR(1), 
mobile VARCHAR(10),
PRIMARY KEY (rollNumber, mobile));

Neste exemplo, criamos a chave composta como a combinação de duas colunas, ou seja, rollNumber e mobile, porque todas as linhas da tabela student podem ser identificadas exclusivamente por esta chave composta.

Inserindo registros na tabela:

INSERT INTO student (rollNumber, name, class, section, mobile) 
VALUES (1, "AMAN","FOURTH", "B", "9988774455");
INSERT INTO student (rollNumber, name, class, section, mobile) 
VALUES (2, "JOHN","FIRST", "A", "9988112233");
INSERT INTO student (rollNumber, name, class, section, mobile) 
VALUES (3, "TOM","FOURTH", "B", "9988777755");
INSERT INTO student (rollNumber, name, class, section, mobile) 
VALUES (4, "RICHARD","SECOND", "C", "9955663322");

Consultando os registros:

SELECT * FROM student;

SAÍDA: