2022. 6. 5. 12:11ㆍSQL
SELECT~FROM~WHERE
가장 보편적이며 기본적인
형태로 SELECT~FROM~WHERE가
한 구문으로 사용된다. SELECT의 의미
그대로 구축되어 있는 데이터베이스에서
데이터 테이블을 가져와 조회하는 것이다.
즉, '읽기' 기능이지 수정/삭제 기능이 아니다.
SELECT문 예제 실습
MySQL Workbench를 실행하고
아래 파일을 열어주면 사진에 보이는
DB를 생성할 수 있다. (File-Open SQL Script)
(일일이 입력해도 OK. 시간 단축을 위해 파일 업로드)
파일 출처 : 한빛 미디어 혼자 SQL 카페 자료실
생성된 SQL문을 잠시 살펴보자면,
DROP DATABASE IF EXISTS
DROP DATABASE : DB를 지워라,
IF EXISTS : 만약 존재한다면,
뒤에 있는 이름을 가진 DB가.
▷ ~DB가 있다면 지우고,
없으면 그냥 넘어가라.
라는 뜻으로 저번 시간에 오류 발생 시
대처했던 것과 동일한 명령어이다.
DB가 이미 존재하는데 또 만들면
오류가 발생하기 때문에 필요한 작업이다.
해당 작업을 한 후
CREATE DATABASE ~~;
새로 DB를 생성해주고 시작하면 된다.
USE는 뒤에 붙은 걸 사용하겠다고
선언하는 명령어라고 생각하면 된다.
USE ~~;
CREATE TABLE AAA;
CREATE TABLE 역시 위에서
CREATE DATABASE 때와 마찬가지로
테이블을 만들겠다는 문법이다.
CHAR와 VARCHAR의 차이를
포함하여 다른 세세한 문법들은
이후에 학습할 예정...
USE
USE 데이터베이스_이름;
SELECT문을 실행하기 전에 먼저 사용할
데이터베이스를 지정 또는 변경 하는 작업이다.
참고로 MySQL Workbench를 재시작하거나
쿼리 창을 새로 열면 다시 USE를 실행해야 한다.
USE같은 것들을 예약어, 뒤에 '데·베 이름'
같은 건 사용자 정의어라고 한다.
USE문 예제 실습
위에서 앞으로 예제 풀이할 때
활용할 것이라고 언급한 DB 사진이다.
이걸 기준으로 USE를 활용한
쿼리문을 작성하는 연습이다.
USE market_db;
SELECT * FROM member WHERE men_name = '블랙핑크';
현재 자료는 10명뿐이라 그냥
SELECT * FROM member 까지만 해도
무리 없지만 자료가 10만, 100만개가
넘어간다고 가정하면 조건문(WHERE)을
붙여주는 것이 용이할 것이다.
테이블 경로 추가
USE market_db;
SELECT * FROM market_db.member WHERE men_name = '블랙핑크';
만약 다른 DB에서 member 테이블을
불러오기 위해 경로를 같이 적어줘야 할
경우에는 이와 같이 추가해 줄 수 있다.
특정 열만 가져오기
USE market_db;
SELECT addr, height, debut_date
FROM member
WHERE men_name = '블랙핑크';
*(모두) 가져오기 대신 열 이름을
넣어 지정해주면 되며 순서는
중요하지 않다.
입력한 순서대로 출력될 뿐.
열 이름 바꿔 보기
USE market_db;
SELECT height 키, debut_date "데뷔 일자", addr 주소
FROM member ;
그냥 테이블 내 열 이름 옆에
넣어주고 싶은 이름을 입력하면
되는데 띄어쓰기가 포함되어 있을
경우 "큰 따옴표"로 묶어준다.
실제 열 이름이 아니라 그냥 예쁘게
보고 싶을 때 씌우는 껍데기로 이해하기.
실제 열 이름은 여전히 height, … addr이다.
비교 연산자
결과로 참(1) 또는 거짓(0)을
반환하는 연산자로
=,<,<=,>,>=<,<>,!= 가 있다.
의미는 우리가 수학에서 배우는
부등호와 의미가 동일하고,
<>와 !=는 같은 의미의 연산자이다.
참고로 !=는 ≠라는 뜻이다.
관계 연산자
결과를 참(1) 또는 거짓(0)으로
반환하는 연산자로 조건들을 조합하여
복합 조건을 나타낼 수 있다.
대부분 뜻이 직관적이라 그냥 영어나
수학에서 쓰이는 것과 동일한 의미라고
이해하면 된다. 사전적의미보단 예시 하나
보는 게 이해가 훨씬 빠르나 혹시 몰라
간단하게만 적어 놓는다.
AND | 복수의 조건을 동시에 만족 시키게 하고 싶을 때 사용. |
OR | 복수의 조건 중 어느 하나만 만족 시키게 하고 싶을 때 사용. |
BETWEEN | AND 조건문이 동일한 열에 적용될 때 활용. |
IN | OR를 여러번 쓰기 위해 범위를 지정해줄 때 사용. |
LIKE | %와 _를 사용할 때 =와 비슷한 의미로 사용됨. |
% | 한글, 영어, 문자 상관없고, 한 글자, 두 글자, 다섯 글자 상관없이 들어갈 수 있기 때문에 글자수를 정확히 모를 때 사용한다. |
_ | 언더바 하나 당 한글자이기 때문에 글자수를 알 때 사용한다. |
비교 연산자와 관계 연산자를
같이 쓴 간단한 예문
# AND 활용
# 키가 163이상, 165이하인 멤버들의 이름과 키를 출력
SELECT men_name, height
FROM member
WHERE height >= 163 AND height <= 165;
# 위 SQL문을 BETWEEN을 활용해 다시 쓰기
SELECT men_name, height
FROM member
WHERE height BETWEEN 163 AND 165;
# OR 활용
# 키가 165이상 이거나 멤버 수가 6명 초과인 멤버 이름과 키를 출력
SELECT men_name, height
FROM member
WHERE height >= 165 OR mem_number > 6;
# OR 복수 사용
SELECT men_name, addr
FROM member
WHERE addr = '경기' OR addr = '전남' OR addr = '경남';
# OR 복수문을 WHERE IN 으로 활용
# 멤버의 거주지가 '경기' 이거나 '전남' 이거나 '경남'인 멤버 이름과 주소
SELECT men_name, height
FROM member
WHERE addr IN('경기', '전남', '경남');
# 멤버 이름이 맨 앞에 '우'가 들어가는 멤버 이름 조회 (여러글자 모를 때 - %)
# LIKE 대신 = 사용하면 안됨★
SELECT *
FROM member
WHERE men_name LIKE '우%';
# 글자 수는 알고 있을 때 언더바_ 사용
SELECT *
FROM member
WHERE men_name LIKE '__핑크';
The End.
'SQL' 카테고리의 다른 글
[SQL 독학] 데이터 변경을 위한 SQL문(INSERT, UPDATE, DELETE) (0) | 2022.06.06 |
---|---|
[SQL 독학] SQL SELECT 절 형식(ORDER BY절, GROUP BY절) (0) | 2022.06.05 |
[SQL 독학] MySQL 데이터베이스 개체(인덱스, 뷰, 스토어드 프로시저) (0) | 2022.06.02 |
[SQL 독학] 데이터베이스 만들기 (0) | 2022.06.02 |
[SQL 독학] 데이터베이스 모델링 (0) | 2022.06.02 |