SQL 정리

zzZ·2022년 10월 15일
0

SQL

  • SQL(Structured Query Language)은 관계 데이터베이스를 위한 표준 질의어로 많이 사용되는 언어다
  • SQL은 기능에 따라 정의어(DDL), 데이터 조작어(DML), 데이터 제어어(DCL)로 나눈다
    • 데이터 정의어: 테이블을 생성하고 변경, 삭제하는 기능을 제공
    • 데이터 조작어: 테이블에 새 데이터를 삽입하거나, 테이블에 저장된 데이터를 수정, 삭제, 검색하는 기능을 제공
    • 데이터 제어어: 보안을 위해 데이터에 대한 접근 및 사용 권한을 사용자별로 부여하거나 최소하는 기능을 하는 언어다. 데이터베이스 관리자(DBA)가 주로 사용한다

테이블 생성

  • 테이블을 생성하는 SQL 명령어는 CREATE TABLE이다
CREATE TABLE 테이블_이름(
	속성_이름 데이터_타입 [NOT NULL] [DEFAULT 기본_값],
    속성_이름 데이터_타입,
    .
    .
    .
    PRIMARY KEY (속성_리스트)]
    FOREIGN KEY (속성_리스트) REFERENCES 테이블_이름(속성_리스트)]
    [ON DELETE 옵션][ON UPDATE 옵션]
    [CONSTRAINT 이름][CHECK(조건)]
 );
  • 테이블을 구성하는 각 속성의 데이터 타입을 선택한 후에는 속성의 널 값 허용 여부와 기본값 필요 여부를 결정한다
  • 기본키를 구성하는 모든 속성은 널 값을 가질 수 없도록 반드시 NOT NULL키워드를 표기한다
  • SHOW TABLES; -> 데이터베이스 테이블을 보여준다
  • DESC 테이블명; -> 테이블의 정보를 알려줌
  • DROP 테이블명; -> 테이블을 삭제한다

테이블의 변경

  • 테이블은 ALTER TABLE 문으로 변경할 수 있다. ALTER TABLE 문을 이용해 새로운 속성 추가, 기존 속성 삭제, 새로운 제약조건 추가, 기존 제약조건 삭제 등이 가능하다

  • 새로운 속성 추가

ALTER TABLE 테이블_이름
	ADD 속성_이름 데이터_타입 [NOT NULL] [DEFAULT 기본_값];
  • 기존 속성 삭제
ALTER TABLE 테이블_이름 DROP COLUMN 속성_이름;
  • 새로운 제약조건 추가
ALTER TABLE 테이블_이름 ADD CONSTRAINT 제약조건_이름 제약조건_내용;
  • 기존 제약조건 삭제
ALTER TABLE 테이블_이름 DROP CONSTRAINT 제약조건_이름;

테이블 삭제

DROP TABLE 테이블_이름;

SQL 데이터 조작

  • 데이터 삽입
INSERT INTO 고객 VALUES ('apple', '정소화', 20, 'gold', '학생', 1000);
  • 데이터 검색
SELECT [ALL|DISTINCT] 속성_리스트
FROM 테이블_리스트;

투플의 중복을 허용하면 ALL키워드를, 허용하지 않으면 DISTINCT 키워드를 사용한다
모든 속성을 검색할땐 * 키워드를 사용한다

SELECT 제품명, 단가 AS 가격
FROM 제품;

AS 키워드로 변경할 이름을 지정하면 변경할 이름으로 속성의 이름을 바꿔 출력할 수 있다

  • 조건 검색
    조건을 만족하는 데이터만을 검색하는 SELECT문은 아래와 같다
SELECT [ALL|DISTINCT] 속성_리스트
FROM 테이블_리스트
WHERE 조건;
  • 정렬 검색
    SELECT 문의 검색 결과 테이블을 사용자가 원하는 순서로 출력하려면 ORDER BY 키워드를 사용한다
SELECT 속성_리스트
FROM 테이블_리스트
WHERE 조건
ORDER BY 속성_리스트 [ASC|DESC];

오름차순 정렬이면 ASC, 내림차순 정렬이면 DESC를 사용한다

  • 집계함수를 이용한 검색
    특정 속성 값을 통계적으로 계산한 결과를 검색하기 위해 집계 함수를 이용할 수 있다. 개수, 합계, 평균, 최댓값, 최솟값의 계산 기능을 제공한다
    • COUNT: 속성 값의 개수

    • MAX: 속성 값의 최댓값

    • MIN: 속성 값의 최솟값

    • SUM: 속성 값의 합계

    • AVG: 속성 값의 평균

      집계함수는 WHERE 절에서는 사용할 수 없고 SELECT 절이나 HAVING절에서만 사용 가능하다

ex)

SELECT AVG(단가)
FROM 제품;
  • 그룹별 검색
    테이블에서 특정 속성의 값이 같은 투플을 모아 그룹을 만들고, 그룹별로 검색을 하기위해 GROUP BY 키워드를 사용
    그룹조건을 추가하려면 HAVING키워드를 함께 사용한다
SELECT 속성_리스트
FROM 테이블_리스트
WHERE 조건
GROUP BY 속성_리스트 HAVING 조건
ORDER BY 속성_리스트 [ASC|DESC];

0개의 댓글