728x90

Data 67

[SQLD] 관리구문 - DML, DDL, DCL, TCL

DMLDML이란? DML은 Data Manipulation Language란 의미로, DDL에서 정의한 대로 데이터를 입력하고, 입력된 데이터를 수정, 삭제, 조회하는 명령어이다.INSERT테이블에 데이터를 입력하는 명령어INSERT INTO 테이블명 (컬럼명, 컬럼명2) VALUES (데이터1, 데이터2);INSERT INTO 테이블명 VALUES (전체 컬럼에 입력될 데이터 리스트);명시되지 않은 컬럼에는 NULL 값이 입력되는데, PK와 같이 NOT NULL 제약조건이 걸린 컬럼에는 NULL 값이 입력될 수 없으니 주의해야 한다.전체 컬럼에 대한 데이터가 테이블의 컬럼 순서대로 빠짐없이 나열되어야 하는데, 순서가 바뀌어 데이터 유형이 맞지 않거나 누락된 데이터가 생기지 않도록 주의해야 한다.UPDA..

Data/Sql 2024.05.24

[SQLD] SQL 활용 - 서브쿼리, 뷰, 집합연산자, 그룹함수, 윈도우함수, Top-N 쿼리, 계층쿼리

서브쿼리(Subquery)서브쿼리란 하나의 쿼리 안에 존재하는 또 다른 쿼리이다.SELECT 절 : 스칼라 서브 쿼리(Scalar Subquery). 주로 SELECT 절에 위치하지만 컬럼이 올 수 있는 대부분 위치에 사용할 수 있다. 컬럼 대신 사용되므로 반드시 하나의 값만 반환해야 하며 그렇지 않은 경우 에러를 발생시킨다.FROM 절 : 인라인 뷰(Inline View) - FROM 절 등 테이블 명이 올 수 있는 위치에 사용 가능하다.WHERE 절, HAVING 절 : 중첩 서브쿼리(Nested Subquery)중첩 서브쿼리 분류메인쿼리와의 관계에 따른 분류비연관 서브쿼리 : 서브쿼리 내에 메인쿼리의 컬럼이 존재하지 않는다.연관 서브쿼리 : 서브쿼리 내에 메인쿼리의 컬럼이 존재한다.반환하는 데이터 ..

Data/Sql 2024.05.23

[SQLD] SQL 기본 - Select, Where, Group by, Order by, Join, 함수들

관계형 데이터베이스란?RDB라고 불리는 관계형 데이터베이스는 말 그대로 관계형 데이터 모델에 기초를 둔 데이터베이스이다.관계형 데이터베이스에서의 설계는 모든 데이터를 2차원 테이블 형태로 표현한 뒤 각 테이블 간의 관계를 정의하는 것으로 시작된다.RDBMS는 이러한 RDB를 관리 및 감독하기 위한 시스템이다.Oracle, SQL Server(MMSQL), MySQL, MariaDB, PostgreSQL 등이 이에 속한다.TABLE관계형 데이터베이스는 모든 데이터를 2차원 테이블 형태로 표현한다.세로 열을 컬럼(Column)이라고 하고, 가로 행을 로우(Row)라고 한다.테이블은 관계형 데이터베이스의 기본 단위이고 일반적으로 데이터베이스는 여러 개의 테이블로 구성된다.SQLSQL은 관계형 데이터베이스에서 ..

Data/Sql 2024.05.23

[SQLD] 데이터 모델과 SQL - 정규화, 반정규화, 트랜잭션, NULL

정규화(Normalization)란?데이터의 정합성(데이터의 정확성과 일관성을 유지하고 보장)을 위해 엔터티를 작은 단위로 분리하는 과정이다.정규화를 할 경우 데이터 조회성능은 처리조건에 따라 향상되는 경우도 있고 저하되는 경우도 있지만, 입력, 수정, 삭제 성능은 일반적으로 향상된다고 볼 수 있다.적잘한 정규화는 성능상 이롭지만 지나친 정규화는 오히려 성능 저하를 일으킬 수 있다.제1정규형모든 속성은 반드시 하나의 값만 가진다.유사한 속성이 반복되는 경우도 1차 정규화의 대상이 된다.원자값이 아닌 도메인을 분해한다.제2정규형엔터티의 모든 일반속성은 반드시 모든 주식별자에 종속되어야 한다.주식별자가 단일식별자가 아닌 복합식별자인 경우 일반속성이 주식별자의 일부에만 종속될 수 있는데 이런 경우 2차 정규화..

Data/Sql 2024.05.23

[SQLD] 데이터 모델링의 이해 - ERD, 엔티티, 속성, 관계, 식별자

모델링(Modeling)이란? 데이터베이스의 모델링은 ‘현실 세계를 단순화하여 표현하는 기법’이다.모델링이 갖춰야 할 조건현실 세계를 반영해야 한다.단순화하여 표현해야 한다.관리하고자 하는 데이터를 모델로 설계한다.모델링의 특징추상화(Abstraction) : 현실 세계를 일정한 형식으로 표현한 것, 아이디어나 개념을 간략하게 표현하는 과정단순화(Simplification) : 복잡한 현실 세계를 정해진 표기법으로 단순하고 쉽게 표현하는 과정명확화(Clarity) : 불분명함을 제거하고 명확하게 해석할 수 있도록 기술하는 과정모델링의 세 가지 관점데이터 관점 : 어떤 데이터들이 업무와 얽혀있는지, 그리고 그 데이터 간에는 어떤 관계가 있는지에 대해서 모델링 하는 방법프로세스 관점 : 이 업무가 실제로 처..

Data/Sql 2024.05.23

[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
728x90