MMO에서 가장 많이 다루는 MsSQL 소위 SQL Server 데베 학습할 것이다.
MSSQL사용할 것이다. 구글 sql server > developer > install 이까지는 계속 설치 ㄱㄱ 그리고 닫지말고 SSMS설치를 해주어야 한다 (편하다)
CTRL + N 새창 ㄱㄱ이렇게하고 F5하면 dbo.players 내용 긁어 온거임 구조가 이 BaseballData라는 데이터 베이스 안에 여러개의 테이블로 이루어 진것이다.(관계형 DB기준)우리가 컨트롤 + n으로 테이블 만들수도 있지만UI인터페스로도 만들수있는데테
AND의 우선순위가 OR보다 높다.이렇게 괄호친거랑 똑같음그리고dathYear의 이런 NULL값은WHERE dathYear != NULL이렇게 하는게 아니라이렇게하면 죽은 사람들 나온다.그리고 birthCity를 찾는 경우'N'으로 시작하는 City를 찾고싶은 경우'%
오늘의 주제는 정렬과 연산이다.ASCDESC두개 기억!그러면여러개를 기준으로 정렬하는것은이렇게 함그런데 게임에서는 TOP10 이런식으로 제한된 인원만 출력 하려면?TOP (10) 10명 ㄱㄱ그리고 퍼센트로도 보여 줄 수 있음그러면 165개정도 나옴이렇게 filter넣을
한국 나이로 계산해서 출력하고싶을때이렇게 SELECT에서 연산을 해주면된다.From부터 실행하기 때문에아직 koreanAge를 몰라서 에러가 나는 중이다.그래서 이렇게 해주어야 함그리고 2021 - NULL이런 연산도 가능하기 떄문에 조심하고 유의해야한다.물론 값은 N
데뷔날짜보면 문자열로 저장을 해놓고있었는데이렇게 문자열로 하면 비교도 쉽지않고 찾기도 어렵게 되는 문제가 있다.DateTime사용하기시분초를 추가하고 싶을때이거중에 사용 ㄱㄱ이렇게 사용 ㄱㄱ이거는 T SQL에서만 사용가능좀더 범용적으로 사용가능 한거INSERT하기일로
C1~12 달까지 몇월부터 몇월은 봄이고 이런식으로 하고싶다며이런식으로 가능하다. 엘스도 가눙 이렇게나옴 이게 CASE작성법 첫번째이다. 이런식으로도 가능하다.
오늘은 굉장히 중요한 "집계"에 대한 내용 알아 볼 것이다.요약하자면 이런거임모든 행의 갯수 뽑아와버리기그런데\*를 붙일 수 있는것은 COUNT가 유일함이렇게 차이가 나는 이유는 집계함수는 Null값이 있으면 무시를 한다.중복 없애기중복허용하면 이렇게 되는데곂쳐지는거
\-> 2, 3, 4 이렇게 바뀌어야함근데 4번 제일 첫번째 사람 뽑을려면이렇게 TOP 1 \*
이거 어떤 상황일때 쓰는지부터 보자팀별로 묶어서 정보를 보곳 싶을 때는이렇게 해야한다그런데 주의할점이SELECT \* 하고 GROUP BY 하면 안된다.하면 논리적으로 모순이 생김그래서 GROUP BY로 묶어 준 정보만 추출 할 수 있다.그래서 이렇게 GROUP BY
< INSERT >VALUES값들을 제대로 넣어줘야 추가가 된다.밑에처럼 뺴먹으면 에러가 뜬다.순서 상관없이 하는 부분은이런식으로도 가능하다.그리고 똑같은 정보를 이렇게 넣어주면 에러가 난다.(같은 정보 똑같이 두개이상 넣으면 에러난다)< DELETE >&l
SubQuery 개념그래서 이것을 한번에 해주도록 하는 것이 서브쿼리이다.이렇게 넣어주면 된다.그런데 이부분까지만 하면 에러가 난다.playerID뽑아온것을 WHERE 에다가 넣어주고 실행하면 됨.그런데 지금까지는 "단일행"이고"다중행"이라면 어떻게 할까?IN을 사용하
< 테이블 생성 >나중에 게임을 만들때우리만의 데이터베이스를 만들어야 한다.그래서 UI 인터페이스를 통해서 만들기 보다는(여러 장단점이 있지만)SQL문법을 통해서 만들어보도록 하겠다이렇게 데이터베이스를 만들어 주면 좌측에 생성된거 확인 가능하다.그리고 USE Ga
데이터 베이스를 설계하면서 중요한 개념인데정규화 1단계 2단계 3단계를 굳이 알필요보다는뭐하는것인지 알고 설계하는 작업을 연습하다보면 익숙해진다!그래서정규화란??"테이블을 올바르게 변경하고 분할하는 것"테이블을 이렇게 분리를 하면서 설계를 해야한다.이렇게 문자열로 관리
INDEX는 중요도를 평가할 수 없을 정도로 너무너무 중요하다.책 후반이나초반에 "색인 == INDEX"를 찾으면 쉽게 찾을 수 있다.그런데 책은 한번 출판하면 바뀌지가 않는데데베는 수정도되고 바뀌기도 하니까 실시간으로 페이지가 왔다갔다 할 테니까그래서 데베에서는 실제
복수의 테이블을 다루는 방법데이터들끼리 거미줄 처럼 이어져있어서 그것들을 다루는 방법에 대해서 알아볼 것이다.GROUP BY를 할때는 SELECT에서 이렇게 명시를 해주어야 한다.이렇게 추출 했는데상황에 따라서 첫번째에 추출한거랑 두번째로 추출한거랑 합하고싶은 상황이
JOIN연산서버로 지원하면 INDEX 관련과 JOIN에 관련한 것들 많이 물어본다.거의 사용은 안한다일단 테이블을 이렇게 만들어주고데이터를 확인하면 이렇게 뜬다.이제 교차결합을 어떻게 하는지 보면은CROSS JOIN을 사용해서 보면은1 A, 1 B, 1 C, 2 A,
규모가 큰 회사에서는 사용을 하는데규모가 좀 작은 곳에서는 사용하지 않고 깡으로 나가기도한다.문법은 간단한데BEGIN TRAN || BEGIN TRANSACTION 둘중하나인데 앞에거 더 많이쓴다.한다음에COMMIT, ROLLBACK 을 하거나 선택 할 수 있다.그래서
변수 C#과 마찬가지로 변수나 if, else문을 통해 흐름을 제어 할 수 있다. 먼저 변수 선언하는 부분부터 보도록 하겠다. > DECLARE @i AS INT = 10; @는 보통 다른 변수와 헷갈리지 않게하기 위하여 붙인다. > DECLARE @j AS
운영체제에서 말하는 윈도우가 아님(리눅스에서 사용못하거나 그런것도 아님)그냥 특정 범위를 말하는 것이다.한줄 요약하자면행들의 서브 집합을 대상으로, 각 행별로 계산을 해서 스칼라(단일 고정)값을출력하는 함수이다.그렇다면느낌상 GROUPING이랑 비슷한가?SUM, COU
SQL성능에 대한 튜닝에 대해서 알아 볼 것이다.평소에도 데베 설계를 할때 민감하게 설계 해야한다.유져수 증가 -> 데베 부하 올라 갈 수 있음그래서 어떤게 빠르고 느린지는 SQL튜닝을 하면서 성능 분석을 하는 방법을 배워야 한다.google -> northwind d
이거 그냥인덱스를 걸때 여러개를 걸어버리는게 "복합 인덱스"이다.1) 주문보기ID가 같으면 같은 주문임2) 임시테이블 만들고 복붙하기빠른방법 -> SELECT INTO 사용 ㄱㄱ3) 복합인덱스 추가이거 두개 세트로 인덱스 걸어주겠다!4) 인덱스 정보 살펴보기이렇게 해주
오늘은 인덱스의 종류에 대해서 알아볼 것이다.인덱스 종류Clustered(영한 사전) Non-Clustered(색인)Clustered -> 실제로 데이터가 정렬되는 순서에 영향을 줌.데이터는 leaf page에 저장이 된다.leaf page = data page 잎사귀
인덱스 접근 방식 알아볼 것이다.(Access)INDEX SEEK -> INDEX가 활용되어서 좋은것INDEX SCAN -> INDEX가 활용이 안되서 안좋은거?라고 이분법적으로 설명을 해보았었다.이렇게 테이블 만들어주고 인덱스 만들어주고이렇게 데이터를 넣어 주도록 하
Clusterd일 경우 Index Seek가 느릴 수 없다.NonClustered일 경우 데이터가 Leaf Page에 없다.따라서 한번 더 타고 가야되는데1) RID -> Heap Table (BookMark LookUp)2) Key -> Clustered Index이
이럴 경우 (56, 휴먼)이 하나만 있는게 아니라 엄청 여러개가 나올 수 있어서이럴 때 인덱스의 컬럼 순서가 중요하다는 것이다.일단 이까지 만들어 놓고 추가를 해주도록 하자.그리고 뭐가 더 빠른 인덱스인지 확인하기 위해 인덱스 두개 만든다.이렇게 한 후 두개를 실행해보
JOIN 문에 대해서 깊게 알아 볼 것이다.조인이 내부적으로 처리되는 방식이 여러가지가있다.이것을 이해를 해야지 실행할때 분석이 가능하다.1) Nested Loop (NL)조인2) Merge(병합) 조인3) Hash(해시) 조인이렇게 세가지 상태중 하나를 골라서 조인이
Merge(병합) 조인 == Sort Merge(정렬 병합) 조인 반드시 One - TO - Many 일 경우만 효율이 좋다.Merger -> Sort Merge 조인1) 양쪽 집합을 Sort(정렬)하고 Merge 병합한다.이미 병합된 상태라면 Sort는 생략