본문 바로가기
SQL

-SQL 1주차-

by @kkkk_biiin 2023. 1. 16.
728x90

1. Query문: 데이터 베이스에 명령을 내리겠다는 것을 의미

2. show tables: tables의 목록을 보여준다

3. Select문

select * from users

select문은 위와 같은 형식으로 되어 있으며, users이라는 테이블에서 *(모든 필드)를 가져온다는 것을 의미한다. 엑셀과 비교해 봤을 때, 테이블은 하나의 시트를 의미하고 필드는 사용자가 지정한 칼럼을 의미한다고 볼 수 있다. 

 

따라서 만약 users라는 테이블에 name, id와 같은 것들이 있을 경우,

select name from users

위와 같은 형태로 나타낼 수 있다.

4. Where절

Where절은 Select문에 조건을 걸어주는 것을 말한다.

 

#useres에서 이름이 이**인 사람이면서 아이디가 'abc'인 사람 찾아줘
select * from users 
where name = '이**' and id = 'abc'

위와 같이 '='을 사용할 수 있고, !=(같지 않음), >=(이하), <=(이상)도 사용할 수 있으며, and와 or을 사용해서 조건을 추가할 수 있다.

 

#point_users에서 포인트가 10000과 20000 사이의 데이터만 추출
SELECT * FROM point_users
WHERE point BETWEEN 10000 and 20000

#checkins에서 week가 1이나 3인 데이터를 추출
SELECT * FROM checkins
WHERE week in (1,3)

또한 Between을 사용해서 범위를 지정해 줄 수 있으며, in (데이터1, 데이터2, .... 데이터n)을 사용해서 특정 데이터만 포함할 수도 있다.

 

# users에서 이메일이 a로 시작하고 중간에 @이가 들어가며, com으로 끝나는 데이터만 추출
SELECT * FROM users
WHERE email LIKE 'a%@%com'

마지막으로 Like를 활용해서 특정 문자열이 들어간 데이터만 추출할 수 있는데, %를 기준으로 % 앞에는 데이터의 첫 번째에 나와야 하고, %~% 사이에 있으면 데이터 사이 아무곳에나 존재하면 되며, % 뒤에 있는 것은 데이터는 맨 끝에 나와야 함.

5. 추가 기능

1) Limit: 개수 제한을 걸어주는 기능이며, python의 .head()와 같은 기능을 함.

select * from orders 
where payment_method = 'kakaopay'
limit 5;

 

2) Distinct: 중복을 제거해서 데이터를 추출해 줌.

#users 테이블에서 중복을 제거하고 name칼럼 데이터만 추출
SELECT DISTINCT(name) FROM users

 

3) Count: 데이터의 개수를 세 줌.

#orders의 데이터 개수(행의 개수)를 세줌
select count(*) from orders

#users에서 중복을 제거하고 name의 개수를 세줌
SELECT COUNT(DISTINCT(name)) FROM users
728x90

'SQL' 카테고리의 다른 글

-SQL 문법정리-  (0) 2023.01.20
-SQL 4주차-  (0) 2023.01.19
-SQL 3주차-  (0) 2023.01.18
-SQL 2주차-  (0) 2023.01.17