[PRIMARY KEY] 각 테이블의 코드를 식별한다. 중복되지 않은 고유값을 포함한다. NULL 값을 포함할 수 없다. ( NOT NULL 을 안해도 NOT NULL이 된다. ) 테이블 당 하나의 기본키를 갖는다. ( 두 개 이상의 칼럼을 하나의 기본 키로서 가질 수도 있다. ) 어차피 하나의 기본키 이기 때문에 CONSTRAINT constraint_name 을 해줄 필요가 없다. 하나의 칼럼을 기본 키로 가질 때 CREATE TABLE person ( pid int NOT NULL, name varchar(16), age int, sex char, PIMARY KEY (pid) ) 두개 이상의 칼럼을 기본 키로 가질 때 CREATE TABLE animal ( name varchar(16) NOT N..
ORDER BY 없이 LIMIT을 쓸 때는 순서가 달라질 수 있다는 것을 감안하고 써야겠습니다. oil_price 테이블과 refueling 테이블을 주유소 상호를 기준으로 right join 하고, 테이블의 이름으로 정렬했을 때, 3번째 데이터의 상호는? SELECT r.이름, o.상호 FROM oil_price o RIGHT JOIN refueling r ON o.상호 = r.주유소 ORDER BY r.이름; SELECT r.이름, o.상호 FROM oil_price o RIGHT JOIN refueling r ON o.상호 = r. 주유소 ORDER BY r.이름 LIMIT 3; ORDER BY r.이름으로 조회했기 때문에, LIMIT 몇으로 두냐에 따라 상호명의 순서가 달라지는 것으로 보입니다. ..
[어떤 의미] CONCAT 여러 문자열을 하나로 합치거나 연결 ALIAS 칼럼이나 테이블 이름에 별칭 생성 ( 칼럼은 SELECT 다음에, 테이블은 FROM 다음에 ) DISTINCT 검색한 결과의 중복을 제거 LIMIT 검색 결과를 정렬된 순으로 주어진 숫자 만큼만 조회 [CONCAT] 문자열 포멧팅과 비슷한 느낌 concat 으로 celeb의 이름을 ' 이름 : name ' 의 형태로 출력해보자. SELECT concat('이름 : ' , name) FROM celeb; [ALIAS] ALIAS 의 약자로 as 라 쓴다. ( 생략해도 된다.) 칼럼을 ALAS 로 바꿔서 쓰기 SELECT name as '이름', agency as '소속사' FROM celeb; 이름과 소속사를 합쳐 profile 만들..
[JOIN 종류] 칼럼 갯수가 반드시 같아야 하는 UNION은 수직 결합 이었다면, JOIN은 수평 결합을 생각하면 될 것 같다. INNER JOIN 겹치는 테이블 FULL OUTER JOIN 두 테이블 안의 모든 내용 LEFT JOIN 겹치는 테이블과 왼쪽 테이블 나머지 RIGHT JOIN 겹치는 테이블과 오른쪽 테이블 나머지 단, MYSQL 에서는 FULL OUTER JOIN 을 지원하지 않기 때문에 ( 다른 DBMS 에서는 지원 한다. ) 조금 다른 형태의 (UNION 을 섞은) 쿼리문을 작성하여야 한다. [사용할 테이블] CREATE TABLE snl_show ( ID int NOT NULL AUTO_INCREMENT PRIMARY KEY, SEASON int NOT NULL, EPISODE in..