[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 내에 별도로 저장되어 있음      → 추가적인 디스크 공간을 필요로 함  - 인덱스를 생성할 때 데이터를 정렬하는 작업을 필요로 함      → 인덱스 생성/수정 시 시간이 소요될 수 있음   ⇒ 필요한 경우에만 적절하게 설계해서 사용할 것  테이블 생성 시점에 인덱..
[SQL] WHERE 조건절 & 연산자
·
SQL
WHERE 조건절SELECT *FROM 테이블명WHERE 조건식;   - SELECT, UPDATE, DELETE 구문의 대상이 되는 조건을 지정함  - 구성      1) 연산자       2) 피연산자 : 컬럼명, 상수값, 서브쿼리 등  - 논리 연산자를 이용해서 여러 조건식을 조합해서 사용할 수 있음  비교 연산자A = BA와 B는 같다A != B 또는 A BA와 B는 다르다 A A는 B보다 작다A A가 B보다 작거나, A와 B가 같다A > BA는 B보다 크다A >= BA가 B보다 크거나, A와 B가 같다 논리 연산자(조건식1) AND (조건식2)조건식 둘 다 TRUE면 TRUE 반환(조건식1) OR (조건식2)조건식 하나 이상이 TRUE면 TRUE 반환NOT (조건식)BOOLEAN 값이 조건식 ..
[SQL] DML - 데이터 삽입/변경/삭제 (INSERT, UPDATE, DELETE)
·
SQL
DML (데이터 조작어, Data Manipulation Language)  - SELECT, INSERT, UPDATE, DELETE 데이터 삽입 : INSERT 문  - 포지셔널 : 컬럼명과 삽입할 값의 순서를 동일하게 할 것  - 컬럼명과 값은 일대일 대응해야 함 → 컬럼 수보다 값을 적게 설정하면 오류 #  기본 형식INSERT INTO 테이블명(컬럼명1, 컬럼명2, ..., 컬럼명n)VALUES (값1, 값2, ..., 값n); -- VALUE도 무관   - 제약조건이 NOT NULL이 아니라면, 해당 컬럼을 제외하고 작성 가능   - 값 부분에 DEFAULT를 입력하면 해당 컬럼에 저장된 DEFAULT 값으로 입력됨  - DEFAULT가 설정되어 있는 컬럼은 선언 시 생략하면 자동으로 DEF..
[SQL] DDL - 테이블 변경/삭제 (ALTER, RENAME, DROP, TRUNCATE)
·
SQL
테이블 구조 변경 : ALTER 문#  기본키 추가ALTER TABLE 테이블명 ADD PRIMARY KEY(컬럼명); #  기존 컬럼에 대한 정의 변경 (제약조건 변경)ALTER TABLE 테이블명 MODIFY [COLUMN] 컬럼명 자료형 [제약조건1] [제약조건2] ...; #  기존 컬럼의 자료형 변경ALTER TABLE 테이블명MODIFY [COLUMN] 컬럼명 새_자료형; #  기존 컬럼의 이름 변경ALTER TABLE 테이블명 RENAME COLUMN 기존_컬럼명 TO 새_컬럼명; #  새로운 컬럼 추가-- 테이블의 마지막 컬럼으로 추가됨ALTER TABLE 테이블명 ADD [COLUMN] 컬럼명 자료형 [제약조건]; #  기존 컬럼 삭제ALTER TABLE 테이블명 DROP [COLUMN]..