'Data Base' 카테고리의 글 목록 (2 Page)
본문 바로가기
728x90

Data Base35

SQL) You can't specify target table '<Table>' for update in FROM clause ※ ERROR : You can't specify target table '' for update in FROM clause ※ #문제의 코드 DELETE FROM Person WHERE Id NOT IN ( SELECT MIN(Id) FROM Person GROUP BY Email ); #해결된 코드 DELETE FROM Person WHERE Id NOT IN ( SELECT Sub.Minval FROM ( SELECT MIN(Id) AS Minval FROM Person GROUP BY Email ) AS Sub ); 문제 Link : Delete Duplicate Emails - LeetCode 위와 같은 코드를 작성하였을 때 이런 에러가 발생하였다. 계속해서 확인을 해 본 결과 DELETE 로 .. 2021. 9. 2.
SQL study [21.09.02] SQL study [21.09.02] AS 의 생략 SELECT A.Name NAME FROM S0902_2 A;# AS 생략 SELECT A.Name AS NAME FROM S0902_2 AS A;# AS 생략 X AS 를 생략하여도 위와 같이 ALIAS를 지을 수 있다는 것을 알았다. WHERE 조건 내에서 같은 Table 을 참조할 때 생기는 오류 DELETE FROM Person WHERE Id NOT IN ( SELECT MIN(Id) FROM Person GROUP BY Email ); 위와 같은 경우 Update 하려는 Table 과 WHERE 조건 내의 Table 과 같은 Table 을 사용한다. 이 경우 이와 같은 오류가 발생할 수 있다. 이런 경우에는 SUB QUERY 를 한번 더 감싸.. 2021. 9. 2.
Leet) No.175 [Combine Two Tables] Leetcode No.175 [Combine Two Tables] 문제 Combine Two Tables - LeetCode Combine Two Tables - LeetCode Level up your coding skills and quickly land a job. This is the best place to expand your knowledge and get prepared for your next interview. leetcode.com 설명 두 테이블 에서 Person 테이블에 있는 모든 사람들에 대해서 새로운 테이블을 만들어야 한다. Address 의 PK 인 AddressId 와는 상관없이 만들으라고 했으므로 결국 Person 테이블에만 존재하는 사람이거나, 두 테이블 모두 존재하는 .. 2021. 8. 31.
Leet) No.1179 [Reformat Department Table] Leetcode No.1179 [Reformat Department Table] 문제 Reformat Department Table - LeetCode Reformat Department Table - LeetCode Level up your coding skills and quickly land a job. This is the best place to expand your knowledge and get prepared for your next interview. leetcode.com 설명 위와 같이 Department table 의 data를 id column 으로 그룹화 시키고, Jan_Revenue ~ Dec_Revenue Column 을 만들어야 한다. 각 id 별로 Result table .. 2021. 8. 30.
SQL) JOIN (INNER/LEFT/RIGHT/OUTER) JOIN (INNER / LEFT / RIGHT / OUTER) 설명 둘 이상의 테이블을 연결하여 데이터를 확인할 수 있는 방법이다. 연결하고자 하는 테이블 간 공통적인 컬럼이 있어야 하며, 그 컬럼은 그 테이블의 PK 혹인 FK 로 사용되고 있어야 한다. [JOIN 설명을 위한 두 테이블 정의] CREATE TABLE S1 ( ID INT PRIMARY KEY, NAME VARCHAR(30) NOT NULL ); INSERT INTO S1 VALUES (111, 'AAA'), (222, 'BBB'), (333, 'CCC'), (444, 'DDD'); CREATE TABLE S2 ( ID INT PRIMARY KEY, NAME VARCHAR(30) NOT NULL ); INSERT INTO S2 VALU.. 2021. 8. 29.
SQL study [21.08.25] SQL study [21.08.25] FOREIGN KEY REFERENCES () ON DELETE ~ CREATE TABLE Parent ( ID INT PRIMARY KEY, SCORE INT NOT NULL, NAME VARCHAR(30) ); CREATE TABLE Child ( PID_CASCADE INT, #DELETE/UPDATE 시 CASCADE 처리되는 FK PID_SETNULL INT, #DELETE/UPDATE 시 SET NULL 처리되는 FK NUMBER INT, FOREIGN KEY (PID_CASCADE) REFERENCES Parent(ID) ON DELETE CASCADE ON UPDATE CASCADE, FOREIGN KEY (PID_SETNULL) REFERENCES P.. 2021. 8. 25.
SQL study [21.08.24] SQL study [21.08.24] 제약조건 [Constraint] : 테이블에 잘못된 입력을 막기 위해서 일정한 규칙을 지정하는 것 - NOT NULL #NULL값 입력 금지 - UNIQUE #중복값 입력 금지 (NULL 값 중복입력은 가능) - PRIMARY KEY : NOT NULL + UNIQUE - FOREIGN KEY : 다른 테이블의 컬럼을 조회해서 무결성 검사 - CHECK : 조건으로 설정된 값만 입력 허용 컬럼에 제약조건 설정 CREATE TABLE Accounts ( id INT NOT NULL UNIQUE, #PRIMARY KEY 역할 Name VARCHAR NOT NULL #NOT NULL! ); 테이블에 제약 설정 CREATE TABLE study( Id INT NOT NULL.. 2021. 8. 24.
SQL study [21.08.23] SQL study [21.08.23] ALTER 1. ADD #테이블에 필드를 추가 - ALTER TABLE ADD 2. DROP #테이블에서 필드를 삭제 - ALTER TABLE DROP 3. MODIFY COLUMN #테이블에서 필드의 타입을 변경 - ALTER TABLE MODIFY COLUMN CASE #1) VALUE 값에 따라 switch~case 문 실행 CASE value WHEN [compare_value] THEN result [WHEN [compare_value] THEN result] --... [ELSE result] END #2) true인 condition 의 result 가 선택됨 CASE WHEN [condition] THEN result [WHEN [condition] T.. 2021. 8. 24.
SQL) 연산자 우선순위 연산자 우선순위 (Operator precedence) 2021. 8. 23.
SQL study [21.08.19] SQL study [21.08.19] SQL 문장들의 종류 오늘의 한 마디 : 오늘과 내일은, 2일뒤 토요일 (8/21) 에 있을 SDS SW 검정시험을 준비해야해서 SQLD 공부는 많이 하지 못 하였다. 토요일 시험이 끝난 뒤 2주간은 이제 SQLD공부에 힘을 쏟아야겠다. 2021. 8. 19.
SQL study [21.08.18] SQL study [21.08.18] MySQL workbench Study / Programmers Study : HOUR(DATETIME) # DATETIME 의 시간만 따 오는 것. : 이름이 있는 동물들을 찾으려면 IS NOT NULL SHOW DATABASES; USE world; SHOW TABLES; DESC city; SELECT COUNT(*) FROM city; # city table 에 있는 모든 도시들의 수가 나옴 SELECT AVG(Population) FROM city; # 도시들의 평균 인구수 SELECT CountryCode, MAX(Population) FROM city GROUP BY CountryCode HAVING MAX(Population) > 8000000; # H.. 2021. 8. 19.
SQL study [21.08.17] SQL study [21.08.17] 분산 데이터베이스 - 여러 곳으로 분산되어있는 데이터베이스를 하나의 가상 시스템으로 사용할 수 있도록 한 데이터베이스 - 논리적으로 동일한 시스템에 속하지만, 컴퓨터 네트워크를 통해 물리적으로 분산되어 있는 데이터들의 모임 - 데이터베이스를 연결하는 빠른 네트워크 환경을 이용하여 데이터베이스를 여러 지역 여러 노드로 위치시켜 사용성/성능 등을 극대화 시킨 데이터베이스 * 장점 1. 지역 자치성, 점증적 시스템 용량 확장 2. 신뢰성 / 가용성 3. 효용성 / 융통성 4. 빠른 응답 속도 / 통신 비용 절감 5. 데이터의 가용성과 신뢰성 증가 6. 시스템 규모의 적절한 조절 7. 각 지역 사용자의 요구 수용 증대 * 단점 1. 소프트웨어 개발 비용 2. 오류의 잠재성 .. 2021. 8. 18.
SQL study [21.08.16] SQL study [21.08.16] 슈퍼타입 모델링 - 장점 : 전체 사원에 대한 검색 용이. 무결성에 유리. - 단점 : 서브타입별 속성이 많다면 위와 같이 발생하는 NULL 이 지나치게 발생할 수 있다. 서브타입 모델링 - 장점 : 슈퍼타입 모델링에 비해 NULL 이 없거나 줄어들고, 정규직/임시직 사원을 별개로 처리하는 업무가 많은 경우 용이 - 단점 : UNION 함수 사용시 중복제거가 되기 때문에 사번의 유일성 관리를 잘 해야함. 트랜잭션 - 항상 전체를 통합하여 분석 처리 한다. - 슈퍼-서브타입이 하나의 테이블로 통합되어 있으면 다른 형식에 비해 성능이 더 우수하다. 인덱스 - 값의 범취에 따라 일정하게 정렬이 되어있다. - '=' 로 조호되는 칼럼이 가장 앞으로 나오면 좋다는 거 같다. .. 2021. 8. 17.
SQL study [21.08.15] SQL study [21.08.15] 반 정규화 * 간단한 정의 : 성능 향상을 위해 정규화를 포기하는 것 이다. * 성격 : 데이터의 무결성이 보장되는 것은 아니므로 제한적으로 사용을 해야한다. 테이블 반 정규화 테이블 병합 - 비즈니스 로직 상 join 되는 경우가 많아서 통합하는 것이 성능 측면에서 유리할 경우 고려된다. - 종류 a) 1:1 관계 테이블 병합 b) 1:N 관계 테이블 병합 c) 슈퍼 서브 타입 테이블 병합 테이블 분할 - 종류 a) 수직 분할 : Column 단위로 테이블을 1:1 분리 b) 수평 분할 : Row 단위로 테이블을 분리 테이블 추가 - 종류 a) 중복테이블 추가 : 타 업무 또는 타 서버에 있는 테이블과 동일한 구조의 테이블을 추가. 원격 join 방지 b) 통계테이.. 2021. 8. 15.
SQL study [21.08.14] SQL study [21.08.14] 데이터 모델 성능 저하의 대표적인 원인 1. 데이터 모델 구조에 의한 성능의 저하 2. 대용량이 됨으로 인한 불가피한 성능의 저하 3. 인덱스의 특성을 고려하지 않은 상태로 인덱스를 생성함에 따른 성능의 저하 - 성능 : 일반적으로 데이터 조회의 성능을 의미한다. -> 데이터 입력/수정/삭제는 일시적이고 빈번하지 않으며 단건 처리가 많지만 데이터 조회는 반복적이고 빈번하며 여러건을 처리하는 경우가 많기때문 -> 그렇다 하더라도 데이터 입력/수정/삭제가 중요한 경우도 있는 것 이다! 성능 데이터 모델링 - 데이터 베이스 성능향상을 목적으로, 설계단계의 데이터 모델링 때부터 정규화, 반정규화, 테이블 통합, 테이블 분할, 조인 구조, PK, FK 등 여러가지 성능과 관련.. 2021. 8. 15.
728x90