자체 조인 자기 자체 테이블을 조인해 오는 것. 예를 들어 사원들 있는데, 직속상사도 적으면 그거 가져올 수 있다. select a.emp "직원", b.emp "직속상관", "직속상관 연락처" from emptbl a inner join emptbl b on a.manager =b.emp where a.emp = "대표"; 이런 식으로 자기 테이블을 join 해서 가져온다 DB 2023.11.03
상호조인 select * from buy, member; 이게 상호 조인이다. select * from buy cross join member; 이거랑 똑같다. 상호 조인은 on을 사용할 수 없다. 그리고 이렇게 나온 결과값은 사실 의미가 없다. 그냥 이런 식의 결과가 나온다. DB 2023.11.03
외부 join 내부 조인은 두 테이블 모두 데이터가 있어야만 결과가 나왔다. 이와 달리 외부 조인은 한 쪽에만 있어도 결과를 준다. 단 null로 가져옴. 먼저 inner 조인 select * from buy b inner join member m on b.mem_id = m.mem_id; 그 다음 outer join select * from member m left outer join buy b on m.mem_id = b.mem_id; member를 다 가져오는데, 그 중 buy에 기록이 없는 mem_id도 있음. 참고로, select * from buy b left outer join member m on m.mem_id = b.mem_id; select * from member m left outer join .. DB 2023.11.02
join 두개의 테이블 묶어서 하나의 결과를 만들어 내는 것 보통 내부 조인 많이 씀. 일대다 예를 들면 프로 축구팀 일이 팀이고 다가 선수 맨유에 여러 선수들 맨유가 일, 선수가 다 일반적으로 조인은 내부조인을 말함. 조인은 3개 이상 할 수 있지만 대부분 2개 테이블 조인 보통 다 쪽이 외래키를 가짐. select * from 테이블 inner join 추가로가져올테이블 on 조건 where 조건 select * from buy b inner join member m on b.mem_id = m.mem_id; select 가져올곳 from 테이블명 inner join 추가로가져올테이블 on 조건 where도 쓸 수 있음. select * from buy b inner join member m on b.mem_.. DB 2023.11.02
변수 변수 선언해서 값 넣기 set @변수명 = 값; 변수 값 가져오기 select @변수명; select @변수명 + @변수명2; 테이블이랑 같이 쓰기 select @txt, name from member; DB 2023.11.02
외래키 CREATE TABLE Orders ( orderid INTEGER PRIMARY KEY, custid INTEGER , bookid INTEGER , saleprice INTEGER , orderdate DATE, FOREIGN KEY (custid) REFERENCES Customer(custid), FOREIGN KEY (bookid) REFERENCES Book(bookid) ); foreign key(내테이블의열이름) references 참조할테이블(참조테이블의열이름) 이렇게 하면 외래키로 등록이 된다. 외래키를 등록하지 않아도 join하고자 하는 테이블을 참조할 수 있다. 근데 외래키를 등록하는 이유는 무결성 때문에 그렇다. 그러니까, 외래키는 저렇게 보통 다른 테이블 열의 id와 맞추는데, .. DB 2023.10.26
뷰, 인덱스, 스토어드 프로시저, 트리거 인덱스 create index idx_member_name on member (member_name); 뷰 create view member_view as select * from member; select * from member_view 로 뷰 조회 가능 프로시저 delimiter // create procedure myProc() begin select * from member where member_name = '나훈아'; select * from product where product_name = '삼각김밥'; end // delimiter ; 생성 SQL에선 //가 주석이 아님 call myProc(); 사용 DB 2023.10.20