일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
- 자바
- dynamic programming
- Binary Search
- database
- 코테
- 파이썬
- Binary Tree
- 코딩테스트
- Counting
- Tree
- Matrix
- Number Theory
- 구현
- Stack
- SQL
- hash table
- Method
- simulation
- Math
- greedy
- Data Structure
- geometry
- implement
- two pointers
- sorting
- array
- bit manipulation
- string
- Class
- java
- Today
- Total
목록SQL (39)
코린이의 소소한 공부노트
[예시에 쓰이는 테이블] # 2학년 학생들의 한 달 독서량 실태를 보고 # 독서량에 따른 별명을 붙여주려고 한다. select hakbeon, case when book
1. Input 1) Table: Followers (pk: (user_id, follower_id)) 2. Output 1) 각 유저별로 팔로워 수를 출력 - user_id 오름차순으로 출력한다. 3. Example 4. Code 1) 첫 코드(2023/03/29) select user_id, count(follower_id) as followers_count from Followers group by user_id order by user_id;
1. Input 1) Table: Users (pk: account) 2) Table: Transactions (pk: trans_id) 2. Output 1) 모든 거래가 끝난 후 계좌 잔액이 만원 초과인 사람의 이름과 잔액을 출력 - 모든 계좌는 0원부터 시작한다. - 출력 순서는 상관없다. 3. Example 4. Code 1) 첫 코드(2023/03/29) select name, balance from Users u, ( select account, sum(amount) as balance from Transactions group by account ) t where u.account=t.account and balance>10000;
[예시에 쓰이는 테이블] # 1학년 4반에 전학생이 왔다. # 전학생은 가장 뒷번호를 쓰게 된다. # 전 학교에서의 성적을 보니 국영수 모두 B등급이었다. # 그 외의 정보는 차차 물어보기로 했다. # 두 테이블에 전학생의 정보 추가 insert into student_grade values (10421, 'B', 'B', 'B'); # 칼럼명 생략 insert into student_info (grade, ban, hakbeon) values (1, 4, 10421); # 칼럼명 명시 # 전학생의 데이터 확인 select * from student_grade g, student_info i where g.hakbeon=i.hakbeon and g.hakbeon=10421; # 결과 hakbeonKore..
[예시에 사용한 테이블] # 수학 성적이 A인 학생들의 수를 알려줘 select count(*) from student_grade where Math='A'; # 결과 count(*) 61 # 몇명의 학생들이 9명의 카카오 프렌즈 중 누굴 좋아하는지 궁금한데 # 이렇게 쓰면 되는건가? select count(friends) from student_info; # 결과 count(friends) 300 # 전교생의 명수가 나와버렸네..? [COUNT] 1. count(칼럼명) as 별명 형태로 쓴다. - 별명은 필요할 때 쓴다. 2. 해당 칼럼에 있는 값이 같은 행의 개수를 센다. - 이때 칼럼값의 중복 여부와 관계없이 센다. 그렇기 때문에 2번째 쿼리의 결과가 총 전교생 수인 300으로 나온 것이다. - ..
1. Input 1) Table: Patients (pk: patient_id) 2. Output 1) Type 1 Diabetes인 환자의 모든 정보 출력하기 - Type 1 Diabetes는 항상 'DIAB1'로 시작한다. 3. Example 4. Code 1) 첫 코드(2023/03/19) select * from Patients where (conditions like 'DIAB1%') or (conditions like '% DIAB1%');
1. Input 1) Table: Users (pk: id) 2) Table: Rides (pk: id) 2. Output 1) 각 유저들의 이름과 여행한 총 거리를 담은 테이블을 반환 - 총 여행 거리를 내림차순으로 정렬한다. - 총 여행 거리가 같다면, 이름을 오름차순으로 정렬한다. 3. Example 4. Code 1) 첫 코드(2023/03/19) select name, ifnull(d,0) as travelled_distance from Users left outer join ( select user_id, sum(distance) d from Rides group by user_id ) r on id = r.user_id order by d desc, name asc;
[예시에 사용한 테이블] # student_info 테이블에서 1학년 4반 학생을 찾은 다음 # 좋아하는 색깔을 오름차순으로 정렬한 다음 # 3명만 보여줘 select * from student_info where (grade=1 and ban=4) order by colors limit 3; # 결과 gradebanhakbeonfriendsidolscolors 1410402FrodoIVEbrown 1410403JayGLESSERAFIMbrown 1410411ConNMIXXbrown [ORDER BY] 1. 쿼리 마지막 부분에 order by 칼럼명 형태로 쓰인다. - 칼럼명을 기준으로 정렬된 결과를 볼 수 있다. 2. 오름차순으로 정렬하고 싶다면 칼럼명 옆에 acs를 쓰거나 아무것도 쓰지 않으면 된다...
1. Input 1) Table: Cinema 2. Output 1) id가 홀수이고 description이 'boring'이 아닌 것을 rating의 내림차순으로 정렬된 결과를 반환 - 모든 칼럼을 출력한다. 3. Example 4. Code 1) 첫 코드(2023/03/17) select * from Cinema where (id%2!=0 and description!='boring') order by rating desc