관계형 데이터베이스에서 데이터를 조회하는 데 사용되는 문법이 select 문입니다. select 문은 테이블의 필드나 레코드를 선택하여 출력할 수 있습니다. 이제 mssql select 사용 방법을 학생, 과목, 성적 3개 테이블을 사용하여 학습하겠습니다.
mssql select 사용 방법
mssql select 구문은 데이터베이스에서 데이터를 가져오는 데 사용되는 기본 SQL 구문입니다. 마이크로소프트의 mssql 도움말 페이지에서 아래와 같은 select 절의 구문을 자세하게 확인할 수 있습니다.
select 구문은 select 절, from 절, where 절, group by 절, having 절, order by 절 등으로 구분이 됩니다.
SELECT 절은 SELECT 문에서 반환할 데이터를 지정합니다. SELECT 절은 다음과 같은 구문을 사용합니다.
ALL 키워드는 SELECT 절에서 모든 행을 반환합니다. DISTINCT 키워드는 SELECT 절에서 중복 행을 제거합니다.
TOP ( expression ) 키워드는 SELECT 절에서 지정된 수의 행만 반환합니다.
PERCENT 키워드는 TOP ( expression ) 키워드와 함께 사용하여 백분율로 행 수를 지정합니다.
WITH TIES 키워드는 TOP ( expression ) 키워드와 함께 사용하여 동일한 순위의 행을 모두 반환합니다.
<select_list>는 SELECT 절에서 반환할 데이터를 지정하는 쉼표로 구분된 열 목록입니다. <select_list>는 다음과 같은 구문을 사용합니다.
* 키워드는 SELECT 절에서 모든 열을 반환합니다.
AS column_alias는 SELECT 절에서 열에 별명을 지정합니다.
column_alias = expression은 SELECT 절에서 열에 식을 할당합니다.
mssql 학습은 사실 별도의 교재가 필요하지 않을 정도록 마이크로소프트의 도움말이 정말 잘 되어 있습니다. 아래의 링크를 클릭하여 확인해보시기 바랍니다.
https://learn.microsoft.com/ko-kr/sql/t-sql/queries/select-clause-transact-sql?view=sql-server-ver16
mssql select 사용 방법, inner join
이제 mssql select 사용 방법을 학생, 과목, 성적 3개 테이블을 inner join 으로 조회하겠습니다.
SELECT
student.student_id,
student.student_name,
student.student_age,
subject.subject_name,
subject.subject_credit,
grade.grade
FROM
student
INNER JOIN
grade
ON
student.student_id = grade.student_id
INNER JOIN
subject
ON
grade.subject_id = subject.subject_id;
이 mssql select 사용 방법, inner join select 문의 결과는 다음과 같습니다.
이 select 사용 방법, inner join select 문의 쿼리는 다음과 같이 작동합니다.
FROM student 은 학생 테이블을 조회합니다.
INNER JOIN grade ON student.student_id = grade.student_id 는 학생 테이블과 성적 테이블을 student_id 컬럼을 기준으로 inner join 합니다.
INNER JOIN subject ON grade.subject_id = subject.subject_id 는 성적 테이블과 과목 테이블을 subject_id 컬럼을 기준으로 inner join 합니다.
위 쿼리에서 student_id 컬럼은 학생, 성적, 과목 테이블의 공통 컬럼입니다. 따라서 이 컬럼을 기준으로 inner join 을 하면 학생, 성적, 과목 테이블의 각 컬럼 값이 일치하는 행이 조회됩니다.
이번에는 grade >= 80 이상인 데이터를 조회하는 것으로 변경을 하려면, 아래와 같이 where 절을 추가하면 되며, 순서도 조정하기 위해서 order by 절도 추가를 합니다.
SELECT
student.student_id,
student.student_name,
student.student_age,
subject.subject_name,
subject.subject_credit,
grade.grade
FROM
student
INNER JOIN
grade
ON
student.student_id = grade.student_id
INNER JOIN
subject
ON
grade.subject_id = subject.subject_id
where grade >= 80
order by grade desc
where 절과 order by 절을 추가한 결과는 아래와 같습니다.
mssql select 사용 방법, 서브 쿼리
이제 mssql select 서브 쿼리는 하나의 sql 문 안에 포함되어 있는 또 다른 sql 문을 의미합니다. 서브 쿼리는 알려지지 않은 기준을 이용한 검색에 사용됩니다.
예를 들어, 다음 쿼리는 학생 테이블에서 가장 나이가 많은 학생의 이름을 반환합니다.
SELECT student_name
FROM student
WHERE student_age = (
SELECT MAX(student_age)
FROM student
);
결론
데이터베이스에서 데이터를 조회하는 mssql select 문의 기본 사항을 설명하였습니다. inner join, 서브 쿼리 등을 사용하면 원하는 데이터를 더욱 쉽게 조회할 수 있습니다. select 절을 사용하여 데이터베이스에서 데이터를 가져오는 방법을 이해하는 데 도움이 되었기를 바랍니다.
MSSQL 관련 참고
Microsoft SQL Server mssql 설치 링크, 설치 방법
트랜잭션, transaction, 데이터베이스 트랜잭션 예제 포함
mssql 테이블 만들기, mssql 데이터베이스 다이어그램