[SQL] 함수 (숫자, 문자열, 날짜/시간)
·
SQL
숫자 함수함수기능 CEIL(숫자, [n]) n이 명시되지 않았다면 정수 자리까지 올림  n이 명시되었다면 소수점 n번째 자리까지 올림  ROUND(숫자, [n]) n이 명시되지 않았다면 정수 자리까지 반올림  n이 명시되었다면 소수점 n번째 자리까지 반올림 FLOOR(숫자, [n]) n이 명시되지 않았다면 정수 자리까지 내림  n이 명시되었다면 소수점 n번째 자리까지 내림 ABS(숫자) 절댓값으로 변환 FORMAT(실수, n) 실수를 소수점 n번째 자리까지만 출력 SIGN(숫자) 음수면 -1 반환 0이면 0 반환 양수면 1 반환  - 집계 함수 : https://young0105.tistory.com/127  문자열 함수함수기능CHAR_LENGTH('문자열') 문자열 길이 (공백 포함) LENGTH('문..
[SQL] 조인 (JOIN)
·
SQL
조인 (JOIN)  - 두 개의 테이블을 연결하여 데이터를 검색하는 방법 #  다중 조인SELECT *FROM 테이블1LEFT JOIN 테이블2ON 테이블1.Key = 테이블2.KeyLEFT JOIN 테이블3ON 테이블1.Key = 테이블3.Key;  내부 조인 (자연 조인)  - 두 테이블에서 일치하는 레코드만을 출력함 (교집합) SELECT *FROM 기준테이블 AS 'a' -- 'a'라는 별칭 지정INNER JOIN 대상테이블 AS 'b' -- 'b'라는 별칭 지정ON a.Key = b.Key -- 주로 기본키, 외래키로 연결함[WHERE 조건];  외부 조인#  LEFT JOIN  - FROM 절의 테이블에 있는 모든 데이터 + JOIN 절의 테이블에 있는 동일한 데이터 SELECT *FROM 기..
[SQL] 관계 차수
·
SQL
관계 차수#  1:1 관계  - 두 개의 테이블 간에 각각 하나의 레코드만 매칭되는 관계  - 주로 기본키와 외래키를 연결해서 관계 설정  - 두 테이블 중 하나의 테이블에서만 외래키를 가질 수 있음  - 1:1 관계를 보조적인 테이블로 활용할 수 있음   - 1:1 관계를 사용하는 상황      1) 테이블의 컬럼 중 일부가 NULL 값을 가지는 경우      2) 특정 컬럼 값이 자주 변경되지 않는 경우      → 1:1 관계를 사용하면 테이블의 정규화를 유지하면서도 데이터를 보다 효율적으로 관리 가능       # 정규화 (추후 따로 포스팅 예정)          : 데이터베이스 설계에서, 가능한 중복을 제거하고 데이터를 구조화하는 프로세스            → 데이터의 일관성 & 유지보수성 &..
[SQL] 기본키(PK)와 외래키(FK)
·
SQL
키 (Key, 식별자)  - 레코드를 검색/정렬할 때, 다른 레코드들과 구별할 수 있는 기준이 되는 속성#  키의 특성  1) 유일성      : 식별자에 의해 모든 레코드들이 유일하게 구분됨   2) 최소성      : 꼭 필요로 하는 최소한의 속성만으로 식별자가 구성됨 키의 종류#  기본키 (PK, Primary Key)  - 테이블의 각 레코드들을 고유하게 식별하는 컬럼 (or 컬럼 집합)  - NULL 값을 허용하지 않음 → 자동으로 NOT NULL로 설정됨  - 기본키에 대한 인덱스는 자동으로 추가됨  - CREATE 문에서 설정하기 : https://young0105.tistory.com/114#  후보키 (Candidate Key)  - 테이블에서 각 레코드들을 구별하는 데 기준이 될 수 있..
[SQL] 인덱스
·
SQL
인덱스 (Index, 색인)  - DB에서 데이터 검색 속도를 향상시키기 위해 사용하는 구조  - PRIMARY KEY, UNIQUE 선언 시 자동으로 인덱스가 생성됨 #  장점  - 특정 컬럼에 대해 정렬된 값을 가짐      → 해당 컬럼의 값을 이용하여 검색을 수행할 때, 빠르게 검색 가능  - 대량의 데이터를 처리할 때 효율적임      (인덱스가 없다면 풀 스캔 : 하나하나 스캔하며 검색해서 시간이 오래 걸림)#  단점  - DB 내에 별도로 저장되어 있음      → 추가적인 디스크 공간을 필요로 함  - 인덱스를 생성할 때 데이터를 정렬하는 작업을 필요로 함      → 인덱스 생성/수정 시 시간이 소요될 수 있음   ⇒ 필요한 경우에만 적절하게 설계해서 사용할 것  테이블 생성 시점에 인덱..