MS SQL 자주 사용하고 자주 까먹는 쿼리 모음 a.k.a. 매번 찾기 귀찮은 Insert INSERT INTO 테이블 이름 (열1, 열2, ...) VALUES (값1, 값2 , ….) -- Example INSERT INTO table_name (col1, col2, ...) VALUES (3, 'value' , ….) Alter 컬럼 추가 ALTER TABLE 테이블명 ADD 컬럼명 데이터타입 속성 기본값 -- Example ALTER TABLE table_name ADD column_name CHAR(1) NOT NULL DEFAULT 'N' 컬럼 삭제 ALTER TABLE 테이블명 DROP COLUMN 컬럼명 -- Example ALTER TABLE table_name DROP COLUMN c..
제 1장. SQL 기본 ㅇ SQL 문장들의 종류 - As-Is : 비절차적 데이터 조작어(DML)는 사용자가 무슨(What) 데이터를 원하는 지만 명세- To-Be : 비절차적 데이터 조작어(DML)는 사용자가 무슨(What) 데이터를 원하는 지만을 명세하지만, 절차적 데이터 조작어(PL/SQL(오라클), T-SQL 등)는 어떻게(How) 데이터를 접근해야 하는지 명세ㅇ WHERE- FROM 절 다음에 위치- 비교 연산자- 문자, 숫자, 표현식- 비교 칼럼명 (JOIN 사용 시) ㅇ 연산자 ㅇ 연산자 우선순위1. 괄호로 묶은 연산2. 부정 연산자(NOT)3. 비교 연산자(=, >, >=, 다중행 함수 : 집계 함수, 그룹 함수, 윈도우 함수- 사용자 정의 함수 ㅇ DUAL 테이블 특성- 사용자 SYS가 ..
제 1장. 데이터 모델링의 이해 ㅇ 엔티티- 유무형 1. 유형 : 물리적 형태 (사원, 물품)2. 사건 : 업무 수행에 따라 발생 (주문, 창구)3. 개념 : 관리해야할 개념적 정보 (조직, 장소)- 발생 시점1. 기본/키 : 원래 존재하는 정보 (사원, 부서)2. 중심 : 업무에 있어 중요한 역할 (접수, 계약)3. 행위 : 두 개 이상의 부모 엔티티로부터 발생 (주문내역, 계약진행) ㅇ 엔티티 특징- 필요로 해야하는 정보- 유일한 식별자에 의해 식별 가능- 인스턴스의 집합 (두 개 이상)- 업무 프로세스에 의해 이용되어야 함- 속성이 있어야 함 (두 개 이상) -> 한 개의 속성은 한 개의 속성값- 다른 엔티티와 최소 한 개 이상의 관계 ㅇ 엔티티 이름 부여- 협업 용어- 약어 사용 X- 단수명사- ..
데이터 조작을 위한 주요 함수 정리 #. SQL 각각의 구문의 의미SELECT 컬럼명 --------------------- (5) 추출된 데이터들을 조회FROM 테이블명------------------- (1) 테이블을 가장 먼저 확인WHERE 테이블 조건 --------------- (2) 테이블에서 주어진 조건에 맞는 데이터들을 추출GROUP BY 컬럼명 -------------------- (3) 공통적인 데이터들끼리 묶어 그룹HAVING 그룹 조건 ----------------- (4) 주어진 주건에 맞는 그룹들을 추출 ORDER BY 컬럼명 -------------------- (6) 추출된 데이터들을 정렬 #. 날짜 관련 함수 (문자열을 날짜로 변경하기 위한 방법)to_char('2018/1..
쿼리 안에 또 다른 쿼리 - Sub Query SELECT col1, (SELECT ...) -- 스칼라 서브쿼리(Scalar Sub Query): 하나의 컬럼처럼 사용 (표현 용도) FROM (SELECT ...) -- 인라인 뷰(Inline View): 하나의 테이블처럼 사용 (테이블 대체 용도) WHERE col = (SELECT ...) -- 일반 서브쿼리: 하나의 변수(상수)처럼 사용 (서브쿼리의 결과에 따라 달라지는 조건절) 1) Inline view (인라인 뷰) 먼저, FROM 절에 사용하는 서브쿼리부터 살펴볼까요? 위의 설명처럼 인라인 뷰는 SELECT 절의 결과를 FROM 절에서 하나의 테이블처럼 사용하고 싶을 때 사용합니다. 기존 단일 쿼리로는 '테이블에서 각 부서별 최대 연봉' 까지..
여러 테이블의 데이터를 조회하기 - JOIN SQL 에서 Join 은 언제 사용할까요? group by 절을 설명할 때에도 한 번 언급하긴 했었는데, 여러 테이블로 나뉘어진 데이터를 조회하기 위해 사용한다고 생각하시면 될 것 같아요! 예를 들자면, 은행에는 대량의 고객 데이터가 있을 것입니다. 개인정보, 예금 정보, 적금 정보, 카드 실적 등등.. 다 분리가 되어있겠죠? 이런 데이터들을 하나의 테이블에 다 넣게되면, 데이터 조회 시 불필요한 데이터까지 모두 스캔되어버려 메모리 낭비를 초래하기 때문이죠. 고객의 카드 실적 정보만 보고싶은데, 적금 정보, 예금 정보, 개인정보 등등.. 까지 조회가 되버리죠. 그래서! 테이블들을 적절하게, 그리고 잘게 쪼개는 것도 중요합니다. 목적은 속도를 빠르게 하기 위함이..
SQL 구문 순서 SQL 구문의 순서는 먼저 다음과 같습니다. SELECT 컬럼명 --------------------- (5) FROM 테이블명 ------------------- (1) WHERE 테이블 조건 --------------- (2) GROUP BY 컬럼명 -------------------- (3) HAVING 그룹 조건 ----------------- (4) ORDER BY 컬럼명 -------------------- (6) SQL 의 여정을 시작해볼까요?! 1. FROM : SQL은 구문이 들어오면 테이블을 가장 먼저 확인합니다. 테이블이 없는데 다른 것들을 먼저 조회하면 헛수고니까요! 2. WHERE : 테이블명을 확인했으니, 테이블에서 주어진 조건에 맞는 데이터들을 추출해줍니다. ..
각 행을 그룹으로 묶기 - GROUP BY group by 는 공통적인 데이터별로 묶어서 연산처리를 하고싶을 때 사용합니다. 그렇게되면 그룹 별 하나의 결과값이 출력되겠죠? 쉽게 예를 들자면, 전체 회원 데이터에서 남-여 회원의 수, 나이대 별(20대-30대-40대) 회원 수 이럴 때, count 함수와 group by 를 함께 사용한답니다. 만약 회사에 3개의 '부서'가 있는데, '같은 부서'의 직원들끼리 묶어라. 라고 한다면 그룹이 3개 이므로 3개의 행이 출력됩니다. 여기서 '부서번호' 를 사용해서 같은 부서끼리 묶었으므로 (원래는 단일행이지만 group by 에 사용되었기 때문에) select 절에서 그룹함수와 같이 사용이 가능합니다. 하지만, group by 에 사용된 컬럼 이외의 컬럼은 단독으..