Chapter 2. 이제 알고 시작하자! SQL 기본 상식<목차> 3강. SQL이란? 4강.SQL 필수 상식: 용어, 구조 알아보기Chapter 3. 데이터 안녕? SQL 기본 구문 외우기<목차> 5강, Select: 컬럼 선택 6강, Select: 컬럼 제어 7강. where: 좋아하는 행을 나타내는 베스트 8.And/Or/Not: 원하는 행을 선택하는 9강. 실전 데이터 분석 – 우리집 주변은 안전할까?-13강 SQL이란?SQL 명령 종류 데이터 정의어 DL – 데이터와 그 구조를 정의하는 언어 → 이 코스는 DDL에 집중하여 강의함 CREATE, DROP, ALTER, RENAME, TRUNCATE 데이터 조작어 DL – 데이터 조작 시 사용하는 언어 SELECT, INSERT, UPDATE, DELETE 데이터 제어어 DCL – 데이터베이스 접근 권한 부여/제거 기능 GRANT, REVOKESQL을 배워야 할 이유가 없는 비절차적 언어, DB 내 데이터 조작 필수데이터 구성테이블:관련된 레코드의 컬렉션에서 행과 열에서 되는 열(column, 속성):테이블을 구성하는 각각의 정보에서 고유의 데이터 형식이 지정되는 행(row항목):레코드와 표현할 수도 있고 각 항목의 개별 값이 저장되는 정보:유형 무형의 데이터를 통계와 분석 작업을 거치고 유저가 필요한 형태로 한 것 예)성별에 따른 상품 구입 빈도, 연령별 관심 상품 목록 인덱스:데이터베이스를 재빠르게 조작하기 위한 인덱스 표 또는 태그 기본 키와 외래 키:데이터베이스 내의 키는 무언가를 식별하는 고유 식별자로 기능합니다. 기본 키:1개의 키로 최소성과 유일성을 충족 대상 테이블에 1개만 지정 가능한 기본 키 테이블 내에서 유일하게들을 구별할 수 있게 사용됩니다. 기본 키는 NULL값과의 중복을 허용하지 않는 예) 다른 사람이 내 주민 번호와 동일하게 할 수 없습니다. 외부 키:테이블 간의 데이터를 참조하고, 서로의 관계를 참조되는 열 값은 기보 참조되고 있을 필요가 있습니다외래 키의 예5강. Select: 컬럼 선택파일 가져오기:@C:\study_db지역별 설치 현황.sql;주석: – /*/SELECT * FROM employees; +ctrl + enter: employees의 모든 칼럼을 가져오시오원하는 열만을 출력하다문법은 대문자로, 자료는 소문자로 작성하는 것이 알기 쉽다.* SELECT에서 칼럼명을 입력할 때 엔터를 쳐서 칼럼명을 구별하는 것이 나중에 오류가 발생했을 때 파악하기 쉽다.* SQL은 문장을 완성할 때 세미콜론(;)을 작성해야 한다.기존 테이블에 칼럼을 추가로 가져오기<실습코드> @C:\study_db지역별 설치현황.sql;—/*절차를 지켜 SQL쓰기 SELECT 컬럼명 FROM 테이블명 WHEREGROUP BYHAVINGORDER BY*/SELECT *FROM 지역별 설치현황; SELECT *FROM 지역별 설치현황; SELECT 법정동코드, 번지주소, 전체카메라수 FROM 지역별 설치현황; SELECT employe_id, email, salary FROM employees; SELECT번지주소, 지역별 설치현황;6강. Select: 컬럼 제어테이블을 불러와 데이터를 확인하다SELECT job_id, department_id, salay 종업원으로부터;SELECT job_id, department_id, salay 종업원으로부터;jobid, department_id와도 중복되는 것을 확인할 수 있다.중복제거(distinct,unique)종업원으로부터 개별 job_id를 선택합니다; 종업원으로부터 고유의 job_id를 선택합니다;종업원으로부터 개별 job_id를 선택합니다; 종업원으로부터 고유의 job_id를 선택합니다;distinct,unique 두 결과가 같다jobid, departmentid 두 요소의 중복제거를 동시에 할 수 있다지역별 설치현황 시군구명 중복제거(첨부자료 이용)# 칼럼을 다른 이름으로 읽을 수 있는 세 가지 방법, 두 번째 방법이 가장 안전하다.SELECT distinct 시군구명 as 서울시구, 시군구명 as “시군구”, 시군구명 구 FROM 지역별 설치현황;# 칼럼을 다른 이름으로 읽을 수 있는 세 가지 방법, 두 번째 방법이 가장 안전하다.SELECT distinct 시군구명 as 서울시구, 시군구명 as “시군구”, 시군구명 구 FROM 지역별 설치현황;기존 칼럼명을 알기 쉽게 변경해 보자연결 연산자 | 를 이용하여 여러 칼럼을 하나의 칼럼에 맞출 수 있다.SELECT distinct 시도명 || ‘| 시군구명 as’ 시도명/시군구명’ FROM 지역별 설치 현황;SELECT distinct 시도명 || ‘| 시군구명 as’ 시도명/시군구명’ FROM 지역별 설치 현황;사칙 연산해 보다7강. where: 원하는 행을 나타낸다-숫자비교연산자, BETWEEN, LIKE함수where는 엑셀로 말하자면 filtering과 비슷하다고 생각하면 된다./* 7강 원하는 행을 나타내는 where 절의 이해 */* SQL 작성순서 SELECT 컬럼명 FROM 테이블명 WHERE 조건대상 컬럼명 연산자 비교치 */–숫자 비교 연산자 (=, >, >, <, <=, BETWEEN AND B) 그리고!=, <>,^= 모두 같지 않다는 뜻이다.사원 테이블 급여가 10000인 대상자 정보 전체 출력급여 = 10000인 종업원 중 *를 선택합니다;급여 = 10000인 종업원 중 *를 선택합니다;사원 테이블 급여가 10000이 아닌 대상자 정보 전체 출력* 급여가 있는 직원 중 선택 해 주세요!= 10000 ;* 급여가 있는 직원 중 선택 해 주세요!= 10000 ;사원 테이블 급여가 10000 이상, 15000 이하 대상자 정보 전체 출력LIKE 함수를 사용하여 특정 문자를 검색합니다.SELECT*FROM지역별설치현황WHERE번지주소LIKE ‘%성북%’SELECT*FROM지역별설치현황WHERE번지주소LIKE ‘%성북%’%성북:성북 앞에 어떤 것이 와도 상관없다, 마지막은 성북에서 끝나야 한다 %성북%:성북 전후에 어떤 것이 오든 상관없다, 서울에서 시작해야 한다는 의미의 8강.And/Or/Not : 원하는 행을 선택하는 복합 연산자인 AND와 OR, is nullAND / OR1) 급여가 10000보다 작고, 2) department_id가 아래 조건을 가진 데이터 찾기종업원으로부터 *를 선택 급여>=10000 AND(department_id = ’90’ 또는 department_id = ‘110’)종업원으로부터 *를 선택 급여>=10000 AND(department_id = ’90’ 또는 department_id = ‘110’)OR 조건이 쓸데없이 길어지면? IN을 사용하다# 예종업원 중 *를 선택급여 >= 10000 AND(department_id = ’90’ OR department_id = ‘110’ OR department_id = ‘120’)# 예종업원 중 *를 선택급여 >= 10000 AND(department_id = ’90’ OR department_id = ‘110’ OR department_id = ‘120’)종업원으로부터 *를 선택 급여 > = 10000 AND(부문 ID(’90’, ‘110’, ‘120’);종업원으로부터 *를 선택 급여 > = 10000 AND(부문 ID(’90’, ‘110’, ‘120’);IN과 반대되는 것으로는 NOTIN이 있다.기타 예AND와 AND종업원으로부터 *를 선택 여기서 (급여가 10000이상, 급여가 20000미만) 및 부문 ID (’30’, ‘110’);종업원으로부터 *를 선택 여기서 (급여가 10000이상, 급여가 20000미만) 및 부문 ID (’30’, ‘110’);is null()은 눌이 아닙니다.종업원으로부터 *를 선택 WHERE commission_pct는 늘입니다;종업원으로부터 *를 선택 WHERE commission_pct는 늘입니다;9강 실전 데이터 분석 – 우리집 주변은 안전한가?-1서울시에 비상벨 설치대수가 2개 이상 있어 유관기관과 연계된 마을SELECT 시군구명|| ‘동리명AS’서울시/구/동’, 전체 카메라수, 비상벨설치대수, 유관기관연계여부 FROM 지역별 설치현황 WHERE 비상벨설치대수>=2AND관련기관연계여부 = ‘Y’;SELECT 시군구명|| ‘동리명AS’서울시/구/동’, 전체 카메라수, 비상벨설치대수, 유관기관연계여부 FROM 지역별 설치현황 WHERE 비상벨설치대수>=2AND관련기관연계여부 = ‘Y’;SELECT 시군구명||동리명AS”서울시/구/동”, 전체카메라수, 비상벨설치대수, 유관기관연계여부 FROM지역별설치현황WHERE(시군구명|동리명)LIKE “%신림%”;* 주의: where를 입력할 때는 AS에서 붙인 이름을 넣으면 에러가 난다.쓰레기 단속 카메라가 0대 이상 설치된 번지 주소SELECT번지 주소, 쓰레기단속용, 생활방범용, 교통단속용 FROM 지역별 설치현황 WHERE 쓰레기단속용 > 0;SELECT번지 주소, 쓰레기단속용, 생활방범용, 교통단속용 FROM 지역별 설치현황 WHERE 쓰레기단속용 > 0;SELECT 번지 주소, 쓰레기 단속용, 생활방범용, 교통단속용 FROM 지역별 설치현황 WHERE (번지주소 LIKE ‘% 중랑구%’ OR 번지 주소 LIKE ‘% 성북구%’ ) AND 생활방범용 >=5;SELECT 번지 주소, 쓰레기 단속용, 생활방범용, 교통단속용 FROM 지역별 설치현황 WHERE (번지주소 LIKE ‘% 중랑구%’ OR 번지 주소 LIKE ‘% 성북구%’ ) AND 생활방범용 >=5;SELECT * FROM 지역별 설치현황 WHERE 시군구명 IN (‘용산구’강남구’) AND 전체카메라수 > 3AND 전체카메라수<=10;SELECT * FROM 지역별 설치현황 WHERE 시군구명 IN (‘용산구’강남구’) AND 전체카메라수 > 3AND 전체카메라수<=10;SELECT * FROM 지역별 설치현황 WHERE 시군구명 IN (‘용산구’강남구’) AND 전체카메라수 > 3AND 전체카메라수<=10;https://www.youtube.com/watch?v=NuJDpebggYw&pp=ygVAW-uyoOyWtOycoCDruaHqs7Xri6ggMjnquLBdIFNRTCDqsJXsnZgg66qw7JWE65Oj6riwICgz6rCVIH456rCVKQ%3D%3D