💡 TIPS
MySQL은관계형 데이터베이스 시스템(RDBMS)
중 하나로,오픈소스
를 기반으로 합니다.서버 사이드 기반
으로 만들어져 GUI 기능을 내장하지 않고 있습니다. Oracle에서 만든 Workbrench라는 GUI 프로그램을 설치한 후 MySQL 서버를 연동해서 사용할 수 있습니다.
SELECT
문은 기본적으로 데이터를 검색하는 기능으로 CRUD중에서 READ에 해당하는 기능을 수행합니다.-- *는 모든 데이터를 검색하겠다는 의미입니다.
SELECT * FROM table_name;
WHERE
: SQL의 조건문으로 데이터의 검색 조건을 설정할 수 있습니다.-- where 이후에는 조건을 의미합니다. -- id가 1인 모든 데이터를 출력한다는 의미입니다. SELECT * FROM table_name WHERE id = 1;
비교연산자(<,<=,>,>=,=,!=)
: WHERE문 내부에서 조건식을 결정할 때 자주 사용하는 비교연산자입니다.-- id가 10초과인 데이터를 모두 출력합니다. SELECT * FROM table_name WHERE id > 10;
💡 TIPS
>
초과,<
미만,>=
이상,<=
이하,=
같음,!=
같지않음
복합 조건 연산자(&&,||,!)
: 여러가지의 조건을 함께 사용할 때, 검색조건의 우선순위 또는 복합적인 검색조건 생성 등의 기능을 합니다.-- id가 10초과이면서 15가 아닌 데이터를 모두 출력합니다. SELECT * FROM table_name WHERE id > 10 AND id != 15;
💡 TIPS
AND, &&
: 모든 조건을 만족
OR, ||
: 조건 중 하나 이상을 만족
NOT, !
: 해당 조건이 아님
NOT
>AND
>OR
순으로 실행됩니다.()
를 통해 먼저 실행하고자 하는 조건문을 지정할 수 있습니다.
BETWEEN A AND B
: 특정 범위(A,B) 안에 포함되는 값을 나타냅니다.-- id가 10~20 사이에 있는 데이터를 모두 출력합니다. SELECT * FROM table_name WHERE id BETWEEN 10 AND 20;
💡 TIPS
BETWEEN A AND B
는 A와 B를 포함한 사이 값을 지칭합니다. 또한 A, B 자리에는 숫자 이외에도 문자열(➡️ A, B에 해당하는 튜플 사이 모든 튜플을 검색), datetime 등이 올 수 있습니다.
IN, NOT IN
: 특정 데이터 모음에 포함된 값을 나타냅니다.-- friend 값이 (ryan, apeach, muzi, neo)에 포함되는 데이터를 모두 출력합니다. SELECT * FROM table_name WHERE friend IN('ryan', 'apeach', 'muzi', 'neo');
💡 TIPS
NOT IN
은 IN의 반대로, 튜플에 포함되지 않는 값을 나타냅니다. 또한, IN(SELECT statement)의 형태로 서브쿼리를 넣어 사용할 수도 있습니다.
LIKE
: 특정 문자가 포함된 문자열을 찾고 싶을 때 사용하는 명령입니다. 와일드카드 표시를 통해 특정 문자열이 포함된 자료를 검색할 수 있습니다.-- title 속성이 harry로 시작하는 모든 데이터를 검색합니다. SELECT * FROM table_name WHERE title LIKE 'harry%'; -- title 속성이 a를 포함한 최소 3글자 이상의 문자열이고 -- a의 앞뒤로 문자열이 있을 수 있습니다. SELECT * FROM table_name WHERE title LIKE '%a__%';
💡 TIPS 와일드 카드라고 불리는
%
는 모든 여러개의 문자열 또는 하나의 문자에 대응됩니다. 또한,_
는 글자 1개의 문자에 대응하며 1개의 자리를 차지하는 문자가 존재한다로 이해하면 됩니다.
이미지 출처 : w3school
이 밖에도 위와 같이 다양한 와일드카드가 존재합니다.
ORDER BY
: 데이터를 검색할 때 정렬하여 결과를 출력하는 명령어입니다.-- 특정 테이블 내에서 age필드에 대해 내림차순으로 정렬해 모든 데이터를 출력합니다. SELECT * FROM table_name WHERE [where caluses] ORDER BY age DESC; -- Customer 테이블에서 Country 필드를 기준으로 오름차순 정렬을 하고, -- 정렬된 상태에서 CustomerName 필드를 기준으로 내림차순 정렬을 하여 결과를 출력합니다. SELECT * FROM Customers ORDER BY Country ASC, CustomerName DESC;
💡 TIPS
DESC
는 내림차순 옵션을 준다는 의미이며, 오름차순은ASC
으로 표기합니다. Default option은 오름차순입니다. 또한, 정렬 기준을 여러개의 필드로 줄때에는 앞에 오는 순서대로 정렬 우선순위를 가집니다.
LIMIT
: 테이블에서 출력하고자 하는 데이터의 개수를 제한하는 명령어입니다.-- Customers 테이블에서 Country가 Germany인 데이터를 3개만 가져옵니다. SELECT * FROM Customers WHERE Country='Germany' LIMIT 3; -- 2번째 데이터부터 5개를 가져오기 SELECT * FROM book LIMIT 1, 5;
💡 TIPS 관리할 데이터가 매우 많은 경우, 데이터의 일부만 보고 싶을 때 사용하면 유용합니다. 처음을 기준으로 LIMIT 만큼 데이터를 출력합니다. 만약 숫자를 연속으로 입력하면 첫 번째 숫자가 가리키는 인덱스부터 두 번째 숫자만큼의 길이의 데이터를 출력한다는 의미입니다.