Backend Web/SQL · DB 기초 21

[SQL] explain

쿼리가 느리거나 성능을 향상 시키기 위해서 가장 먼저 보는 것은 explain이다. 사용 방법으로는 주로 EXPLAIN SELECT * FROM TABLE WHERE 1 = 1 이런 식으로 사용한다. explain을 사용하면 다음과 같은 정보를 얻을 수 있다. 구분 설명 id select 아이디로 SELECT를 구분하는 번호 table 참조하는 테이블 select_type select에 대한 타입 type 조인 혹은 조회 타입 possible_keys 데이터를 조회할 때 DB에서 사용할 수 있는 인덱스 리스트 key 실제로 사용할 인덱스 key_len 실제로 사용할 인덱스의 길이 ref Key 안의 인덱스와 비교하는 컬럼(상수) rows 쿼리 실행 시 조사하는 행 수립 extra 추가 정보 https:/..

[SQL] RDBMS와 NoSQL 차이점

최근 Redis를 다뤄보면 RDBS와 NoSQL의 차이에 대해서 궁금해졌다. RDBMS DBMS는 사용자와 데이터베이스 사이에서 사용자의 요구에 따라 정보를 생성해주고 데이터베이스를 관리해 주는 소프트웨어이다. 또한 기존의 RDBMS에서의 저장 방식은 SQL에 의해 저장되고 있으며 정해진 스키마에 따라 데이터를 저장해야 한다. RDBMS에는 DBMS앞에 R이 붙어 있습니다. 이 R은(Relational)의 약자로 RDBMS는 관계형 데이터베이스 관리 시스템을 의미합니다. 이름과 같이 RDBMS는 RDB를 관리하는 시스템이며 RDB는 관계형 데이터 모델을 기초로 두고 모든 데이터를 2차원 테이블 형태로 표현하는 데이터베이스입니다. 관계형 데이터베이스(RDMBS)는 아래와와 같이 구성된 테이블이 다른 테이블..

[SQL] Column 'product_id' in group statement is ambiguous

GROUP BY Column 'product_id' in group statement is ambiguous Column 'partner_id' in group statement is ambiguous Column 'product_id' in group statement is ambiguous Column 'product_id' in group statement is ambiguous Column 'partner_id' in group statement is ambiguous 끊임없이 이런 로그들이 떴다. 대수롭지 않게 느꼈는데, 평상시에 굉장히 실수를 하고 있다는 걸 깨달았다. 이 외에도 긴 쿼리였는데, 잘라서 확인하다 보니 이 쿼리에서 문제가 있는 걸 알았고, 습관적으로 GROUP BY 를 사용하고 ..

[SQL] SQLD - SQL의 종류

SQL의 종류 종류 명령어 DML SELECT, INSERT, UPDATE, DELETE DDL CREATE, ALTER, DROP, RENAME DCL GRANT, REVOKE TCL COMMIT, ROLLBACK DML INSERT INTO PLAYER (PLAYER) VALUES (‘PJS’); UPDATE PLAYER SET BACK_NO = 60; DELETE FROM PLAYER; SELECT PLAYER_ID FROM PLAYER; SELECT PLAYER AS “ ” 선수명 FROM PLAYER; DISTINCT : 1 중복 시 회만 출력 DDL 데이터 유형 - CHAR(s) : 고정 길이 문자열 정보 최대 . 길이 만큼 공간 채움 ‘AA’ = ‘AA ’ - VARCHAR2(s) : 가변 ..

[SQL] SQLD - 정규화

정규화만 잘 알아도 될 것 같은데, 이건 매번 봐도 어렵다. 제 1 정규형 릴레이션이 제1정규형에 속하기 위해서는 릴레이션에 속한 모든 속성이 더는 분해되지 않는 원자 값만 가져야 한다. 따라서 반복집합을 제거해야 한다. 다중값 속성을 포함하는 이벤트참여 릴레이션 고객아이디 이벤트 번호 당첨 여부 등급 할인율 apple E001, E005, E010 Y, N, Y gold 10% banana E002, E005 N, Y vip 20% carrot E003, E007 Y, Y gold 10% orange E004 N silver 5% 제1정규형에 속하는 이벤트참여 릴레이션 고객 아이디 이벤트 번호 당첨 여부 등급 할인율 apple E001 Y gold 10% apple E005 N gold 10% appl..

[SQL] TABLE / View / Sequence

10장 TABLE --DDL --객체들을 관리(생성, 수정,삭제)하는 언어 --객체(table, view, sequence, index, synonym) 중 우리의 관심은 Table --도서관 데이터베이스, 책꽂이 table, 책꽃지 책 record --index 책을 빨리 찾게 해주는 것 --synonym 별명으로 별도의 객체 만든다 --테이블 이름-- --문자로 시작, $는 사용 안하는게 좋다, _, --테이블명 복수, 컬럼명 단수 --------------------------------------------------------------- create table hire_dates( id number(8), hire_date date default sysdate); --deafult 기본값 in..

[SQL] Subquery / SET / DML

7장 Subquery --sub query-- --where에서 비교값 써야되는데 비교값을 내가 작성하는 시점에 모른다. --그래서 비교값을 추출하는 query를 포함시켜야한다. select last_name, salary from employees where salary > 11000; select last_name, salary from employees where last_name = 'Abel'; --위의 두 문장을 합치는 것 select last_name, salary --main query from employees where salary > (select salary from employees where last_name = 'Abel'); --sub query 중 single sub que..

[SQL] Single Function / Group Function / Join

4장 Single Function -- to_char(date, format model) --날짜든 숫자들, char 로 강제 변환하고 싶을 때 to_char, 첫번째로 날짜, 두번째는 포맷 --숫자 형태 select to_char(sysdate, 'yyyy/MM/dd') from dual; --문자형태 날짜에sp붙이며 서수 형태, DY 요일을 풀 네임으로 보여준다 select to_char(sysdate, 'YEAR, MONTH, DDsp DY(day)') from dual; --시 24시간 분 초 select to_char(sysdate, 'HH24:MI:SS AM') from dual; --"" 붙이면 형식 아니라 일반 문자로 받아드림 select to_char(sysdate, 'DD "of" Mo..

반응형