Table 다루기
✒️ 2025-05-28 16:16 내용 수정
DDL을 이용한 테이블 생성
- Oracle에서 진행했던 내용과 상당수가 비슷하기 때문에 테이블 및 데이터 다루기의 일부 항목은 생략했다.
- 상세한 예제 내용은 Oracle 사용 예제 참고.
- DDL(Data Definition Language) 참고
MySQL 참고사항
- 이미 있는 예약어를 사용하고 싶다면 백틱 "`" 안에 작성한다.
- 오라클 Table 다루기에선 큰 따옴표 ""를 사용한다.
- 참고 자료 : Su Bak's MySQL에서 백틱은 어떨 때 사용할까
- 백틱과 홑따옴표 사용 방법 차이에 관한 참고 자료 : OKKY DB에서 홑따옴표와 백틱의 차이점이 헷갈려요
- 이유진's SQL 백틱과 홑따옴표
- 객체 및 예약어, 식별자 표시로는 백틱 "`", 문자열 표시론 홑따옴표(
') 사용
SELECT * FROM DB이름.TABLE이름;
- Oracle에선 임시 테이블 DUAL에서 데이터 추가 없이 기본 통계 및 연산이 가능했는데, MySQL에서는 임시 테이블 없이 작성할 수 있다.
SELECT ROUND(3.14);
테이블 설정
- 좌측 상단에 SQL + 아이콘을 눌러 새 SQL 편집기를 연다.
- 아래 구문을 작성해서 DB를 추가한다. SQL을 작성하고 DBeaver#단축키에서 사용한
Ctrl + Enter를 누르면 해당 줄의 SQL문을 실행한다.
CREATE DATABASE 데이터베이스이름;
-
DB가 성공적으로 추가되었다면 아래 Output 창에 해당 SQL이 제대로 실행되었다고 뜬다.
- SQL을 저장할 땐 저장 아이콘을 누른다.
- SQL을 저장할 땐 저장 아이콘을 누른다.
-
이제 테이블을 추가한다. 특정 DB를 사용할 땐 아래 구문을 입력한다.
- 객체 및 예약어 표시로는 백틱" ` ", 문자열 표시론 홑따옴표" ' " 사용
-
테이블을 생성할 땐 DDL(Data Definition Language)을 사용하여 추가한다.
- DDL 작성 시 소괄호 안에 빈 줄을 넣지 않도록 주의한다.
-- 사용할 DB 지정
USE `데이터베이스이름`;
-- 테이블 추가
CREATE TABLE `테이블명` (
`컬럼명1` 타입,
`컬럼명2` 타입,
`컬럼명3` 타입
);
- 추가한 DB를 확인하려면 왼쪽 schemas에서 해당 DB를 선택하고, schemas 오른쪽의 새로고침 아이콘이나 schemas에서 우클릭 후 Refresh all을 눌러 변경 내용이 업데이트 되어 보이도록 한다.
- 해당 테이블을 선택하면 컬럼명과 데이터타입을 확인할 수 있다.
- schemas에서 테이블 이름에 마우스를 올려두면 수정 버튼이 뜨는데, 이를 이용해서 테이블의 제약 조건을 설정할 수 있다.
- AUTO_INCREMENT 참고 자료 : MySQL Using AUTO_INCREMENT
| 옵션 | 이름 |
|---|---|
| PK | Primary key |
| NN | Not Null |
| UQ | Unique |
| B | Binary |
| UN | Unsigned |
| ZF | Zero Fill |
| AI | Auto Increment, Oracle의 SEQUENCE와 유사 |
| G | Generated |
- 제약 조건 설정 수 Apply를 꼭 눌러서 변경 내용을 저장해준다.
SQL로 제약 조건을 추가하여 테이블 설정하기
- 이번엔 Workbrench에서 테이블 설정 화면을 들어가지 않고 SQL 작성으로 제약 조건을 추가한다.
AUTO_INCREMENT옵션으로 Oracle에서 SEQUENCE를 사용했을 때처럼 자동으로 숫자를 부여하도록 설정할 수 있다.
CREATE DATABASE sample;
USE sample;
- 방법 1 : 생성하는 컬럼에 PRIMARY KEY 지정하기
CREATE TABLE sample.`student`(
`id` INT PRIMARY KEY NOT NULL AUTO_INCREMENT, -- Oracle때처럼 바로 옆에 추가
`name` VARCHAR(20) NULL,
`student_no` INT NULL,
`major` VARCHAR(15) NULL,
`email` VARCHAR(50) NULL,
`phone` VARCHAR(15) NULL,
`admission_date` DATE NULL,
PRIMARY KEY(`id`)
);
- 방법 2 : 컬럼을 모두 작성하고 PRIMARY KEY 명시하기
CREATE TABLE sample.`student`(
`id` INT NOT NULL AUTO_INCREMENT,
`name` VARCHAR(20) NULL,
`student_no` INT NULL,
`major` VARCHAR(15) NULL,
`email` VARCHAR(50) NULL,
`phone` VARCHAR(15) NULL,
`admission_date` DATE NULL,
PRIMARY KEY(`id`) -- 맨 마지막에 PRIMARY KEY로 지정할 컬럼이름 작성
);
- 방법 3 : 제약 조건에 이름을 추가하면서 PRIMARY KEY 지정하기
CREATE TABLE sample.`student`(
`id` INT NOT NULL AUTO_INCREMENT,
`name` VARCHAR(20) NULL,
`student_no` INT NULL,
`major` VARCHAR(15) NULL,
`email` VARCHAR(50) NULL,
`phone` VARCHAR(15) NULL,
`admission_date` DATE NULL,
CONSTRAINT PK_ID PRIMARY KEY(`id`)
);
- PRIMARY KEY를 지정할 때 두 개 이상의 Column을 사용하여 하나의 PRIMARY KEY를 생성할 수 있다.
- 참고 자료 : MySQL PRIMARY KEY Constraint
CREATE TABLE sample.`student`(
`id` INT NOT NULL AUTO_INCREMENT,
`name` VARCHAR(20) NULL,
CONSTRAINT PK_ID PRIMARY KEY(id, name) -- id + name으로 조합된 PRIMARY KEY
);
