728x90

분류 전체보기 224

[SQL] With문 - With문 활용, 재귀 쿼리

With문의 활용 With문을 활용함으로써 Select문의 결과를 임시 집합으로 저장해두고 SQL문에서 마치 테이블처럼 해당 집합을 불러올 수 있다 ---------- # WITH WITH TMP1 AS ( -- WITH문을 이용해서 해당 집합을 TMP1으로 지정하고 SELECT -- 아래 SELECT문에서 TMP1을 조회 FILM_ID , TITLE , (CASE WHEN LENGTH = 30 AND LENGTH 90 THEN 'LONG' END) LENGTH FROM FILM ) SELECT * FROM TMP1; ; 재귀 쿼리 재귀 쿼리란 데이터 값 기준 부모 자식간의 관계를 표현하는 ..

Data/Sql 2023.06.19

[SQL] 제약조건 - 기본키, 외래키, Check, Unique, Not Null

기본키 - 메인 기본키는 테이블 내에서 유일한 값이어야하고 NOT NULL이어야 한다 테이블 내에서 반드시 존재해야하는 실체 무결성에 대한 제약 ---------- # 기본키 생성 CREATE TABLE TB_PRODUCT_PK_TEST ( PRODUCT_NO INTEGER , DESCRIPTION TEXT , PRODUCT_COST NUMERIC ); ALTER TABLE TB_PRODUCT_PK_TEST ADD PRIMARY KEY (PRODUCT_NO); ---------- # 기본키 생성 + AUTOINCREMENT ALTER TABLE TB_PRODUCT_PK_TEST_2 -- AUTOINCREMENT로 기본키를 생성하면 ADD COLUMN ID SERIAL PRIMARY KEY; -- 기본키 ..

Data/Sql 2023.06.19

[SQL] 데이터 타입 - Boolean, Char/Varchar/Text, Numeric, Integer, Serial, Date/Time/Timestamp

데이터 타입 종류 Boolean: 참과 거짓 Character: 문자 CHAR: 고정형 길이의 문자열. (ex. CHAR(10) 'ABCDE ' 뒤에 공백을 붙여 저장) VARCHAR: 가변형 길이의 문자열. (ex. CHAR(10) 'ABCDE'만 저장) TEXT: 대용량의 문자데이터 Numeric: 숫자 INT: 정수형 데이터. 크기는 4BYTE로 범위는 -2,147,483,648 ~2,147,483,647. SMALLINT: 정수형 데이터. 크기는 2BYTE로 -32,768 ~ 32,767. FLOAT: 부동 소수점의 데이터.크기는 8BYTE. NUMERIC: NUMERIC(15,2)와 같이 전체 크기와 소수점의 자리를 지정 Time DATE: 일자 데이터 TIME: 시간 데이터 TIMESTAMP:..

Data/Sql 2023.06.19

[SQL] 테이블 관리 - 테이블 및 컬럼 생성/변경, CTAS, Truncate

테이블 생성 테이블 생성시 컬럼 제약 조건 NOT NULL: 해당 컬럼은 NULL이 저장될수 없다 UNIQUE: 해당 컬럼의 값은 테이블 내에서 유일해야 한다 PRIMARY KEY: 해당 컬럼의 값은 테이블내에서 유일해야 하고 반드시 NOTNULL이어야 한다 CHECK: 해당 컬럼은 지정하는 조건에 맞는 값이 들어가야 한다. REFERENCES: 해당 컬럼의 값은 참조하는 테이블의 특정 컬럼에 값이 존재해야 한다 ---------- # 테이블 생성 CREATE TABLE ACCOUNT_ROLE ( USER_ID INTEGER NOT NULL , ROLE_ID INTEGER NOT NULL , GRANT_DATE TIMESTAMP WITHOUT TIME ZONE , PRIMARY KEY (USER_ID, ..

Data/Sql 2023.06.19

[SQL] 데이터 조작 - Insert, Update, UpdateJoin, Delete, Upsert, Export, Import

Insert - 삽입테이블 안에 데이터 삽입---------- # INSERT INSERT INTO LINK (URL, NAME)VALUES ('http://naver.com','Naver');---------- # 작은따옴표 자체를 데이터로 입력INSERT INTO LINK (URL, NAME)VALUES ('''http://naver.com''','''Naver''');---------- # 동시에 N개 로우 입력INSERT INTO LINK (URL, NAME)VALUES ('http://www.google.com','Google'), ('http://www.yahoo.com','Yahoo'), ('http://www.bing.com','Bing');---------- # 테이블을 테이블..

Data/Sql 2023.06.19

[SQL] 서브쿼리 - Any, All, Exists

서브쿼리(Subquery)란? 서브쿼리란 SQL문에서 메인 쿼리가 아닌 하위에 존재하는 쿼리다 위치에 따라 Select절/From절/Where절로 나뉜다 SELECT col1, (SELECT ...) -- 스칼라 서브쿼리: 하나의 컬럼처럼 사용 FROM (SELECT ...) -- 인라인 뷰: 하나의 테이블처럼 사용 WHERE col = (SELECT ...) -- 일반 서브쿼리 일반 서브쿼리 보통 Where절 안에서 서브쿼리의 결과에 따라 달라지는 하나의 상수처럼 사용 ---------- # 평균 구하기 SELECT AVG(RENTAL_RATE) FROM FILM ; ---------- # 평균보다 큰 RENTAL_RATE집합 구하기 SELECT FILM_ID , TITLE , RENTAL_RATE F..

Data/Sql 2023.06.19

[SQL] 집합 연산자 - Union, UnionAll, Intersect, Except

Union - 결합 두 개 이상의 Select문의 결과를 결합하며, 결합시 중복된 데이터는 제거된다. ---------- # Union SELECT * FROM SALES2007_1 UNION SELECT * FROM SALES2007_2 ; ---------- # Union + Order By SELECT * FROM SALES2007_1 UNION SELECT * FROM SALES2007_2 ORDER BY AMOUNT DESC ; Union All 두 개 이상의 Select문의 결과를 결합하며, 결합시 중복된 데이터도 모두 출력된다. ---------- # Union All + Order By SELECT * FROM SALES2007_1 UNION ALL SELECT * FROM SALES200..

Data/Sql 2023.06.19

[SQL] 분석 함수 - Avg, Row_Number, Rank, Dense_Rank, First/Last_Value, Lag, Lead

분석함수란? 분석 함수란 특정 집합 내에서 결과 건수의 변화 없이 해당 집합안에서 합계 및 카운트 등을 계산할 수 있는 함수 AVG - 평균 특정 집합 내에서 결과 건수의 변화 없이 해당 집합안에서 특정 컬럼의 평균을 구하는 함수 SELECT AVG (PRICE) -- PRICE컬럼의 평균값 FROM PRODUCT ; ---------- # AVG + Group By SELECT B.GROUP_NAME , AVG (PRICE) FROM PRODUCT A INNER JOIN PRODUCT_GROUP B ON (A.GROUP_ID = B.GROUP_ID) GROUP BY B.GROUP_NAME ; ---------- # AVG SELECT A.PRODUCT_NAME , A.PRICE , B.GROUP_NAM..

Data/Sql 2023.06.19
728x90