SQL/sql 문법(mysql, mariaDB)

DDL _ CREATE / DROP / ALTER

읽히는 블로그 2024. 4. 27. 08:30

▤ 목차

    create

     create 명령어는 데이터베이스와 테이블을 만들 수 있다.

    ⌨ 형식

    1. 데이터 베이스 만들기

    CREATE DATABASE 데이터베이스이름

    2. 테이블 만들기

    CREATE TABLE 테이블명(
    칼럼명	자료형 기타조건들
    );

    💻 코드로 보기

    1. 데이터 베이스 만들기

    CREATE DATABASE School;

    2. 테이블 만들기

    CREATE TABLE student(
    bun 	INT 			primary KEY,
    irum 	VARCHAR(10) 	NOT NULL
    );

     

    프롬프트 사용 시

    데이터 베이스 생성

    MariaDB [(none)]> show databases;

     

     
    create database demo;

     

     
    show databases;

     

     


    drop

    존재하는 테이블 전체를 삭제하는 명령어이다.

    ⌨ 형식

    drop table 테이블명;

    💻 코드로 보기

    drop table student;

     

    프롬프트 사용 시

    데이터베이스 삭제

    drop database demo;


    ALTER

    ALTER 문은 데이터베이스의 전체적인 특성을 수정할 수 있게 해 준다.
    테이블에 필드를 추가, 삭제하거나 필드의 타입을 변경할 수 있게 해 준다/

    ⌨ 형식

    ALTER DATABASE 데이터베이스이름 CHARACTER SET=문자집합이름
    ALTER DATABASE 데이터베이스이름 COLLATE=콜레이션이름
    더보기

    콜레이션(collation)은 데이터베이스에서 검색이나 정렬 작업을 할 때 사용하는 집합을 의미한다.

    비교를 위한 규칙이다.

     

    💻 코드로 보기

    ALTER TABLE aa ALTER COLUMN juso SET DEFAULT '역삼동';

     
     
     
     

    ALTER TABLE과 ADD문

    ⌨ 형식

    ALTER TABLE 테이블이름 ADD 필드이름 필드타입

     

    💻 코드로 보기

    ALTER TABLE aa ADD phoneNum int;
    
    ALTER TABLE kbs ADD(job_id INT DEFAULT 100); 
    -- 칼럼 추가
    -- 이전 자료에 모두 default값으로 채워진다.

     

    👏 중요

    한글을 넣는데 깨진다면 charset=utf8을 설정할 수 있다.

    CREATE TABLE aa(bun INT, irum CHAR(10), juso VARCHAR(50))CHARSET=UTF8;
    -- CHARSET=utf8 : 한글이 깨지는 경우

     
     
     
     

    ALTER TABLE과 DROP문

    테이블 전체를 drop 하는 것이 아니라 테이블 필드만 삭제할 수 있다.

    ⌨ 형식

    ALTER TABLE 테이블이름 DROP 필드이름

    위와 같은 형식을 따르면 필드는 사라지지만
    show 테이블명; 하면 확인할 수 있다.

    💻 코드로 보기

    ALTER TABLE test DROP jjang int;
    ALTER TABLE kbs DROP COLUMN job_num;

     
     
     
     

    Alter와 MODIFY COLUMN

    Modify column 문과 함께 사용하면 테이블의 필드 타입을 변경할 수 있다.

    ⌨ 형식

    ALTER TABLE 테이블이름 MODIFY COLUMN 필드이름 필드타입

     
    SQL은 데이터와 직접적인 연관이 있어서 적재적소하게 사용하는 게 포인트이다.
    구문을 많이 아는 것보다 적절하게 알고 사용할 줄 아는 게 실력이라는 생각이 든다.
     

    💻 코드로 보기

    ALTER TABLE test DROP jjang int;
    
    -- 칼럼의 구조(type)를 변경하고 있다
    ALTER TABLE kbs MODIFY job_num VARCHAR(5);

     
     
     
     

    Alter와 RENAME

    RENAME 문과 함께 사용하면 테이블의 필드 타입을 변경할 수 있다.

    ⌨ 형식

    ALTER TABLE 테이블이름 RENAME 변경할 이름;

     
     
     
     

    Alter와 CHANGE

    RENAME 문과 함께 사용하면 테이블의 필드 타입을 변경할 수 있다.

    ⌨ 형식

    ALTER TABLE kbs CHANGE job_id job_num INT;

    😊정리

    SQL은 데이터와 직접적인 연관이 있어서 적재적소하게 사용하는 게 포인트이다.
    DB서버를 한번에 다녀오는게 좋은 것도 있으니,
    구문을 많이 아는 것보다 적절하게 알고 사용할 줄 아는 게 실력이라는 생각이 든다.
     
    저번에 정리한 DDL은 사실 개발자 입장에서 많이 사용하지 않는다.
    특히 DROP 명령어는 더더욱 사용하지 않는다. (DROP은 테이블 자체 제거!!)