성장일기

내가 보려고 정리하는 공부기록

데이터베이스/MariaDB

마리아DB (5) _ 테이블 생성, 수정, 삭제하기

와나나나 2024. 5. 26. 00:43
728x90

이번 게시글에서는 테이블에 관한 전반적인 내용을 다루려고 한다. 목차는 다음과 같다

  1. 테이블 생성 - CREATE
  2. 테이블에 데이터 삽입하기 - INSERT
  3. 삭제
    1. 데이터 삭제하기 - DELETE
    2. 테이블 삭제하기 - DROP
  4. 수정
    1. 데이터 수정하기 - UPDATE
    2. 테이블 수정하기 - ALTER

 

이번 게시글에서는 다루는 대상이 무엇인지와 명령어를 잘 연결지어 이해해야한다. 

예를 들어, 테이블을 수정하는 것과, 테이블 속 데이터를 수정하는 명령어는 엄연히 다르다는 걸 인지해야 한다는 것이다.

 

 

1. 테이블 생성하기 - CREATE

 DBMS에서 데이터를 다루기 위해서 가장 먼저 하는 일은 DB를 생성한 후, 관련된 테이블을 생성하는 것이다. 이 두 가지 모두 CREATE라는 명령어를 이용한다.

 

테이블을 생성할 땐 CREATE TABLE 테이블명으로 명령어를 작성한 후, 괄호 안에 내가 만들고 싶은 열을 써준다.

CREATE TABLE tb_member (
	mem_no INT PRIMARY KEY,
	mem_id VARCHAR(20) NOT NULL,
	mem_pass VARCHAR(20) NOT NULL,
	mem_name VARCHAR(15) NOT NULL,
	enroll_date DATE DEFAULT CURDATE()
);

 

열을 쓸 땐 열이름 데이터타입 제약조건 순서로 작성해주고, 쉼표를 빼먹지 않아야 한다.

 

 

제약조건

제약조건이란, 데이터의 무결성을 지키기 위한 제한된 조건을 의미한다. 종류를 간단하게 쓰면 아래와 같다.

  • PRIMARY KEY
    • 이전 게시글에서 주식별자를 본 적이 있을 것이다. 주식별자는 많은 행의 데이터를 구분할 수 있게 하는 식별자인데, 이를 기본키(PRIMARY KEY, PK)라고 한다.
    • 이는 중복될 수 없고, NULL이 입력될 수 없다.
    • 매핑테이블처럼 외래키이자 기본키로 여러개가 있을 경우, 테이블 마지막에 PRIMARY KEY(열1, 열2,..) 명령어를 써준다.
CREATE TABLE tb_grade(
	tern_no VARCHAR(10) NOT NULL,
	class_no VARCHAR(10) NOT NULL REFERENCES tb_class(class_no),
	student_no VARCHAR(10) NOT NULL REFERENCES tb_student(student_no),
	point DECIMAL(3,2),
	PRIMARY KEY (tern_no, class_no, student_no)
);

 

  • UNIQUE
    • 중복을 금지한다는 의미의 제약조건이다. 해당 열에서는 중복이 있으면 안 된다.
  • FOREIGN KEY
    • 두 테이블 사이 관계를 설정하는 제약조건으로, 이 키를 생성하면 의존관계가 생기게 된다.
    • 외래키가 생성된 테이블이 다른 테이블을 의존하는 구조가 된다.
CREATE TABLE tb_member (
  mem_no INT PRIMARY KEY,
  mem_id VARCHAR(20) UNIQUE, 
  gender CHAR(2) CHECK(gender IN ('남자', '여자')),
  grade_code VARCHAR(10) REFERENCES tb_member_grade(grade_code)
);

 

이렇게 REFERENCES 명령어를 이용하고, 뒤에는 참조할 테이블명을 작성해준다!

 

  • CHECK 
    • 열에 입력되는 데이터를 점검한다.
    • CHECK 안에 쓴 조건이 부합하는지 여부를 체크한다.
  • DEFAULT
    • NULL이 들어왔을 때, 기본값을 세팅한다. DEFAULT 원하는값으로 써주면 된다.

 

 

2. 테이블에 데이터 삽입하기 - INSERT

테이블을 만들고 나면, 안에 데이터를 넣어야 한다. 이때 사용하는 명령어가 INSERT INTO 구문이다.

-- 열이름 지정 X
INSERT INTO tb_member VALUES (1, 'user1', '1234', '홍길동', '2022-11-09');
-- 열이름 지정
INSERT INTO tb_member(mem_id, mem_pass, mem_name) VALUES ('user1', '1234', '홍길동');

 

INSERT INTO 테이블명 VALUES (열마다 넣을 값) 으로 작성하면, 모든 열에 값을 넣는다는 의미이다. 만약 첫 열에는 값을 넣지 않을 것이라면, 두번째 줄의 코드처럼 열 이름을 작성해주어야 한다. 

 

 

 

3. 삭제하기 (테이블 삭제, 데이터 삭제)

이렇게 테이블을 생성하다보면 잘못 만들어서 지워야 할 때가 있다. 이때 쓰는 명령어가 있는데, 데이터를 삭제하는 명령어와 테이블을 삭제하는 명령어가 다르기 때문에 나누어 정리할 것이다.

 

1) 테이블 삭제 - DROP

CREATE랑 비슷하게 DROP TABLE 테이블명 으로 써주면 된다. 

 

2) 데이터 삭제 - DELETE

DELETE FROM 테이블명 WHERE 조건으로 맞추어 써주면 된다. 예를 들면 아래와 같다.

DELETE FROM emp
WHERE emp_id = 4;

 

이 코드는 emp 테이블에서 emp_id 가 4인 데이터행을 삭제한다는 의미이다.

 

 

4. 수정하기 (데이터수정, 테이블수정)

수정도 삭제와 마찬가지로 데이터를 수정하는 명령어와 테이블을 수정하는 명령어로 나눌 것이다.

 

1) 데이터 수정 - UPDATE

테이블의 구조를 수정하는 것이 아닌, 특정 조건에 맞는 데이터를 수정할 때 사용한다. 명령어는

UPDATE 테이블명 SET 바꿀칼럼=바꿀값 , ... WHERE 조건으로 작성하면 된다.

UPDATE emp
SET name = '홍길동'
WHERE id = 100;

 

이 코드는 id가 100인 사원의 이름을 홍길동으로 바꾸는 코드이다.

 

2) 테이블 수정 - ALTER

단순히 데이터만 수정하는 UPDATE와 다르게 ALTER는 데이터베이스의 스키마를 수정하는데 사용된다. 예를들면, 칼럼이나 제약조건 같은 것들!

 

👤: 열을 추가하고 싶어요 !

이런 경우에는 ALTER 와 ADD 구문을 이용한다. ALTER TABLE 테이블명 ADD 열이름 제약조건 으로 작성한다.

ALTER TABLE tb_member ADD age TINYINT DEFAULT 0 AFTER gender;

 

기본적으로 열을 추가하면 가장 뒤에 추가되는데, AFTER이나 FIRST 명령어를 이용해 열의 위치도 설정해줄 수 있다.

 

 

👤: 열을 수정하고 싶어요 !

이런 경우에는 ALTER와 MODIFY 구문을 이용한다. ALTER TABLE 테이블명 MODIFY 열이름 데이터타입 제약조건 으로 작성한다. 이를 통해서 데이터타입과 제약조건 변경이 가능해진다.

ALTER TABLE tb_member MODIFY gender CHAR(1) DEFAULT '여' NOT NULL;

 

 

👤: 열의 이름을 수정하고 싶어요 !

이런 경우에는 ALTER와 RENAME COLUMN 구문을 이용한다. ALTER TABLE 테이블명 RENAME COLUMN 현재컬럼명 TO 바꾸고싶은이름 으로 작성하면 된다.

ALTER TABLE tb_member RENAME COLUMN no TO memNo;

 

 

👤: 열을 삭제하고 싶어요 !

이런 경우에는 ALTER 와 DROP COLUMN 구문을 이용한다. ALTER TABLE 테이블명 DROP COLUMN 컬럼명으로 작성한다.

ALTER TABLE tb_member DROP COLUMN mem_no;

 

 

👤: 열에 제약조건을 추가하거나 삭제하고싶어요 !

추가하고 싶은 경우에는 ADD CONSTAINT 구문을, 삭제하고 싶은 경우에는 DROP CONSTRAINT 구문을 사용한다.

-- 제약조건 추가하기
ALTER TABLE tb_member ADD CONSTRAINT PRIMARY KEY(mem_no);
-- 제약조건 삭제하기
ALTER TABLE tb_member DROP CONSTRAINT PRIMARY KEY;

 

 

이정도만 알아도 테이블을 만들고 수정하고 삭제할 수 있게 된다 ! 다음 게시글에서는 뷰에 대해 다뤄볼 예정이다.