데이터베이스

  • 데이터베이스 안에는 여러 개의 데이터베이스가 존재한다
  • 각 데이터베이스 안에는 여러 개의 테이블이 존재한다

1. 데이터베이스 코드

  1. 데이터베이스 생성
CREATE DATABASE name;
  1. 데이터베이스 목록 보기
SHOW DATABASES;
  1. name 데이터베이스 사용
USE name;
  1. name 데이터베이스 삭제
DROP DATABASE IF EXISTS name;

[ IF EXISTS ] 옵션은 해당 이름의 데이터베이스가 없더라고 오류를 발생시키지 않는다


2. 테이블 코드

  1. 테이블 생성 - CREATE
USE 데이터베이스명;
CREATE TABLE 테이블명(
	컬럼명 데이터형,
    .
    .
    기본키 지정
  1. 테이블 조회 - SHOW
SHOW TABLES; // 전체 테이블 목록을 볼 수 있다

desc tablename; //한 테이블의 상세한 내용을 볼 수 있다
  1. 테이블 삭제 - DROP
DROP TABLE [IF EXISTS] name
  1. 테이블 검색 - SELECT
SELECT 컬럼명, ... FROM 테이블이름 //테이블에서 컬럼명에 해당하는 데이터들을 검색한다

SELECT * FROM 테이블이름  //테이블의 모든 데이터를 검색한다

SELECT 컬럼1 AS 바꿀컬럼이름, 컬럼2 AS 바꿀컬럼이름 FROM 테이블명; // 테이블에서 컬럼을 가져오는데 해당 컬럼의 이름을 바꾼다

SELECT * FROM 테이블이름 WHERE 조건 // 데이블에서 특정 조건에 맞는 데이터 가져오기
  1. 테이블 수정 - UPDATE
UPDATE 테이블이름 SET 컬럼명=컬럼값, ... WHERE 조건; //테이블에서 조건에 맞는 값의 데이터를 바꾼다
  1. 테이블 데이터 삭제 - DELETE
DELETE FROM 테이블이름 WHERE 조건; // 조건에 해당하는 데이터를 삭제

DELETE FROM 테이블이름; // 테이블의 데이터를 전체 삭제, 테이블 자체는 삭제되지 않는다

SQL DML 이해하기

  • DML : Data Manipulation Language
  • CRUD : Create(생성), Read(읽기), Update(갱신), Delete(삭제)

3. SELECT 문법

  • WHERE 조건
    컬럼 = 컬럼값
    컬럼 = 컬럼값 AND 컬럼 = 컬럼값
    컬럼 = 컬럼값 OR 컬럼 = 컬럼값
    컬럼 != 컬럼값 //특정 컬럼의 값이 컬럼값이 아닌 경우 true
SELECT * FROM 테이블명 WHERE 필드명 LIKE '..'; // 필드명의 값이 패턴과 같은지 확인
  • LIMIT
    SELECT 결과 중 일부만 출력하고 싶을 경우
SELECT * FROM 테이블이름 LIMIT 10 //상위 몇개만 출력
  • COUNT
    데이터의 개수를 세서 출력
SELECT COUNT(*) FROM 테이블이름
  • DISTINCT
    특정 컬럼값 출력시 중복된 값을 출력하지 않음
SELECT DISTINCT 컬럼명 FROM 테이블이름
  • 계산 문법 SUM, AVG, MAX, MIN
    SUM(): 컬럼값의 합계
    AVG(): 컬럼값의 평균
    MAX(): 컬럼값의 최대값
    MIN(): 컬럼값의 최소값

  • GROUP BY
    특정 컬럼값으로 그룹핑하기

  • ORDER BY
    특정 컬럼값을 기준으로 데이터 정렬하기

ORDER BY 정렬 기준 컬럼 DESC/ASC //안쓰면 기본 ASC
  • 위 문법들이 적용되는 순서
    SELECT 컬럼
    FROM 테이블명
    WHERE 조건
    GROUP BY 컬럼
    ORDER BY 컬럼
    LIMIT

  • AS
    sql문에서 표시할 컬럼명 다르게 하기


4. 인덱스

  • 데이터를 찾는 키

  • 테이블에서 데이터에 접근하기 위해 사용

  • 클러스터형 인덱스와 보조 인덱스가 있다

  • 인덱스 생성 및 삭제

    • 이미 생성된 테이블에 인덱스 추가
      CREATE INDEX 인덱스명 ON 테이블명 (column 1, column 2 ...);
      ALTER TABLE 테이블명 ADD INDEX 인덱스명 (column 1, column 2 ...);
    • 테이블 생성시 인덱스도 추가
      CREATE TABLE 할 때
      INDEX <인덱스명> (컬럼명1, 컬럼명2)
      UNIQUE INDEX <인덱스명> (컬럼명)
      넣어줌
  • 인덱스 확인
    SHOW INDEX FROM 테이블명

  • 인덱스 삭제
    ALTER TABLE 테이블명 DROP INDEX 인덱스명


5. 외래키(FOREIGN KEY)

  • 다른 테이블과 관계가 있는 키
  • 외래키 지정
    FOREIGN KEY (컬럼명) REFERENCES 다른테이블(컬럼명)
  • 참조하는 테이블에 값이 없으면 데이터 무결성에 걸림
  • 참조하는 테이블의 값을 삭제하려고 할 때 상대 테이블에서 사용중이라면 삭제가 안됨

6. GROUP BY와 HAVING

  • HAVING절은 집계함수로 조건비교를 할 때 사용
  • HAVING절은 GROUP BY절과 함께 사용
  • GROUP BY를 해서 그 그룹에서 조건을 HAVING로 줌

7. JOIN

  • 두 개의 테이블을 합쳐서 가져올 때 사용
profile
안녕하세요. Chat JooPT입니다.

0개의 댓글