파트 4-1. SELECT FROM 문

1. 파트 4 핵심 개념


  • SELECT문의 기본 구조는 ‘SELECT 열이름 FROM 테이블이름 WHERE 조건’
  • WHERE 절은 조회하는 결과에 특정한 조건을 줘서 원하는 데이터만 보고 싶을 때 사용
  • CREATE TABLE … SELECT 구문은 테이블을 복사해서 사용할 경우에 주로 사용
  • GROUP BY절은 지정된 열을 그룹으로 묶어주는 역할, 주로 집계 함수와 함께 사용
  • SQL문은 크게 DML, DDL, DCL로 분류
  • INSERT/UPDATE/DELETE문은 데이터의 입력/수정/삭제의 기능
  • MySQL Workbench 정렬 단축키 -> ctrl + b


2. SELECT 구문 형식


SELECT문은 다양한 옵션으로 인해서 복잡해 보이지만, 실제로 많이 사용되는 형태는 다음과 같다. 여기서 대괄호의 내용은 생략 가능하다. 하지만 만약 생략하지 않고 사용하는 경우 반드시 순서를 지켜줘야한다.

그림1

가장 자주 쓰이는 형식은 다음과 같다.

SELECT 열 이름
FROM 테이블이름
WHERE 조건


3. USE 구문


SELECT문을 사용하려면 먼저 사용할 데이터베이스를 지정해야 한다.

USE 데이터베이스이름;

예시
USE employees;

이렇게 지정해 놓은 후에는 USE문을 다시 사용하거나 다른 DB를 사용하겠다고 명시하지 않는 이상 모든 SQL문은 employees에서 수행된다. 또는 간단하게 Schemas 탭에서 사용하고자하는 데이터베이스를 더블클릭하면 진한 글자로 바뀌는데 USE를 사용한 것과 동일한 효과를 가진다.
만약 다른 데이터베이스가 지정된 상태에서 조회를 하게 된다면 Output 창에서 오류메시지가 뜨게 된다.


4. SELECT와 FROM

SELECT * FROM titles; -- titles 테이블 모든 열 조회
SELECT firt_name From employees; -- first_name 열만 조회
SELECT firt_name, last_name, gender From employees; -- 여러 개의 열 조회는 콤마(,)를 사용

-- 만약 데이터베이스를 선택하지 않은 경우
SELECT * FROM 데이터베이스이름.테이블이름;
SELECT * FROM employees.titles;

일반적으로 * 는 모든 것을 의미한다. 위의 코드에서 *가 사용된 곳은 열이름이 나올 곳의 위치이므로 titles의 모든 열을 의미한다. 결국 titles테이블에서 모든 열의 내용을 가져와라 라는 의미이다.
USE나 더블클릭으로 데이터베이스를 선택하지 않았다면 데이터베이스.테이블이름 형식으로 표현이 가능하다.

그림2

Output 상태창의 의미를 간단히 알아보자.

  • 초록색 아이콘 : 정상적으로 쿼리가 실행된 상태를 의미하고, 오류의 경우 빨간색 아이콘이 나타난다.
  • 1 : 실행한 쿼리의 순번을 나타낸다.
  • Action : 실행한 쿼리문이 나온다.
  • Messages : SELECT 문은 조회된 행의 개수가 나온다. 오류 발생 시에는 오류 번호 및 오류 메시지가 나온다.
  • Duration/Fetch : Duration은 SQL문이 실행되는데 걸린 시간(초), Fetch는 데이터를 테이블에서 가져오는데 걸린 시간(초)이다.


5. 실습


실습 1

데이터베이스 이름, 테이블 이름, 필드 이름이 정확히 기억나지 않거나 또는 각 이름의 철자가 확실하지 않을 때 찾아서 조회하는 방법을 실습하자. 지금 조회하고자 하는 내용이 employees 데이터베이스에 있는 employees 테이블의 first_name, gender 열이라고 가정하자.

그림3


실습 2 - 샘플데이터베이스 만들기

그림4

위와 같은 데이터베이스를 만들어보자.

그림5

varchar은 약간 동적할당의 개념과 비슷하다. char(10)의 경우 10자까지 입력할 때 내부적으로도 무조건 10자리가 잡힌다. 3글자만 입력해도 10자가 잡힌다는 것이다. 하지만 varchar(10)의 경우 10자까지 입력가능하지만 내부적으로는 입력한 갯수만큼만 잡힌다. 3글자만 입력하면 3글자만 잡히게 되는 것이다.



본 포스팅은 ‘이것이 MySQL이다’를 읽고 공부한 내용을 바탕으로 작성하였습니다.


© 2021. By Backtony