"2018 sql 워크샵"의 두 판 사이의 차이

DH 교육용 위키
이동: 둘러보기, 검색
(JOIN(inner join/교집합) 구문 활용하기)
(=JOIN(left join/차집합) 구문 활용하기)
28번째 줄: 28번째 줄:
 
*이혜영이 담당한 콘텐츠<br/><span style="color:green">SELECT 캐릭터.콘텐츠 FROM 캐릭터 INNER JOIN 인물 ON 인물.식별자=캐릭터.인물 WHERE 인물.담당자='이혜영'</span>
 
*이혜영이 담당한 콘텐츠<br/><span style="color:green">SELECT 캐릭터.콘텐츠 FROM 캐릭터 INNER JOIN 인물 ON 인물.식별자=캐릭터.인물 WHERE 인물.담당자='이혜영'</span>
 
*성별이 여자인 역사인물<br/><span style="color:green">SELECT 캐릭터.인물 FROM 캐릭터 INNER JOIN 인물 ON 인물.식별자=캐릭터.인물 join 연기자 on 연기자.식별자=캐릭터.연기자 WHERE 연기자.성별='여'</span>
 
*성별이 여자인 역사인물<br/><span style="color:green">SELECT 캐릭터.인물 FROM 캐릭터 INNER JOIN 인물 ON 인물.식별자=캐릭터.인물 join 연기자 on 연기자.식별자=캐릭터.연기자 WHERE 연기자.성별='여'</span>
===JOIN(left join/차집합) 구문 활용하기==
+
!--
 +
===JOIN(left join/차집합) 구문 활용하기===
 
<span style="color:red">데이터의 오류를 확인할 때 주로 사용</span>
 
<span style="color:red">데이터의 오류를 확인할 때 주로 사용</span>
 
  '''SELECT * FROM tableA LEFT JOIN tableB ON tableA.column = tableB.column WHERE tableB.column IS NULL'''
 
  '''SELECT * FROM tableA LEFT JOIN tableB ON tableA.column = tableB.column WHERE tableB.column IS NULL'''
 
*캐릭터 테이블과 연결되지 않는 인물<br/><span style="color:green">SELECT * FROM 캐릭터 LEFT JOIN 인물 ON 인물.식별자 = 캐릭터.인물 WHERE 인물.식별자 IS NULL</span>
 
*캐릭터 테이블과 연결되지 않는 인물<br/><span style="color:green">SELECT * FROM 캐릭터 LEFT JOIN 인물 ON 인물.식별자 = 캐릭터.인물 WHERE 인물.식별자 IS NULL</span>
 +
-->

2018년 8월 16일 (목) 14:01 판

데이터 수정(Modify)

행(law 기준)

INSERT : 데이터 추가하기

INSERT INTO table (column1, column2, ...) VALUES ( value1, value2)
  • INSERT INTO 인물 (식별자, 이름, 생년, 시대) VALUES ('이혜영', '이혜영', 1993, '현대')
  • INSERT INTO 인물 (식별자, 이름, 생년, 시대) VALUES ('김현규', '김현규', 1990, '현대'), ('김선미','김선미', 1990, '현대')

DELETE : 데이터 삭제하기

DELETE FROM table_name WHERE condition
조건을 지정하지 않으면 모든 데이터가 삭제되니 주의할 것!
  • DELETE FROM 인물 WHERE 식별자 = '이혜영'
  • DELETE FROM 인물 WHERE 시대 = '현대'

열(column 기준)

UPDATE : 데이터 수정하기

UPDATE table_name SET column1 = value1, column2 = value2, ... WHERE condition
조건을 지정하지 않으면 한 칼럼의 데이터값이 모두 변경되니 주의할 것
  • UPDATE 콘텐츠 SET 이름 = '나는 왕이로소이다' where 식별자 = '나는왕이로소이다'
  • UPDATE 콘텐츠 SET 제작사 = null WHERE 제작사 = 'NULL'
  • UPDATE 콘텐츠 SET 방송사 = null, 홈페이지 = null WHERE 방송사 = 'NULL' or 홈페이지 = 'NULL'

관련있는 테이블 함께 보기

WHERE 조건 활용하기

SELECT tableA.column, tableB.column FROM tableA,tableB WHERE tableA.column1 = tableB.column1
  • 조선시대 인물들이 등장하는 콘텐츠(조선시대가 배경인 콘텐츠)
    SELECT 캐릭터.콘텐츠 FROM 캐릭터, 인물 WHERE 인물.식별자=캐릭터.인물 and 인물.시대='조선시대'
  • 이혜영이 담당한 콘텐츠
    SELECT 캐릭터.콘텐츠 FROM 캐릭터, 인물 WHERE 인물.식별자=캐릭터.인물 and 인물.담당자='이혜영'

JOIN(inner join/교집합) 구문 활용하기

SELECT tableA.column, tableB.column FROM tableA INNER JOIN tableB ON tableA.column1 = tableB.column1
  • 조선시대 인물들이 등장하는 콘텐츠(조선시대가 배경인 콘텐츠)
    SELECT 캐릭터.콘텐츠 FROM 캐릭터 INNER JOIN 인물 on 인물.식별자=캐릭터.인물 WHERE 인물.시대='조선시대'
  • 이혜영이 담당한 콘텐츠
    SELECT 캐릭터.콘텐츠 FROM 캐릭터 INNER JOIN 인물 ON 인물.식별자=캐릭터.인물 WHERE 인물.담당자='이혜영'
  • 성별이 여자인 역사인물
    SELECT 캐릭터.인물 FROM 캐릭터 INNER JOIN 인물 ON 인물.식별자=캐릭터.인물 join 연기자 on 연기자.식별자=캐릭터.연기자 WHERE 연기자.성별='여'

!--

JOIN(left join/차집합) 구문 활용하기

데이터의 오류를 확인할 때 주로 사용

SELECT * FROM tableA LEFT JOIN tableB ON tableA.column = tableB.column WHERE tableB.column IS NULL
  • 캐릭터 테이블과 연결되지 않는 인물
    SELECT * FROM 캐릭터 LEFT JOIN 인물 ON 인물.식별자 = 캐릭터.인물 WHERE 인물.식별자 IS NULL

-->