SELECT - FROM 구문은 우리가 구축한 DB의 TABLE에서 데이터를 불러올 수 있는 구문입니다. 일반적으로 다음과 같이 씁니다.
SELECT "컬럼1","컬럼2" FROM "테이블명";
Ex1) sample1이라는 테이블에서 모든 컬럼(열) 데이터 가져오기
-> SELECT * FROM sample1;
Ex2) sample1이라는 테이블에서 a, b 컬럼만 가져오기
-> SELECT a, b FROM sample1;
mySQL에서 제공한 Sample DB를 이용해 직접 해보겠습니다.
Sample DB 설정 방법은 다음 링크를 참고하세요(https://m-datastudy.tistory.com/5)
1. 테이블 목록 확인하기. show tables;
SELECT 구문을 사용하기 위해서는 먼저 DB에 어떤 테이블 들이 있는지 확인할 필요가 있습니다.
show tables; 명령어를 통해 간단하게 확인 할 수 있습니다. 저희는 customers 테이블을 사용해보겠습니다.
2. 테이블 구성 확인하기. desc tables;
SELECT 구문으로 컬럼을 가져오기 위해서는 테이블 내에 어떤 컬럼이 있는지 확인해봐야합니다.
desc "테이블명"; 을 통해서 모든 테이블을 각각 확인해 볼 수 있습니다. 위 사진은 customers테이블의 컬럼과 데이터 타입을 보여줍니다.
Type은 컴퓨터가 어떤 데이터를 저장 할 수 있는지 보여줍니다. 예를 들어 int(11)은 숫자 데이터를 11byte만큼 저장 할 수 있다는 뜻입니다. varchar(50)은 문자 데이터를 50byte만큼 저장 할 수 있다는 뜻입니다.
customerName과 city, country가 눈에 띄입니다. 한번 불러와 보겠습니다.
Ex1) SELECT customerName, city, country FROM customers;
컬럼명은 꼭 순서대로 불러와야 하는 것이 아닙니다. city와 country를 앞에 불러올 수 도 있습니다.
Ex2) SELECT city, country, customerName FROM customers;
즉 SELECT 다음에 오는 컬럼명은 사용자가 원하는 순서대로 붙히면 됩니다.
3. 목록 정렬하기. ORDER BY 구문.
테이블을 불러와도 이름이 정렬되어있지 않아 보기가 힘듭니다. 이 때는 ORDER BY를 사용할 수 있습니다. ORDER BY에는 asc와 desc 두가지 방식이 있습니다. asc(Ascend의 약자)는 오름차순, desc(Descend의 약자)는 내림차순입니다.
그런데 desc는 아까 테이블의 구성요소를 확인하기 위해 썼습니다. 두가지 desc는 서로 다른 단어의 약자입니다.
이는 테이블의 구성요소를 확인하기 위해 사용하는 desc 명령어가 엄밀히 따지자면 SQL 명령어가 아니기 때문에 약자가 겹치게 되었습니다.
다른 SQL 프로그램에서는 desc(Describe의 약자)가 아닌 str(Structure의 약자) 일 수도 있습니다.
ORDER BY는 일반적으로 이렇게 사용합니다.
SELECT "컬럼1", "컬럼2" FROM "테이블명" ORDER BY "컬럼명";
Ex1) SELECT * FROM table1 ORDER BY a asc;
Ex2) SELECT a, b FROM table1 ORDER BY b desc;
직접 해보겠습니다.
Ex3) SELECT customerName FROM customers ORDER BY customerName;
+ (추가) 별명을 지어주는 AS '이름'
-> SELECT customerName AS name FROM customers;
위와 같은 방식으로 컬럼이름을 일시적으로 바꿀 수 있습니다. 구문을 작성할 때에만 이용되고 테이블 자체의 이름이 바뀌는 것이 아닙니다.
그러나 이 AS 구를 사용할 때에는 구문이 처리되는 순서를 이해할 필요가 있습니다.
구문은 일반적으로 WHERE 구가 가장 먼저, 그 다음 SELECT, 마지막에 ORDER BY 구가 처리되는 형식입니다.
WHERE -> SELECT -> ORDER BY
우리는 AS 구를 SELECT 구에서 사용하여 별명을 설정합니다. 따라서 ORDER BY를 처리할 때 별명을 사용할 수 있습니다. 그러나 WHERE 구에서는 사용할 수 없습니다. WHERE 구가 처리될 시점에 아직 별명이 설정되지 않았기 때문입니다. 이 점을 유의해야 합니다.
SELECT 구문은 SQL에서 가장 대표적인 구문인 만큼 다른 구문과 함께 사용할 수 있습니다. 다음 게시물에서는 그것을 알아볼 것입니다.
'SQL > mySQL' 카테고리의 다른 글
[mySQL] substring 함수, 그 외의 함수. (0) | 2020.02.05 |
---|---|
[mySQL] 집계함수: COUNT, SUM, AVG, GROUP BY (0) | 2020.02.04 |
[mySQL] SELECT 구문의 확장. WHERE . (0) | 2020.01.17 |
[mySQL] 학습용 DB구축하기 (0) | 2019.12.04 |
[mySQL] Windows 10 mySQL server 설치 (0) | 2019.12.04 |