[sql]제약조건, 데이터 삽입∙수정∙삭제
·
SQL
학생          : 학번(PK),    이름,        전화,   입학일 STUDENT     STID      STNAME PHONE INDATE🐲제약조건(CONSTRAINTS)TABLE 에 저장될 데이터에 조건을 부여하여 잘못된 DATA 입력되는 것을 방지 1. 주식별자 설정:기본키    PRIMARY KEY :NOT NULL+UNIQUE 기본적용, CREATE명령문 안에서 한번밖에 사용못함    CREATE TABLE 명령안에 한번만 사용가능 2. NOT NULL / NULL : 필수입력, 컬럼단위 제약조건(컬럼에만 적용됨) 3. UNIQUE :줄단위 중복방지 4. CHECK : 값의 범위 지정{DOMAIN(들어갈 수 있는 제약조건의 범위 ex)성별:남,여,모름) 제약조건} 5. FORE..
[SQL]테이블 생성, 삭제, 변경
·
SQL
🐲기본개념P (Primary Key): 해당 열이 기본 키임을 나타낸다. 기본 키는 테이블 내에서 각 행을 유일하게 식별하는 데 사용된다. 원칙은 수정이 가능하지만, 외래키로 설정(자식이 있을때)되있을 때는 수정 불가하다.U (Unique Key): 해당 열이 고유 키임을 나타낸다. 고유 키는 중복된 값을 허용하지 않지만, 기본 키와는 달리 NULL 값을 허용할 수 있다.F (Foreign Key): 해당 열이 외래 키임을 나타낸다. 외래 키는 다른 테이블의 기본 키를 참조하여 두 테이블 간의 관계를 형성한다.*: 해당 열에는 NOT NULL임을 의미한다. 필수입력해야하는 셀이다참고: https://inpa.tistory.com/entry/DB-%F0%9F%93%9A-%EB%8D%B0%EC%9D%B4%..
[sql]오라클 계정생성
·
SQL
🐲계정(ACCOUNT) 생성 : 본인 이니셜(ex:hgd)/1234 ORACLE 은 DATA(TABLE)를 계정이 관리하는 TABLESPACE 에 저장 ∴계정생성은 다른 DB(MSSQL,MYSQL, ...)의 CREATE DATABASE 와 같은 의미를 가진다.   -> DATABASE 파일에 보관 아래 코드를 명령 프롬프트나 windows powershell에 차례대로 입력sqlplus /nolog conn /as sysdba alter session SET "_ORACLE_SCRIPT"=true; create user hgd identified by 1234; grant CONNECT, RESOURCE to kyj; alter user hgd default tablespace users quota ..
정규화(Normalization)
·
기타
🐲정규화(Normalization)는 데이터베이스 설계에서 데이터의 중복을 줄이고 데이터 무결성을 높이기 위해 사용하는 과정입니다. 정규화는 데이터베이스의 구조를 체계적으로 개선하여, 데이터를 보호하고 중복된 데이터와 일관되지 않은 종속성을 제거하여 데이터의 삽입, 삭제, 수정 시 발생할 수 있는 이상 현상(anomaly)을 방지하는 것을 목표로 한다. 예를 들어, '고객 주소' 변경은 해당 데이터가 Customers 테이블에만 저장되고 데이터베이스의 다른 테이블에는 저장되지 않으면 구현하기가 더 쉽다.정규화는 여러 단계로 나뉘며, 각 단계는 정규형(Normal Form)으로 정의된다. 🐲 정규화의 목적데이터 중복 최소화: 중복된 데이터는 디스크 공간을 낭비하고 유지 관리 문제를 일으키므로 동일한 데..
[SQL]WINDOW FUNCTION(윈도우 함수),분석함수(Analytic Function)
·
SQL
윈도우 함수(Window Function)는 데이터 집합의 각 행에 대해 계산을 수행하면서도, 전체 결과 집합에 대한 집계 결과를 제공하는 함수이다. 즉, 그룹화된 결과가 아닌, 원래의 데이터와 함께 결과를 제공한다. OVER() 절을 사용하여 특정 범위(윈도우)를 정의하고, 그 범위 내에서 계산을 수행한다.주요 특징행 유지: 윈도우 함수는 결과 집합의 각 행을 유지하면서 계산을 수행하고 집계 결과를 추가한다.프레임 정의: OVER() 절을 사용하여 어떤 행을 기준으로 계산할지를 정의할 수 있다. 이 절 안에서 PARTITION BY와 ORDER BY를 사용하여 데이터의 구분과 정렬을 설정할 수 있다.다양한 함수 지원: SUM, AVG, COUNT, RANK, ROW_NUMBER 등 다양한 집계 및 분석..
[sql] 계층형 쿼리(Hierarchical Query)
·
SQL
계층형 쿼리(Hierarchical Query)는 데이터베이스에서 부모-자식 관계를 가진 데이터를 조회할 때 사용하는 쿼리입니다. 주로 조직도, 파일 시스템, 제품 카테고리 등과 같이 계층 구조로 구성된 데이터를 다룰 때 유용하다. 🐲 주요 개념 부모-자식 관계: 각 데이터 항목은 부모와 자식 항목을 가질 수 있으며, 이를 통해 트리 구조를 형성한다. 루트 노드: 계층 구조의 최상위 노드를 의미한다. Leaf 노드: 자식이 없는 노드를 의미한다. 🐲주요 예약어START WITH: 계층 구조의 루트 노드를 지정한다.CONNECT BY: 계층형 쿼리를 작성해 부모와 자식 간의 관계를 정의합니다. PRIOR 키워드를 사용한다.PRIOR: 이전 단계의 값을 참조하는 데 사용된다.LEVEL: 긱 노드의 깊이를..
[SQL] 집합 연산자(UNION, UNION ALL, INTERSECT, MINUS),INLINE VIEW
·
SQL
집합연산자두 개 이상의 SELECT 쿼리의 결과를 결합하여 하나의 결과 집합을 생성하는 데 사용된다. 주로 다음과 같은 연산자가 있다. 줄단위의 결합을 하며 두 테이블의 칼럼수와 타입이 동일해야 한다.UNION두 개 이상의 SELECT 쿼리 결과를 결합하여 중복된 행을 제거한 결과를 반환한다. =>합집합 EX)두 부서 모두 출력하는데 A대학 나온사람들을 중복시 한 번만 출력함.UNION ALL두 개 이상의 SELECT 쿼리 결과를 결합하되, 중복된 행도 포함하여 반환한다. =>합집합+교집합EX)두 부서 모두출력하는데 A대학 나온사람들을 두 번 출력하게 됨+INTERSECT두 개의 SELECT 쿼리에서 공통으로 나타나는 행만 반환한다. =>교집합EX)두 부서에서 A 대학을 나온사람들을 출력함.MINUS첫 ..
[sql]JOIN, ANSI JOIN
·
SQL
SQL의 JOIN은 두 개 이상의 테이블을 결합하여 관련된 데이터를 조회하는 방법이다. JOIN을 사용하면 서로 다른 테이블에 저장된 정보를 연결하여 보다 유용한 데이터를 생성할 수 있다.  내부조인(INNER JOIN)SELECT EMPLOYEE_ID 직원번호, DEPARTMENT_NAME 부서명FROM EMPLOYEES, DEPARTMENTS ;비교 조건이 없어서 모든 직원을 모든 부서와 연결하여 출력한다.SELECT EMPLOYEE_ID 직원번호, DEPARTMENT_NAME 부서명 FROM EMPLOYEES, DEPARTMENTSWHERE DEPARTMENT_ID=60; ⚠️ORA-00918: 열의 정의가 애매합니다 00918. 00000 -  "column ambiguou..
[sql] 그룹 쿼리 (group query)와 서브쿼리(sub query)
·
SQL
그룹쿼리(GROUP QUERY)그룹 쿼리는 데이터를 특정 컬럼을 기준으로 그룹화하고, 각 그룹에 대한 집계 함수를 사용하여 요약 정보를 생성한다.집계함수집계함수란 대상 데이터를 특정 그룹으로 묶은 다음 이 그룹에 대해 총합, 평균, 최댓값, 최솟값 등을 구하는 함수를 말한다.① COUNT (expr)📍COUNT는 쿼리 결과 건수, 즉 전체 행의 개수를 반환하는 집계 함수다. 테이블 전체는 물론 WHERE 조건으로 걸러진 행의 개수를 반환한다. COUNT(*)=107 📍COUNT 함수는 매개변수로 들어오는 expr이 NULL이 아닌 건에 대해서만 행의 개수를 반환한다.  COUNT(DEPARTMENT_ID)=>106 COUNT(DISTINCT DEPARTMENT_ID)=>11 DISTINT DEPART..
[SQL] 함수
·
SQL
SELECT 함수FROM DUAL; SQL의 함수 : 데이터베이스에서 데이터를 처리하고 조작하는 데 사용되는 내장 또는 사용자 정의 함수.SQL 함수는 특정 작업을 수행하고 결과를 반환하는 독립적인 블록으로, 주로 다음과 같은 종류로 나눌 수 있다.이때, 한 개 결과가 출력되는 가상테이블 필요하다 =>(DUAL)(DUAL 은 출력을 위한 한칸의 공간 숫자함수① ABS(n)📍ABS 함수는 매개변수로 숫자를 받아 그 절대값을 반환하는 함수  ABS(10) = ABS(-10) = ABS(-10.123)=>10② CEIL(n)과 FLOOR(n)📍CEIL 함수는 매개변수 n 이상이면서 가장 작은 정수를 반환CEIL(10.123) => 11CEIL(-10.123) => -10📍FLOOR 함수는 CEIL 함수와..