목록Database (61)
코드 그라데이션
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으로 바꾸려면 왼쪽과 오른쪽 ..
피벗 : 한 열에 포함된 여러 값을 출력하고, 이를 여러 열로 변환하여 테이블 반환 식을 회전하고, 필요하면 집계까지 수행하는 것. 샘플 데이터 넣고 결과 출력하기 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..
UPDATE 기존에 입력되어 있는 값의 변경 전체 테이블의 내용을 변경하고 싶을 때는 WHERE을 생략하기도 함. -- where 절은 생략 가능하나, 생략 시에는 테이블의 전체 행의 내용이 변경됨. UPDATE testTbl4 SET Lname ='없음' WHERE Fname = 'kyoichi'; -- firstName이 kyoichi인 애의 lastName을 '없음'으로 바꾼다. -- 만약 이런 사고가 발생한 경우, ROLLBACK으로 시점 맞춰서 돌려야 한다. 물가를 1.5배 상승시키기 -- 물가 상승시키기 update buytbl SET price = price*1.5; DELETE FROM DELETE는 행 단위로 삭제 기본형 DELETE FROM 테이블명 WHERE 조건; -- DELETE는..
전체적인 설명 DML, DDL, DCL은 데이터베이스 관리 시스템(DBMS)에서 사용되는 SQL(Structured Query Language) 명령어의 종류 각각 데이터 조작 언어(DML, Data Manipulation Language), 데이터 정의 언어(DDL, Data Definition Language), 데이터 제어 언어(DCL, Data Control Language). 이들 명령어는 데이터베이스의 구조, 내용 및 접근 권한을 조작하는 데 사용된다. DML 데이터를 조작(선택, 삽입, 수정, 삭제) 구문이 사용되는 대상은 테이블의 행. 그러므로 DML을 사용하기 위해서는 꼭 그 이전에 테이블이 정의되어 있어야 한다. SELECT, INSERT, UPDATE, DELETE 트랜잭션이 발생하기..
[참고] 주석 만들기 -- 한줄 주석 /*여러줄 주석*/ 테이블 만들기 CREATE TABLE usertbl -- 회원 테이블 ( userID CHAR(8) NOT NULL PRIMARY KEY, -- 사용자 아이디(PK) name VARCHAR(10) NOT NULL, -- 이름 birthYear INT NOT NULL, -- 출생년도 addr CHAR(2) NOT NULL, -- 지역(경기,서울,경남 식으로 2글자만입력) mobile1CHAR(3), -- 휴대폰의 국번(011, 016, 017, 018, 019, 010 등) mobile2CHAR(8), -- 휴대폰의 나머지 전화번호(하이픈제외) height SMALLINT, -- 키 mDate DATE -- 회원 가입일 ); CREATE TABLE ..