목록Database/Mega-MySQL (15)
코드 그라데이션
컬럼 만들기 test.sql (테이블이 만들어지는 상황) CREATE TABLE 사업주 (사업주번호 INT, 사업주명 VARCHAR(5), 지점명 VARCHAR(5)); CREATE TABLE 대리점 (지점명 VARCHAR(5) PRIMARY KEY, 도시 VARCHAR(2), 전화번호 VARCHAR(10), 종업원수 INT, 자본금 INT, 지점개설일 INT); 값 집어넣기 firstDB.java package database; import java.sql.Connection; import java.sql.DriverManager; import java.sql.PreparedStatement; import java.sql.SQLException; public class firstDB { private ..
뷰(VIEW) 뷰는 사용자 입장에서 테이블과 동일하게 사용하는 개체다. USE sqlDB; CREATE VIEW v_userbuytbl AS SELECT U.userid AS 'USER ID', U.name AS 'USER NAME', B.prodName AS 'PRODUCT NAME', U.addr, CONCAT(U.mobile1, U.mobile2) AS 'MOBILE PHONE' FROM usertbl U INNER JOIN buytbl B ON U.userid = B.userid; SELECT `USER ID`, `USER NAME` FROM v_userbuytbl; -- 주의! 백틱을 사용한다. ALTER VIEW v_userbuytbl AS SELECT U.userid AS '사용자 아이디',..
UNIQUE 제약 조건 중복되지 않는 유일한 값을 입력해야 하는 조건이다. PRIMARY KEY 와 거의 비슷하며 차이점은 UNIQUE 는 NULL 값을 허용한다는 점이다. NULL은 여러 개가 입력되어도 상관 없다. USE tableDB; DROP TABLE IF EXISTS buyTBL, userTBL; CREATE TABLE userTBL ( userID CHAR(8) NOT NULL PRIMARY KEY, name VARCHAR(10) NOT NULL, birthYear INT NOT NULL, email CHAR(30) NULL UNIQUE ); DROP TABLE IF EXISTS userTBL; ( userID CHAR(8) NOT NULL PRIMARY KEY, name VARCHAR(10..
외래 키 제약 조건(Foreign Key) 외래 키 제약 조건은 두 테이블 사이의 관계를 선언함으로써 데이터의 무결성을 보장해 주는 역할을 한다. 외래 키 관계를 설정하면 하나의 테이블이 다른 테이블에 의존하게 된다. 외래 키 테이블에 데이터를 입력할 때는 꼭 기준 테이블을 참조해서 입력하므로 기준 테이 DROP TABLE IF EXISTS buytbl, usertbl; CREATE TABLE usertbl ( userID CHAR(8) NOT NULL PRIMARY KEY, name VARCHAR(10) NOT NULL, birthYear INT NOT NULL, ); CREATE TABLE buytbl ( num int AUTO_INCREMENT PRIMARY KEY, userid CHAR(8) NO..
제약 조건(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으로 바꾸려면 왼쪽과 오른쪽 ..
피벗 : 한 열에 포함된 여러 값을 출력하고, 이를 여러 열로 변환하여 테이블 반환 식을 회전하고, 필요하면 집계까지 수행하는 것. 샘플 데이터 넣고 결과 출력하기 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..