제약 조건(Constraint) 데이터의 무결성을 지키기 위한 제한된 조건 특정 데이터를 입력할 때 무조건적으로 입력되는 것이 아닌, 어떠한 조건을 만족했을 때에 입력하도록 제약할 수 있음. 기본 키 제약 조건 중복 될 수 없으며 NULL 값이 입력될 수 없다. 1) 우선 기본키로 생성한 것은 자동으로 클러스터형 인덱스가 생성된다. 2) 테이블에서는 기본키를 하나 이상의 열에 설정할 수 있다. 3) 기본키가 없이도 테이블의 구성이 가능하지만 실무적으로는 대부분의 테이블에는 기본 키를 설정해주어야 한다. 4) 기본 키를 생성하는 방법은 CREATE TABLE문에 PRIMARY KEY라는 예약어를 넣어주면 된다. 예시 CREATE TABLE usertbl ( userID CHAR(8) NOT NULL PRI..

SELF JOIN 문제 - 이런 상황일 때 self join을 활용하여 우대리 직속상관의 연락처를 확인하기 정답 코드 select e1.emp as '부하직원', e2.emp as '직속상관', e2.empTel as '직속상관 연락처' from empTbl e1 inner join empTbl e2 On e1.manager = e2.emp where e1.emp = '우대리'; 실행 결과 해당 쿼리는 empTbl 테이블을 자기 자신과 조인하여 부하직원과 직속 상관의 정보를 가져오고, 그 중에서 "우대리"의 정보를 선택합니다. 조인 조건은 e1.manager = e2.emp로 설정되어 있으며, 이는 부하직원의 관리자(empTbl 테이블의 manager 열)와 직속 상관의 이름(empTbl 테이블의 emp..

OUTER JOIN 조인의 조건에 만족하지 않는 행까지도 포함시킴. 자주 사용되지는 않지만 가끔 유용하게 사용함. 형식 SELECT FROM OUTER JOIN ON [WHERE 검색조건]; "전체 회원의 구매기록을 보자. 단 구매 기록이 없는 회원도 출력되어야 한다." -- OUTER JOIN SELECT u.userID, u.name, b.prodName, u.addr, CONCAT(u.mobile1, u.mobile2) AS '연락처' FROM usertbl u -- 왼쪽 LEFT JOIN buytbl b -- 오른쪽 ON u.userID = b.userID ORDER BY u.userID; 실행 결과 위와 동일한 결과를 얻기 위해서 구문을 RIGHT OUTER JOIN으로 바꾸려면 왼쪽과 오른쪽 ..

https://school.programmers.co.kr/learn/courses/30/lessons/120906 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제 설명 정수 n이 매개변수로 주어질 때, n의 각 자리 숫자의 합을 return 하도록 solution 함수를 완성해주세요. 제한사항 입출력 예 입출력 예 설명 아이디어 int는 한자리씩 돌기가 곤란. 그럼, 문자열로 바꿔서, 값을 하나씩 떼서, 그걸 다시 int로 바꿔서, 그걸 더해서 합을 출력하면 될 듯. 문자열 추출할 때, 예를 들어 1234라는 문자열이 있을 때 1, 2, 3, 4를 ..

https://school.programmers.co.kr/learn/courses/30/lessons/120899 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제 설명 정수 배열 array 가 매개변수로 주어질 때, 가장 큰 수와 그 수의 인덱스를 담은 배열을 return 하도록 Solution 함수를 완성해보세요. 제한사항 입출력 예 입출력 예 설명 아이디어 배열을 리턴하라고 했는데, 거기에 원소로 가장 큰 수와 그 수의 인덱스를 담으라고 했다. 그럼 자연스레 배열 크기는 2칸임을 추론할 수 있음. 전체적 로직은 최댓값 찾아서 치환하고 저장하는 것..

피벗 : 한 열에 포함된 여러 값을 출력하고, 이를 여러 열로 변환하여 테이블 반환 식을 회전하고, 필요하면 집계까지 수행하는 것. 샘플 데이터 넣고 결과 출력하기 CREATE TABLE pivotTest (uName CHAR(3), season CHAR(2), amount INT ); INSERT INTO pivotTest VALUES ('김범수','겨울', 10), ('윤종신', '여름',15), ('김범수', '가을', 25), ('김범수', '봄', 3), ('김범수','봄', 37), ('윤종신','겨울', 40), ('김범수', '여름', 14), ('김범수', '겨울', 22), ('윤종신', '여름', 64); select *from pivotTest; 사람 이름별로 기준을 나눠보면 SEL..

Join 두 개 이상의 테이블을 서로 묶어서 하나의 결과 집합으로 만들어 내는 것. 일대다 관계란, 김범수 사용자의 예를 들면, 김범수는 회원가입 시에 KBS로 아이디를 지정했는데, 아이디 열이 Primary Key로 지정되어 있으므로, 타 사용자는 KBS 아이디를 쓸 수가 없게 된다. 이것이 일대다 관계에서 1에 해당. 구매 테이블(buytbl)을 살펴보면, 만약 구매 테이블의 아이디 열을 회원 테이블과 동일하게 Primary Key로 지정을 해버린다면?... Primary Key는 한 번만 들어갈 수 있으므로 사용자는 물건을 한 번 구매한 이휴에는 또 다시 물건을 살 수 없게 설정이 될 것이다. 그래서 회원 테이블의 아이디는 Primary Key로 설정된 것이며, 구매 테이블의 아이디는 Primary..

제어 흐름 함수 프로그램의 흐름을 제어함 IF (수식 , 참 , 거짓) – 수식이 참 또는 거짓인지 결과에 따라서 2 중 분기 • IFNULL(수식 1, 수식 2) – 수식 1 이 NULL 이 아니면 수식 1 이 반환 – 수식 1 이 NULL 이면 수식 2 가 반환 • NULLIF(수식 1, 수식 2) – 수식 1 과 수식 2 가 같으면 NULL 을 반환 – 다르면 수식 1 을 반환 -- 수식1이 NULL 이 아니면 수식1이 반환, 수식1이 NULL이면 수식2가 반환 SELECT IFNULL(NULL, '널이군요'), IFNULL(100, '널이군요'); -- 널이군요 / 100 출력 -- 수식1과 수식2가 같으면 NULL 반환, 다르면 수식1 반환 SELECT NULLIF(100, 100), NULLI..