[SQL] DDL 과 DML 튜토리얼

김현수·2024년 1월 4일
0

sql

목록 보기
1/2


🖋️ DDL 과 DML


@ Oracle SQL
널리 사용되는 관계형 데이터베이스 관리 시스템인 
Oracle Database 에서 사용되는 SQL 버전

데이터 및 데이터베이스 구조를 관리하기 위해 
DDL(데이터 정의 언어)과 DML(데이터 조작 언어)을 모두 사용

  • DDL (데이터 정의 언어)

    • DB 구조를 정의하고 수정하는 데 사용
    • 일반적인 DDL 작업에는 테이블, 인덱스, 스키마와 같은
      DB 객체 생성, 변경, 삭제를 포함

    • CREATE (생성)
    // DB 생성
    CREATE DATABASE [데이터베이스 이름];

    // 직원 ID, 이름, 성, 이메일, 가입 날짜 열이 포함된 
    // 'Employees'라는 새 테이블을 생성
    CREATE TABLE Employees (
       EmployeeID NUMBER PRIMRAY KEY,
       FirstName VARCHAR2(50),
       LastName VARCHAR2(50),
       Email VARCHAR2(100),
       JoinDate DATE
    );
    
    // 반드시 사용하는 column 은 NOT NULL 
    CREATE ~~ (
       id INT(10) NOT NULL
    )
    
    // 중복여부 확인에는 UNIQUE
    CREATE TABLE [테이블명] (
         [컬럼명] [데이터형식] UNIQUE [제약조건]
    )
    
    // 각 테이블의 고유식별 column
    CREATE ~~ (
       PRIMARY KEY (id)
    )
    
    // 두 테이블을 연결
    CREATE ~~ (
       FOREIGN KEY (id) REFERENCES Table2(id)
    )

    • ALTER (변경)
    // 'Employees' 테이블에 새 열 'Salary' 추가
    ALTER TABLE Employees ADD Salary NUMBER;
    
    // 수정
    ALTER TABLE [테이블 이름]  
    MODIFY COLUMN [column이름] [해당 데이터타입];

    • DROP (삭제)
    // DB 삭제
    DROP DATABASE [데이터베이스 이름];

    // 'Employees' 테이블 삭제
    DROP TABLE Employees;

    • 날짜
    DATE - format YYYY-MM-DD
    DATETIME - format: YYYY-MM-DD HH:MI:SS
    SMALLDATETIME - format: YYYY-MM-DD HH:MI:SS
    TIMESTAMP - format: a unique number



  • DML (데이터 조작 언어)

    • DB 내의 데이터를 관리하는 데 사용
    • DB 테이블에서 데이터 선택, 삽입, 업데이트 및 삭제를 포함

    • INSERT (삽입)
    // 'Employees' 테이블에 새 레코드가 삽입
    INSERT INTO Employees (EmployeeID, FirstName, LastName, Email, JoinDate)
    VALUES (1, 'John', 'Doe', 'john.doe@example.com', TO_DATE('2021-01-15', 'YYYY-MM-DD'));

    • UPDATE (수정)
    // 'EmployeeID' 1인 직원의 급여 업데이트
    UPDATE Employees
    SET Salary = 50000
    WHERE EmployeeID = 1;

    • DELETE (삭제)
    // 'Employees' 테이블에서
    // 'EmployeeID'가 1인 직원의 기록이 삭제
    DELETE FROM Employees
    WHERE EmployeeID = 1;

    • SELECT (선택)
    // 'Employees' 테이블의 모든 레코드가 선택
    SELECT * FROM Employees;

    • SELECT (특정 데이터 선택)
    // 급여가 40000 이상인 직원의 이름과 성을 선택
    SELECT FirstName, LastName FROM Employees
    WHERE Salary > 40000;
    
    // And, Or, Not
    SELECT FirstName, LastName FROM Employees
    WHERE Salary > 40000 AND (FirstName = 'Kim' OR FirstName = 'Lee');
    
    // Order by
    SELECT column1, column2, ...
    FROM table_name
    ORDER BY column1, column2, ... ASC|DESC;
    
    // NULL (비어있지 않는 값)
    SELECT column_names
    FROM table_name 
    WHERE column_name IS NOT NULL;


# 활용

  • 합계 및 최대값

    집계 함수가 포함된 'GROUP BY'를 사용하여
    SQL DB 에 있는 데이터의 그룹화된 하위 집합에서 활용
SELECT Department, 
   AVG(Salary) AS AverageSalary, 
   SUM(Salary) AS TotalSalary,
   MAX(Salary) AS HighestSalary,
   COUNT(EmployeeID) AS TotalEmployees
   
FROM Employees
GROUP BY Department;
profile
일단 한다

0개의 댓글