오늘도 여전히 반복적인 학습을 위해 모의고사 1회차를 풀었다.
2주차 강의 완료에 이어 3주차 강의를 시작해 보려한다!!!!!!!!
엄청 많이 사용되는 것!!!!! 대신 무언가의 기준이 되는 것(key값)이 필요하다.
Join의 종류로는
여기서 A와 B는 각각의 테이블을 의미!
교집합을 의미
쿼리가 실행 되는 순서
select * from enrolleds e
inner join courses c
on e.course_id = c.course_id;
위 쿼리가 실행되는 순서: from → join → select
네이버 이메일을 사용하는 유저의 성씨별 주문건수 세어보기
위 쿼리가 실행되는 순서: from → join → where → group by → select
1.결제 수단 별 유저 포인트의 평균값 구해보기
(어느 결제수단이 가장 열심히 듣고 있나~)
2.결제하고 시작하지 않은 유저들을 성씨별로 세어보기
(어느 성이 가장 시작을 안하였는가~)
3.과목 별로 시작하지 않은 유저들을 세어보기
4.웹개발, 앱개발 종합반의 week 별 체크인 수를 세어볼까요? 보기 좋게 정리해보기!
5.위 문제에서, 8월 1일 이후에 구매한 고객들만 발라내어 보세요!
inner join 을 한번 더 작성해줘서 연결시켜줌!!!
NULL 부분은 한쪽은 존재하지만 한쪽은 존재하지 않는 것
EX)7월10일 ~ 7월19일에 가입한 고객 중,
포인트를 가진 고객의 숫자, 그리고 전체 숫자, 그리고 비율을 보고 싶어요!
(
select '7월' as month, c.title, c2.week, count(*) as cnt from checkins c2
inner join courses c on c2.course_id = c.course_id
inner join orders o on o.user_id = c2.user_id
where o.created_at < '2020-08-01'
group by c2.course_id, c2.week
order by c2.course_id, c2.week
)
union all
(
select '8월' as month, c.title, c2.week, count(*) as cnt from checkins c2
inner join courses c on c2.course_id = c.course_id
inner join orders o on o.user_id = c2.user_id
where o.created_at > '2020-08-01'
group by c2.course_id, c2.week
order by c2.course_id, c2.week
)
enrolled_id별 수강완료(done=1)한 강의 갯수를 세어보고, 완료한 강의 수가 많은 순서대로 정렬해보기. user_id도 같이 출력되어야 한다.
그렇다 복잡해진다
1,2 주차 내용을 기억하지 않고 그냥듣기만 하면 내가 스스로 학습하는것이 없고 그저 따라할뿐이다
무조건 복습,.....
얄코님의 강의 드디어 객체 지향 프로그램 클래스 쪽으로 들어선다....!!!!
1 클래스의 이해
public class Button {
char print;
int space;
String mode;
Button (char print, int space, String mode) {
this.print = print;
this.space = space;
this.mode = mode;
}
void place () {
System.out.printf(
"표시: %c, 공간: %s, 모드: %s%n",
print,space, mode
);
}
}
Button button1 = new Button('1', 1, "DARK");
Button buttonPlus = new Button('+', 3, "DARK");
Button buttonClear = new Button('C', 2, "DARK");
button1.place();
buttonPlus.place();
buttonClear.place();
실행시
💡 클래스 & 인스턴스 - 프랜차이즈 본사 & 매장
return
을 명시하지 않음 - 해당 클래스 타입의 인스턴스 반환new
연산자와 함께 사용되어 인스턴스를 반환.class
파일에서 확인 가능command
+ N
생성자
선택this
- 만들어질 인스턴스를 가리킴intro
메소드 브레이크포인트에서 this
항목 확인no
와 name
에 this
를 붙인 것과 같음this
의 필드를 가리킴this
를 붙여 구분this
를 빼고 실행해 볼 것intro
에서 주석 해제해 볼 것, this
를 사용하여 다시 해 볼 것YalcoChicken.java
public class YalcoChicken {
int no;
String name;
ChickenMenu[] menus;
YalcoChicken (int no, String name, ChickenMenu[] menus) {
this.no = no;
this.name = name;
this.menus = menus;
}
ChickenMenu orderMenu (String name) {
for (ChickenMenu menu : menus) {
if (menu.name.equals(name)) { // 🔴
return menu;
}
}
return null;
}
}
ChickenMenu.java
public class ChickenMenu {
String name;
int price;
String cook = "fry";
ChickenMenu (String name, int price) {
this.name = name;
this.price = price;
}
ChickenMenu (String name, int price, String cook) {
this.name = name;
this.price = price;
this.cook = cook;
}
}
위의 두가지 클래스를 생성하여 메인에 이용할 준비를 한다
Main.java
ChickenMenu[] menus = {
new ChickenMenu("후라이드", 10000),
new ChickenMenu("양념치킨", 12000),
new ChickenMenu("화덕구이", 15000, "bake")
};
YalcoChicken store1 = new YalcoChicken(3, "판교", menus);
ChickenMenu order1 = store1.orderMenu("양념치킨");
ChickenMenu order2 = store1.orderMenu("오븐구이");
코드를 작성하고 디버깅을 실행해보면
이렇게 나오는것을 확인할수있다.
어렵다 역시 어렵다 본격적인 개념에 들어가기 시작하니 강의가 문제가 아니라 내가 이해를 하는것이 가장중요해진다.
그렇기에 확실하게 집고 넘어가지 않으면 더이상의 진도는 의미가 없다고 생각되어 좀더 심화로 알아볼것이다.
어제부터 속을 썩이는데 어찌하는지 아직도 잘모르겠다.
좀 쉽다는데 이해가 잘안간다
오늘은 어제 HTML을 업로드 했더니 IntellJ에서 파일명이 다 붉은색으로 뜨길래
업로드를 시켜버렸다 눈에 거슬려서...
이제는 어떻게 작동하는지는 알겠는데
새로운 파일이 추가 되어도 잘 작동할까..?