MySQL
테이블 생성과 제약 사항 연습
haejujung
2024. 5. 31. 17:12
데이터베이스에서 테이블은 다음과 같은 정보를 포함할 수 있습니다.
- 테이블 이름
- 열 이름
- 열 데이터 형식
- 빈 값 허용 여부
- 기본값
- 제약 조건 (Primary Key, Unique Key, Foreign Key 등)
- 인덱스
SQL (Structured Query Language)은 데이터베이스 관리 시스템 (DBMS)에서 데이터를 관리하고 검색하기 위해 사용되는 표준 데이터베이스 언어입니다. (안시 쿼리)
create database mydb;
use mydb;
-- 테이블 생성
create table student(
student_id int,
name varchar(50) not null,
grade int not null,
major varchar(50) not null
);
select * from student;
desc student;
-- 과목 테이블 생성
create table subject(
subject_id int,
subject_name varchar(50) not null,
credit int not null,
department varchar(5),
professor char(50) not null
);
select * from subject;
이미 생성된 테이블에 PK(기본키 - 제약 조건) 추가 해보기
기본키를 추가하면 해당 열에 대한 중복 데이터가 저장될 수 없으며, 데이터 검색 속도가 향상됩니다. 기본키는 테이블 내에서 고유한 값이어야 하며, 해당 열에 대해 NOT NULL 제약 조건이 설정되어 있어야 합니다.
-- 이미 생성된 테이블에 기본키를 추가하는 방법
alter table student add primary key(student_id);
-- 사전 기반 지식 (데이터가 들어가 있는 상태에서 빈 값이 포함 되어 있다면
-- 기본키를 추가할 수 없다.) 즉 null값이 있어서는 안됨
alter table subject add primary key(subject_id);
테이블 생성 시 PK를 추가하는 방법
-- 예약어는 기본적으로 테이블 이름을 선점할 수 없다.
-- 하지만 강제적으로 ``작은따옴표를 사용해서 테이블 이름이라고 명시할 수 있다.
create table `order`(
id int primary key,
price bigint,
customer_order varchar(50),
product_name varchar(20) not null,
quantitiy int not null,
order_date date not null
);
desc `order`;
-- 도전 과제 : 위 형식에 맞는 insert 를 진행하세요
insert into `order`(id, price, customer_order,
product_name, quantitiy, order_date)
values(12,30000,'busan01','티셔츠',1,'2024-05-30');
select * from `order`;
MySQL에서 가장 많이 사용하는 데이터 타입
💡
숫자 타입: INT, BIGINT, FLOAT, DOUBLE 등
문자열 타입: VARCHAR, CHAR, TEXT, BLOB 등
날짜/시간 타입: DATE, TIME, DATETIME, TIMESTAMP 등
불리언 타입: BOOLEAN, BOOL 등
데이터 타입은 테이블의 컬럼에 저장될 데이터의 형식을 결정하므로, 정확한 데이터 타입을 선택하는 것이 중요합니다. 이를 통해 데이터베이스의 성능을 최적화하고, 데이터 무결성을 보장할 수 있습니다.
숫자 타입은 정수형(INT, BIGINT)과 실수형(FLOAT, DOUBLE)으로 구분됩니다. 정수형은 소수점 이하의 값을 저장하지 않으며, 실수형은 소수점 이하의 값을 저장할 수 있습니다. 문자열 타입은 고정 길이(CHAR)와 가변 길이(VARCHAR)로 구분됩니다. 고정 길이는 저장할 데이터의 길이가 일정하며, 가변 길이는 저장할 데이터의 길이가 가변적입니다.
날짜/시간 타입은 날짜(DATE), 시간(TIME), 날짜와 시간(DATETIME, TIMESTAMP) 등으로 구분됩니다. 불리언 타입은 참(TRUE, 1)과 거짓(FALSE, 0) 두 가지 값을 저장할 수 있습니다
도전 과제 1
employee 테이블을 생성하며, id, name, age, department 네 개의 열(column)을 포함. name 는 null 값이 들어갈 수 없습니다. id 열은 기본키(Primary Key)로 설정. 데이터 타입은 직접 결정하세요.
create table employee(
id varchar(20) primary key,
name varchar(20) not null,
age int,
department varchar(10)
);
도전 과제 2
💡 customer 테이블 생성
id, name, email, address 네 개의 열을 포함
- name, address 는 null 값이 있으면 안됨.
id 열은 기본키(Primary Key)로 설정 데이터 타입은 직접 선정
create table customer(
id int primary key,
name varchar(20) not null,
email varchar(20),
address varchar(50) not null
);