SQL (업계에서는 "sequel" 및 "SQL"로 같은 의미로 발음함)은 코더가 관계형 데이터베이스에서 정보를 찾거나 변경하거나 처리할 수 있도록 하는 쿼리 언어입니다. SQL의 유용성과 배우기 쉬운 문법은 SQL이 백엔드 개발자와 데이터 과학자를 위한 표준 언어로 오랫동안 자리 잡은 이유입니다. 쿼리 언어는 PHP와 같은 스크립팅 언어와 함께 사용하여 동적 웹 페이지를 만들 수도 있습니다.
데이터 처리 또는 분석(예: 백엔드 프로그래밍
, 데이터 과학
, 사이버 보안 등
)과 관련이 있는 직업을 추구하는 경우 SQL을 배워야 합니다. 앞에서 언급했듯이 SQL은 관계형 데이터베이스와 상호 작용하는 데 사용되는 표준 쿼리 언어입니다. 이 기본 기술이 없으면 관련 업무를 수행하기도, 고용주를 찾기도 어렵습니다.
결국 오늘날의 직업 시장에서 데이터를 다루는 방법을 아는 것은 선택 사항이 아닙니다. 모든 산업 분야의 기업은 데이터 분석이 제공하는 통찰력에 점점 더 의존하고 있습니다. Technavio의 최근 보고서에 따르면 빅 데이터 시장은 2020년에서 2024년 사이에 1,425억 달러 규모로 성장할 것으로 예상됩니다. SQL을 아는 것은 꿈의 직업을 얻는 것과 잃는 것 사이의 차이를 만들 수 있습니다.
C (Create)
R (Read)
U (Update)
D (Delete)
ex)
Create = PUT with a new URI
or
Create = POST to a base URI returning a newly created URI
Read = GET
Update = PUT with an existing URI
Delete = DELETE
Means `Commands CRUD to the Database(DB)`
Means 'Select and import data' from the database
The Select statement consists of
1) 'which table' and 2) 'which column data to import'.
Means 'conditioning the data' to be imported into the Select query statement.
If the data you are looking for is a string, not a column or table,
use this to make the query aware of the data.
'웹개발 종합반'을 제외하고 orders 데이터 전부 보겠다
select * from orders
where course_title != '웹개발 종합반'
범위
2020년 7월 13일, 14일의 orders 데이터만 보겠다
select * from orders
where created_at between '2020-07-13' and '2020-07-15'
포함
1, 3주차 사람들의 'comment' 데이터만 보겠다
select * from checkins
where week in (1, 3);
문자열 규칙
daum email만 사용하는 유저를 보겠다
select * from users where email like '%daum.net';
where email like 'a%'
where email like '%a'
where email like '%co%'
where email like 'a%o'
데이터 갯수를 제한해 지정된 값만큼의 데이터만 보는 문법?
ex) 카카오페이로 지불한 주문 5개만 보여줘
select * from orders where payment_method = "kakaopay" limit 5;
테이블의 모든 데이터가 아닌 뚜렷하게 찾으려는 필드 데이터?가 있을때 쓰는 문법?
ex) orders 테이블의 결제수단만 바로 보여줘
select distinct(payment_method) from orders;
숫자 세는 문법
근데 나는 좀 다르게 쿼리문을 짰는데 결과값이 신기하게 똑같았음.
ex) orders 테이블에 데이터가 몇 개 들어있는지 보여줘
select count(*) from orders
답안
select COUNT('DATA') from orders
내코드
둘다 결과 값이 같다.
신기하네
ex) 스파르타 회원 분들의 성(family name)씨가 몇개인지 보여줘
SELECT COUNT(DISTINCT(name)) from users
혼자서 고민하다가 괄호 여닫으면서 찾아냄.
고민의 흔적들
계속 퀴즈~
Q1) 성이 남씨인 유저의 이메일만 추출하기
내가 찾아낸 답
select DISTINCT(email) from users
WHERE name = "남**"
정답
select email from users
where name LIKE "남**"
결과값은 동일
Q2) Gmail을 사용하는 2020/07/12~13에 가입한 유저를 추출하기
내가 찾아낸 답 = 정답
SELECT * FROM users where created_at BETWEEN "2020-07-12" and "2020-07-14" and email LIKE '%gmail.com'
Q3) Gmail을 사용하는 2020/07/12~13에 가입한 유저의 수를 세기
내가 찾아낸 답 = 정답
SELECT COUNT(*)from users where created_at BETWEEN "2020-07-12" and "2020-07-14" and email LIKE '%gmail.com'
count()안에 * 써야하는거 까먹고 해맸다
Q) naver 이메일을 사용하면서, 웹개발 종합반을 신청했고 결제는 kakaopay로 이뤄진 주문데이터 추출하기
내가 찾아낸 답 = 정답
SELECT * FROM orders WHERE email like '%naver.com' and course_title = '웹개발 종합반' and payment_method = 'kakaopay'
이번 SQL은 '웹개발 종합반' 때와는 다르게 강의를 먼저 보는게 아니라 자료의 텍스트를 보면서 시간을 많이 가져봤다.
결론만 말하면 진도는 조금 느려도 문제를 생각 할 시간을 여유있게 가질 수 있어서 응용 문제가 생각보다 어렵지 않았다.
앞으로도 이런 방식으로 계속 해야겠다.