CS/데이터베이스

[데이터베이스] 기본적인 SQL (데이터 조회,삽입,수정,삭제/테이블 생성,수정,삭제,제어)

Heeyeon Choi 2024. 10. 31. 21:27
728x90

1. 데이터 조회(DML): SELECT

  • SELECT: 테이블에서 데이터를 조회할 때 사용합니다.
  • WHERE: 조건에 맞는 데이터를 필터링합니다.
  • ORDER BY: 데이터를 정렬합니다.
  • GROUP BY: 특정 컬럼을 기준으로 데이터를 그룹화합니다.
  • HAVING: 그룹화된 데이터에 조건을 적용합니다.
  • JOIN: 여러 테이블에서 데이터를 결합하여 조회합니다.
-- 예시: 이름이 '홍길동'인 사람을 조회
SELECT * FROM 테이블명
WHERE 이름 = '홍길동';

-- 예시: 나이별로 그룹화하여, 나이별 평균 급여를 조회
SELECT 나이, AVG(급여) FROM 테이블명
GROUP BY 나이
HAVING AVG(급여) > 3000;

-- 예시: 나이순으로 오름차순 정렬하여 조회
SELECT * FROM 테이블명
ORDER BY 나이 ASC;

-- 예시: JOIN을 사용하여 두 테이블 결합
SELECT a.이름, b.부서명 
FROM 직원 AS a
JOIN 부서 AS b ON a.부서ID = b.부서ID;

 

2. 데이터 삽입(DML): INSERT

  • INSERT INTO: 테이블에 새로운 데이터를 삽입합니다.
  • VALUES: 삽입할 데이터 값을 지정합니다.
-- 예시: 새로운 직원 정보를 직원 테이블에 삽입
INSERT INTO 직원 (이름, 나이, 부서ID, 급여)
VALUES ('홍길동', 30, 1, 4000);

 

 

3. 데이터 수정(DML): UPDATE

  • UPDATE: 테이블에서 기존 데이터를 수정합니다.
  • SET: 수정할 컬럼과 값을 지정합니다.
  • WHERE: 특정 조건을 만족하는 데이터만 수정합니다.
-- 예시: 이름이 '홍길동'인 직원의 급여를 4500으로 수정
UPDATE 직원
SET 급여 = 4500
WHERE 이름 = '홍길동';

 

4. 데이터 삭제(DML): DELETE

  • DELETE FROM: 테이블에서 데이터를 삭제합니다.
  • WHERE: 특정 조건을 만족하는 데이터만 삭제합니다. (WHERE 절을 생략하면 테이블의 모든 데이터가 삭제됨에 유의)
-- 예시: 나이가 40 이상인 직원 삭제
DELETE FROM 직원
WHERE 나이 >= 40;

 

5. 테이블 생성(DDL): CREATE TABLE

  • CREATE TABLE: 새로운 테이블을 생성합니다.
  • 각 컬럼의 이름, 데이터 타입, 제약 조건을 정의할 수 있습니다.
-- 예시: 직원 테이블 생성
CREATE TABLE 직원 (
    직원ID INT PRIMARY KEY,
    이름 VARCHAR(50),
    나이 INT,
    부서ID INT,
    급여 DECIMAL(10, 2)
);

 

6. 테이블 수정(DDL): ALTER TABLE

  • ALTER TABLE: 테이블 구조를 수정할 때 사용합니다.
  • ADD: 컬럼을 추가합니다.
  • DROP: 컬럼을 삭제합니다.
  • MODIFY: 컬럼의 데이터 타입이나 제약 조건을 변경합니다.
 
-- 예시: 직원 테이블에 새로운 컬럼 추가
ALTER TABLE 직원
ADD 입사일 DATE;

-- 예시: 직원 테이블에서 나이 컬럼 삭제
ALTER TABLE 직원
DROP COLUMN 나이;

 

7. 테이블 삭제(DDL): DROP TABLE

  • DROP TABLE: 테이블과 그 안의 데이터를 완전히 삭제합니다.
-- 예시: 직원 테이블 삭제
DROP TABLE 직원;

 

8. 데이터 제어(DCL): 권한 부여 및 철회

  • GRANT: 사용자가 특정 테이블에 접근하거나 수정할 수 있는 권한을 부여합니다.
  • REVOKE: 사용자가 특정 테이블에 접근할 수 있는 권한을 취소합니다.
-- 예시: 사용자에게 직원 테이블에 대한 SELECT 권한 부여
GRANT SELECT ON 직원 TO 사용자명;

-- 예시: 사용자에게 직원 테이블에 대한 SELECT 권한 취소
REVOKE SELECT ON 직원 FROM 사용자명;

 

9. 트랜잭션 제어(DML): COMMIT, ROLLBACK

  • COMMIT: 트랜잭션의 변경 내용을 저장합니다.
  • ROLLBACK: 트랜잭션에서 변경한 내용을 취소하고 이전 상태로 되돌립니다.
-- 예시: 트랜잭션 시작, 데이터 수정 후 커밋
BEGIN;
UPDATE 직원 SET 급여 = 급여 * 1.1 WHERE 부서ID = 1;
COMMIT;

-- 예시: 트랜잭션 시작, 데이터 수정 후 롤백
BEGIN;
UPDATE 직원 SET 급여 = 급여 * 1.1 WHERE 부서ID = 1;
ROLLBACK;

 

10. 집계 함수: COUNT, SUM, AVG, MIN, MAX

  • COUNT: 행의 수를 계산합니다.
  • SUM: 지정한 컬럼의 합계를 계산합니다.
  • AVG: 지정한 컬럼의 평균을 계산합니다.
  • MIN: 지정한 컬럼의 최소값을 찾습니다.
  • MAX: 지정한 컬럼의 최대값을 찾습니다.
-- 예시: 직원 수 조회
SELECT COUNT(*) FROM 직원;

-- 예시: 전체 급여 합계 조회
SELECT SUM(급여) FROM 직원;

-- 예시: 최고 급여 조회
SELECT MAX(급여) FROM 직원;
728x90