[DBMS] SQL 기본 문법 - SELECT 문 1

류재성's avatar
Aug 11, 2024
[DBMS] SQL 기본 문법 - SELECT 문 1
 
💡
SELECT 문은 테이블에서 데이터를 추춣는 기능을 한다. SELECT 는 기존의 데이터를 변경하지 않는다.
 

1. 데이터베이스 생성

 
DROP DATABASE IF EXISTS market_db; -- 만약 market_db가 존재하면 우선 삭제한다. CREATE DATABASE market_db; USE market_db; CREATE TABLE member -- 회원 테이블 ( mem_id CHAR(8) NOT NULL PRIMARY KEY, -- 사용자 아이디(PK) mem_name VARCHAR(10) NOT NULL, -- 이름 mem_number INT NOT NULL, -- 인원수 addr CHAR(2) NOT NULL, -- 지역(경기,서울,경남 식으로 2글자만입력) phone1 CHAR(3), -- 연락처의 국번(02, 031, 055 등) phone2 CHAR(8), -- 연락처의 나머지 전화번호(하이픈제외) height SMALLINT, -- 평균 키 debut_date DATE -- 데뷔 일자 ); CREATE TABLE buy -- 구매 테이블 ( num INT AUTO_INCREMENT NOT NULL PRIMARY KEY, -- 순번(PK) mem_id CHAR(8) NOT NULL, -- 아이디(FK) prod_name CHAR(6) NOT NULL, -- 제품이름 group_name CHAR(4) , -- 분류 price INT NOT NULL, -- 가격 amount SMALLINT NOT NULL, -- 수량 FOREIGN KEY (mem_id) REFERENCES member(mem_id) ); INSERT INTO member VALUES('TWC', '트와이스', 9, '서울', '02', '11111111', 167, '2015.10.19'); INSERT INTO member VALUES('BLK', '블랙핑크', 4, '경남', '055', '22222222', 163, '2016.08.08'); INSERT INTO member VALUES('WMN', '여자친구', 6, '경기', '031', '33333333', 166, '2015.01.15'); INSERT INTO member VALUES('OMY', '오마이걸', 7, '서울', NULL, NULL, 160, '2015.04.21'); INSERT INTO member VALUES('GRL', '소녀시대', 8, '서울', '02', '44444444', 168, '2007.08.02'); INSERT INTO member VALUES('ITZ', '잇지', 5, '경남', NULL, NULL, 167, '2019.02.12'); INSERT INTO member VALUES('RED', '레드벨벳', 4, '경북', '054', '55555555', 161, '2014.08.01'); INSERT INTO member VALUES('APN', '에이핑크', 6, '경기', '031', '77777777', 164, '2011.02.10'); INSERT INTO member VALUES('SPC', '우주소녀', 13, '서울', '02', '88888888', 162, '2016.02.25'); INSERT INTO member VALUES('MMU', '마마무', 4, '전남', '061', '99999999', 165, '2014.06.19'); INSERT INTO buy VALUES(NULL, 'BLK', '지갑', NULL, 30, 2); INSERT INTO buy VALUES(NULL, 'BLK', '맥북프로', '디지털', 1000, 1); INSERT INTO buy VALUES(NULL, 'APN', '아이폰', '디지털', 200, 1); INSERT INTO buy VALUES(NULL, 'MMU', '아이폰', '디지털', 200, 5); INSERT INTO buy VALUES(NULL, 'BLK', '청바지', '패션', 50, 3); INSERT INTO buy VALUES(NULL, 'MMU', '에어팟', '디지털', 80, 10); INSERT INTO buy VALUES(NULL, 'GRL', '혼공SQL', '서적', 15, 5); INSERT INTO buy VALUES(NULL, 'APN', '혼공SQL', '서적', 15, 2); INSERT INTO buy VALUES(NULL, 'APN', '청바지', '패션', 50, 1); INSERT INTO buy VALUES(NULL, 'MMU', '지갑', NULL, 30, 1); INSERT INTO buy VALUES(NULL, 'APN', '혼공SQL', '서적', 15, 1); INSERT INTO buy VALUES(NULL, 'MMU', '지갑', NULL, 30, 4); SELECT * FROM member; SELECT * FROM buy;
 
market_db 를 생성 후 테이블을 생성한다.

2. 기본 문법

 
💡
select *(혹은 컬럼명) from 테이블명;
 
SELECT * FROM member;
 
notion image
 
select mem_name , mem_id from member;
 
notion image
 
원하는 컬럼만 조회할 수 있다.
 

2. 별칭 정하기

💡
select 컬럼명 as 별칭 from 테이블명; as 는 생략 가능하다.
 
select addr as 주소, debut_date as "데뷔 일자", mem_name as 이름 from member;
 
as를 사용해 별칭을 만들어 조회할 수 있다. 띄어진 문자는 큰 따옴표를 사용해 별칭을 정한다.
 
notion image
 

3. where 조건 걸기

💡
select 컬럼명 from 테이블명 where 조건식;
 
select * from member where mem_name ='블랙핑크';
 
notion image
 
조건식과 일치하는 행만 조회가 된다.
 
select * from member where mem_number = 4;
 
notion image
 

4. where 절 관계 연산자, 논리 연산자

💡
관계 연산자는 > , < , ≤. ≥ = 등이고, 논리 연산자는 AND , OR 을 의미한다.
 

4.1 관계 연산자

select mem_id, mem_name from member where height <=162;
 
notion image
 

4.2 조건 연산자

select mem_name,height,mem_number from member where height >= 165 and mem_number > 6 ;
 
notion image
 

4.3 BETWEEN

 
select mem_name, height from member where height between 163 and 165; select mem_name, height from member where height >= 163 and height <= 165 ;
 
notion image
 
범위가 있는 값을 구하는 경우 관계 연산자, 조건 연산자를 써도 되지만 between ~ and 를 사용해 조회할 수 있다.
 

4.4 IN()

💡
IN() 문은 특정 컬럼의 값이 지정된 값 목록에 포함되는지 여부를 확인하기 위해 사용된다. IN()은 주로 where절과 함께 사용되며, 여러 조건을 간결하게 표현할 수 있는 방법이다.
 
select mem_name , addr from member where addr ='경기' or addr = '전남' or addr = '경남';
 
notion image
 
or 을 활용해 여러 조건을 검색한다.
 
select mem_name , addr from member where addr in('경기','전남','경남');
 
IN() 을 사용하면 간결하게 코드를 적을 수 있다.
 

4.5 like

💡
문자열에서 일부 글자를 검색하려면 like 를 사용한다. like 문에서는 %를 사용하며 무엇이든 허용한다는 의미이다. 언더바(_) 는 단어의 갯수를 지정한다.
 
 
 
select * from member where mem_name like '우%';
 
‘우%’ 는 ‘우’로 시작하는 데이터 조회를 의미한다.
 
notion image
 
💡
%우% 와 같이 키워드의 앞 뒤로 %를 넣으면 어떤 ‘우’ 가 포함된 모든 단어를 검색한다는 의미이다.
 
select * from member where mem_name like '__핑크';
 
notion image
 
핑크라는 키워드 앞에 언더바가 2개로 2개의 단어 뒤에 핑크가 있는 키워드만 검색한다.
Share article

{CODE-RYU};