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 |