살구월드

MYSQL SELECT 쿼리

DB
2020. 6. 18. 14:12
잠깐, 리눅스, C 언어, Java, Python 등
각종 예제 검색하기

 

 

데이터베이스 관련 포스팅 목록

 

 

MYSQL SELECT문

안녕하세요 오늘은 MYSQL SELECT 쿼리문에 대하여 알아보겠습니다.

예제를 테스트 해보기 위해서는 실제 MYSQL을 설치하여야 합니다. 오늘 포스팅에서는 리눅스 환경에서 테스트를 진행할 것이기 때문에 위의 데이터베이스 관련 포스팅 목록에서 설치 과정을 확인하고 이 포스팅을 진행해주세요.

 

우선 select 문이란 이미 데이터베이스 테이블에 저장된 정보들을 전체 가져오거나 조건에 따라 특정 정보만 가져오는 질의를 말합니다.

 

만약 아래와 같은 학생들의 정보를 저장할 테이블과 데이터가 있다고 가정 해 봅시다.

 

 

테이블이름: Students

속성

속성명 타입
id INT PRIMARY KEY
name TEXT
score INT
class_id INT FOREIGN KEY

학생 데이터

3반의 김아무개 학생 
3반의 허아무개 학생
4반의 신아무개 학생


이때 3반의 학생들의 데이터만 조회하고 싶거나 전체 학생들을 조회하고 싶을때 사용하는 쿼리가 select 입니다.

자 그러면 이제 실제 테이블을 생성하고 select 예제를 실행해보겠습니다.

 

 

 

 

 

시험환경

Linux Ubuntu 16.04 LTS x64

MYSQL

 

시험 환경

 

 

Students 테이블 생성

우선 예제를 위해 사용할 Students 테이블을 생성하겠습니다. mysql 커맨드를 실행하여 아래 명령을 통해 테이블을 생성합니다. AUTO_INCREMENT 옵션은 값을 지정하지 않고 데이터가 추가될 때마다 1씩 자동 증가시키겠다는 옵션입니다.

 

CREATE TABLE students ( 
      id INT AUTO_INCREMENT PRIMARY KEY,
      name TEXT,
      score INT,
      class_id INT
);

 

복사 붙여넣기용

CREATE TABLE students ( id INT AUTO_INCREMENT PRIMARY KEY, name TEXT, score INT, class_id INT );

 

 

DESC 명령을 통해 테이블이 잘 생성되었는지 확인합니다.

desc students;

 

students 테이블 구조

 

 

 

예제 데이터 추가

예제 학생 3명의 데이터를 추가합니다.

 

INSERT INTO students(name, score, class_id) VALUES ("kim", 90, 3);
INSERT INTO students(name, score, class_id) VALUES ("heo", 30, 3);
INSERT INTO students(name, score, class_id) VALUES ("sin", 70, 4);

 

 

 

 

 

students 테이블의 전체 학생 질의문

students 테이블에 있는 전체 학생들의 데이터를 조회하기 위해서는 "*" 를 사용하여 select 질의문을 실행합니다.

아래의 명령을 실행해봅시다.

 

select * from students;

 

select 결과

 

 

위와 같이 테이블에 있는 전체 학생의 데이터가 출력되는 것을 알 수 있습니다.

자 그러면 3반의 학생들만 조회하고 싶다면 어떻게 할까요? 그렇다면 Where 조건문을 사용하면 됩니다.

 

 

 

3반의 학생만 조회(조건)

조건문은 쿼리의 제일 오른쪽 끝에 "where 속성명=값" 과 같은 형식으로 추가하여 실행합니다. 만약 3반의 학생만 조회하고 싶다면 3반이라는 속성명 "class_id"가 값이 "3" 인 것을 알 수있습니다. 따라서 아래의 명령을 실행하여 3반의 학생만 조회 해 보겠습니다.

 

select * from students where class_id=3;

 

3반의 학생

 

위와 같이 class_id의 값이 3인 경우의 조건문을 추가하여 select 쿼리를 실행하였습니다. 결과는 3반의 학생인 "kim", "heo" 학생의 데이터가 출력되는 것을 알 수 있었습니다.

 

지금까지는 students 테이블의 속성인 "id", "name", "score", "class_id" 가 모두 출력되고 있습니다. 하지만 굳이 모든 속성을 조회할 필요가 없는 경우도 있을 수 있습니다. 그런경우는 아래의 명령을 사용합니다.

 

 

필요한 속성 값만 조회

만약 students 테이블에서 특정 학생들의 이름만 조회하고 싶다면 select 문에서 "*" 가 아닌 특정 속성명을 명시하면 됩니다. 아래의 명령을 실행하여 결과를 확인 해 봅시다.

 

select name from students;

 

select 결과

 

결과 위와 같이 속성명 "name"만 조회하였을 경우 해당 내용만 출력되는 것을 알 수 있었습니다. 자 마지막으로 점수가 특정된 학생들의 데이터를 조회하고 싶을 경우 수식을 사용할 수 있습니다.

 

 

 

수식을 사용한 조건 조회

만약 students 테이블에서 점수가 60점 이상인 학생들의 정보만 조회하고 싶다면 아래와 같이 수식을 사용하여 조건을 실행할 수 있습니다.

select * from students where score >= 60;

 

select 결과


결과적으로 60점 이상인 학생 "kim", "sin" 두 데이터가 출력되는 것을 알 수 있었습니다.

 

 

 

특정 단어가 포함된 데이터 조회

마지막으로 students 테이블의 학생들 중에서 "kim"이 들어간 학생을 찾기 위해서는 아래와 같은 LIKE 조건을 사용합니다.

 

select * from students where name LIKE 'kim%';

 

kim 학생의 정보만 출력된 모습


위와 같이 "kim"이 포함된 학생 1명의 데이터가 출력되는 것을 알 수 있었습니다.

 

 

 

 

이외의 조건문

위 의 에제 외에도 만약 특정 이름의 학생을 조회하고 싶다면 where name="kim" 과 같은 조건을 사용할 수 있습니다.

 

 

다음 포스팅에서는 이미 저장되어있는 데이터의 값을 수정하는 쿼리에 대하여 알아보겠습니다.

잠깐, 리눅스, C 언어, Java, Python 등
각종 예제 검색하기

공유하기

facebook twitter kakaoTalk kakaostory naver band