SQL에서 데이터를 조회하려면 SELECT 문을 사용합니다. 이 문법으로 데이터베이스에서 특정 조건에 맞는 데이터를 읽어올 수 있습니다.
SQL의 SELECT 문은 다음과 같은 형태로 작성합니다:
SELECT 컬럼명1, 컬럼명2 FROM 테이블명 WHERE 조건;
SELECT 키워드는 조회할 컬럼을 지정하고, FROM 키워드는 데이터를 가져올 테이블을 지정합니다. WHERE 절은 선택적으로 사용하며, 특정 조건에 맞는 데이터만 조회할 때 활용합니다.
다음은 ID가 9인 직원의 이름과 직급을 조회하는 SQL 쿼리입니다:
SELECT name, position FROM employee WHERE id = 9;
이 쿼리를 실행하면 employee 테이블에서 ID가 9인 직원의 이름과 직급을 조회합니다.
때로는 여러 테이블에 걸쳐 데이터를 조회해야 합니다. 이 경우 JOIN을 사용하여 테이블을 연결한 후 데이터를 가져옵니다.
예를 들어, ID가 2000인 프로젝트를 리드하는 직원의 ID, 이름, 직급을 조회하려면 다음과 같이 작성합니다:
SELECT e.id, e.name, e.position
FROM project p, employee e
WHERE p.id = 2000 AND p.leader_id = e.id;
이 쿼리는 project 테이블과 employee 테이블을 연결하여 프로젝트 리더의 정보를 가져옵니다.
조회된 데이터에서 중복된 행을 제거하려면 DISTINCT 키워드를 사용합니다.
디자이너들이 참여한 프로젝트의 ID와 이름을 중복 없이 조회하려면 다음과 같이 작성합니다:
SELECT DISTINCT p.id, p.name
FROM employee e, works_on w, project p
WHERE e.position = 'Designer' AND e.id = w.employee_id AND w.project_id = p.id;
이 쿼리는 중복된 프로젝트 ID를 제거하고 유일한 프로젝트 목록을 반환합니다.
문자열 데이터를 조회할 때 특정 패턴과 일치하는 데이터를 가져오려면 LIKE 키워드를 사용합니다.
이름이 'A'로 시작하거나 'n'으로 끝나는 직원의 이름을 조회하려면 다음과 같이 작성합니다:
SELECT name FROM employee WHERE name LIKE 'A%' OR name LIKE '%n';
여기서 % 기호는 0개 이상의 문자를 의미합니다.
특정 테이블의 모든 컬럼을 조회하려면 * 기호를 사용합니다.
ID가 9인 직원의 모든 정보를 조회하려면 다음과 같이 작성합니다:
SELECT * FROM employee WHERE id = 9;
이 쿼리는 해당 직원의 모든 컬럼 데이터를 반환합니다.
특정 조건 없이 테이블의 모든 데이터를 조회할 때는 WHERE 절을 생략할 수 있습니다.
모든 직원의 이름과 생일을 조회하려면 다음과 같이 작성합니다:
SELECT name, birth_date FROM employee;
이 쿼리는 employee 테이블의 모든 직원에 대한 이름과 생일 정보를 가져옵니다.
SELECT 문을 사용할 때 WHERE 절에 사용된 컬럼에 인덱스가 설정되어 있으면 데이터 조회 속도를 최적화할 수 있습니다. 특히 대용량 데이터베이스에서 인덱스는 성능에 중요한 영향을 미치므로, 인덱스 설정 여부를 항상 확인하는 것이 좋습니다.
이 글에서 다룬 내용은 MySQL을 기준으로 설명했습니다. 다른 데이터베이스 관리 시스템(DBMS)을 사용할 때는 SQL 문법이 약간 다를 수 있으니, 이 점을 염두에 두고 사용하세요.
https://www.youtube.com/watch?v=aL0XXc1yGPs&list=PLcXyemr8ZeoREWGhhZi5FZs6cvymjIBVe