스택여러분들 한번씩은 다 그런 경험이 있을 것이다. 다른 사람이랑 장을 보건, 혼자서 장을 보건 집에 오면서 먹을 간식을 하나 사게 되는데, 계산을 마치고 간식을 먹으려고 봤더니 에엥? 간식이 장바구니 맨 밑에 들어가서 안보여요! 장바구니가 일종의 스택 역할을 해서 그런거다. 예? 그게 무슨 말이죠? 스택은 먼저 들어간 게 나중에 나온다. 그 간식을 맨 처음으로 장바구니에 넣고 다른 물건들을 넣었다면, 먼저 들어간 간식이 다른 물건에 묻히게 된다. 그렇다고 이동중에 장바구니를 들어낼 수는 없고… 씁. 이럴때는 간식을 따로 빼두자. 스택을 만들어보자-상자 만들기스택은 장바구니, 혹은 상자, 혹은 부페 접시(그 부페가면 접시 쌓여있는)다. 그리고 여기서는 상자를 만들고, 상자 안에 물건을 적재하고, 꺼내고 ..
제미나이의 도움을 받아... 일부 블록을 업데이트했음. py파일에 업데이트가 반영될지는 모르겠지만. 공통 업데이트여러분 Jupyter에서 마크다운 쓸 수 있는거 아셨어요? 주피터에서 코드, 마크다운, raw text(VScode에서는 안됨) 다 가능합니다. 그래서 이런식으로 설명이 필요한 블록 위에 마크다운으로 설명 달아놨음. searcher는 검색 결과 읽는법까지 달아놨음...Cutter, Findersearcher에는 해당 업데이트가 적용되지 않았음. OS 선택지에 맥 추가본인쟝 아이폰 아이패드까지 쓰고 있지만 유일하게 안써본게 맥북임. (아이맥은 고딩떄 써봤음) 그래서 전에 코딩하면서도 리눅스 아니면 다른 OS로 선택지가 나뉘었었는데, 그 다른 OS에 사실상 맥이 포함이었습니다. 근데 저대로 하면 ..
참 SQL에 별의별거 다 있다... 그죠? 트리를 아십니까? 의사결정이건 이진탐색이건 이 트리라는 건 시작 레벨과 끝 레벨이 있고 레벨들에 노드가 있고 그 노드끼리 연결이 되어 있는 뭐 그런건데, DB를 이런 식으로 계층형으로 탐색할 수 있다는 얘기.순방향 탐색select LEVEL, ENAME 이름, EMPNO 사원, MGR 관리자 from SCOTT.EMP start with MGR IS NULL connect by prior EMPNO=MGR;select LEVEL, ENAME 이름, EMPNO 사원, MGR 관리자 from SCOTT.EMP start with MGR IS NULL connect by MGR = prior EMPNO;connect by 뒤에가 좀 다르지만 두 쿼리가 같은 의미다. ..
Schema라고 쓰고 스키마라고 읽는데, '계획', '도식', 또는 '구조'라고 한다. 근데 여기 카테고리가 뭐예요? 그죠 코딩 관련이야... 우리가 뭐 인지공학에서 뭐라고 쓰는지 찾다가 들어오는거 아니잖어요? 다들 SQL 하다가 오셨잖아요? 혹시 전자인 분들은 뒤로가기를 눌러주시고... 데이터베이스에서 스키마는 자료의 구조, 자료의 표현 방법, 자료 간의 관계를 형식 언어로 정의한 구조를 의미한다. 이렇게 얘기하면 뭔 소린지 확 와닿지 않는 분도 계시겠지만… 일단 나부터. 근데 우리 테이블 만들 때 보면 얘는 PK고 VARCHAR(n)고 뭐 이런거 정하죠? 그리고 뭐 체크해서 값 받고 그런거 있잖음. 그게 스키마다. 이 테이블에서는 이 칼럼이 PK고 문자형(VARCHAR)이다, 숫자형(NUMBER)이..
말 그대로다. select문에도 순서가 있다. 이거 그리고 SQLD에 나온다.select * from (table1) where (condition1) group by (column1) having (condition2) order by (column1);여기 select문이 하나 있다. 엥 근데 무슨 순서를 말씀하시는건가요? 이 구문을 쳤을 때 SQL이 저 구문을 어디서부터 실행하느냐다. 일단 순서는 from-where-group by-having-select-order by이다. 어디서-뭘 1-묶어-뭘 2-갖고와-정렬해 순서. 이게 근데 왜 중요한가요? 여러분 알고 계셨습니까? 집계함수는 where에서 쓸 수 없다. 왜죠? 아직 안 묶었잖아요. 그리고 애초에 where에서는 행단위로 필터링하기때문에 ..
SQLD에서 이론파트 내는 것 중에서 꽤 자주 보이는게 식별자이다. 말 그대로 어떤 대상(개체, 정보 등)을 고유하게 구분하고 식별하는 데 사용되는 이름이나 기호를 일컫는다. 이놈 이름 짓는게 내 포켓몬 작명하는것만큼 어렵다. (김부추가 막 지은 이름같지만 아님) 제육쌈밥이 막 지은 이름이 아니라고요? 식별자의 분류법일단 여기에 네 가지의 분류 기준이 나올건데, 그래서 분류 카테고리가 총 8개가 나온다. 근데 여기서 미리 말씀드리자면 어떤 식별자가 총 8개 카테고리 중 하나에'만' 속하는 게 아니라 여기서는 이거, 여기서는 이거 이런 식으로 4개 카테고리에 각각 속하는 분류가 있다. 대표성에 따른 분류-주식별자 vs 보조식별자주식별자와 보조식별자는 엔터티 안에 있는 각 인스턴스들을 구별할 수 있는가에 따..
셋 다 그룹바이랑 같이 쓰는건데, 조금 다르다.GROUP BYselect MONTH_ID, COUNT(MONTH_ID) from AV.SALES_FACT group by MONTH_ID;그 엑셀에 있는 그룹바이 함수 아시죠? 걔랑 같은거다. 특정 그룹으로 묶어서 보여줄 수 있는 건데, 친구 중에 해빙, 롤업, 큐브, 그리고 그루핑 셋이 있는 것. 해빙은 그룹바이랑 같이 묶어서 어떤 조건으로 필터링할 때 쓰는데... where로 쓰면 안되냐고? select문 실행 순서때문에 원하는 결과가 안 나올 수도 있다. where은 그룹바이로 묶기 '전에' 필터링하는거고, having은 그룹바이로 묶고 '나서' 필터링하는거라고 보면 된다. 예를 들어서 지점별 매출을 볼건데 수도권만 볼거다 하면 where에서 지역=서..
티스토리는 제목 널로했더니 안올라가서 제목이 좀 다릅니다. 양해바람. 0과는 다르다, 0과는!SQL의 답은 세 개다. 응, 아니, 몰라. 그리고 몰라를 맡고 있는게 NULL이다. 예? 0이 아니예요? 널하고 0은 다른거다. 0은 칸에 0이라는 값이 들어있는거고 NULL은 값이 없는거다. 그러니까 설문조사로 치자면 무응답이 널이고, 0이라고 대답한 게 0이다. 그럼 왜 널은 몰라예요? 설문조사에서 무응답이라고 했잖아요. 뭔 생각을 갖고 있는건지 얘기를 안 하는데 내가 어떻게 앎? NULL과 연산자(들)사칙연산select 1+NULL, NULL+NULL from DUAL; --더하기select 1-NULL, NULL-NULL from DUAL; --빼기select 1*NULL, NULL*NULL from D..
https://koreanraichu.tistory.com/776 엔터티'것'SQLD 하게 되면 제일 먼저 배우는게 엔터티, 관계 그리고 속성이다. 그 중에서도 엔터티는 설명이 그냥 '어떤 것'이다. 그니까 말 그대로 어떤 '것'이요. 엔터티의 정의를 보면업무에 필요한 정koreanraichu.tistory.com여기서 엔터티가 '것'이라고 했는데, 그 엔터티가 무엇인지를 정하는 게 엔터티의 속성이고 다른 엔터티와 어떤 사이인지를 정하는 게 관계이다.관계의 분류관계는 크게 존재에 의한 관계와 행위에 의한 관계로 나뉜다. 어떤 엔터티가 존재하는 것 만으로도 관계가 형성된다면 그건 존재에 의한 관계이고, 특정한 업무를 수행함에 따라서 엔터티간에 관계가 형성되는 건 행위에 의한 관계이다. 피카츄랑 라이츄는 존..
https://koreanraichu.tistory.com/778 정규화정규식과는 아무 상관 없다. 정규식은 레귤러 익스프레션(정규표현식)이고 얘는 노말라이제이션임.정규화의 필요성-이상현상정규화의 목적은 이상현상을 막기 위한 것이다. 이상현상에는 크게koreanraichu.tistory.com여기서 정규화에 대해 대충 얘기하면서 반대되는 개념도 있다고 했는데 그게 반정규화다. 근데 반정규화는 모종의 이유로 정규화 했던 걸 롤백하는거지, 정규화를 안 한 상태가 아니다. 정규화를 아예 안 한건 비정규화다. 취급이 거의 파괴광선망나뇽 파괴광선 할 때 그거 맞다. 파괴광선이 되게 센 기술같죠? 센 건 맞는데 정작 게임 하는 분들은 잘 안쓴다. 왜죠? 일단 파괴광선은 노말타입 기술이라 고스트타입에게는 안 맞고, ..