관계형 데이터베이스란 테이블처럼 표의 형태로 데이터를 관리한다
위의 테이블에서 각각의 행을 지칭할 수 있는 가장 중요한 것 -> ID
-> 기본키
(Primary Key, PK)
외래키를 사용할 떄에는 주의해야 할 점이 있다.
예를 들어서
참조한 테이블이 삭제된다면??(on delete)
참조한 테이블이 변경된다면??(on update)
-> 해결 방법
MySQL에서는 데이터베이스를 스키마로 표현한다.
데이터베이스(스키마) 생성
CREATE DATABASE DBNAME;
데이터베이스(스키마) 조회
SHOW DATABASES;
데이터베이스(스키마) 사용
USE DBNAME;
데이터베이스(스키마) 삭제
DROP DATABSE DBNAME;
테이블 생성
CREATE TABLE 테이블이름 ( 열이름1 자료형, [DEFAULT 기본값] [NULL | NOT NULL] .... )
괄호로 자료형의 최대 길이 명시 가능, 다양한 제약 조건을 추가할 수 있다.
자료형
숫자형(INT, BIGINT, FLOAT, DOUBLE, DECIMAL, ....)
문자형(CHAR, VARCHAR, ...)
날짜/시간형(DATE, DATETIME, TIMESTAMP, ..)
ENUM, SET, JSON, XML, ...
테이블 조회
SHOW TABLES;
SHOW TABLES FROM DBNAME;
테이블 변경
ALTER TABLE tbl_name alter_option
테이블 삭제1
DROP TABLE TABLENAME;
테이블 삭제2 - 테이블 구조는 유지, 행만 삭제한다
TRUNCATE TABLE TABLENAME
답변: 기본 키는 테이블의 각 행을 고유하게 식별할 수 있는 열입니다. 중복될 수 없으며, NULL 값을 가질 수 없습니다. 하나의 테이블에는 하나의 기본 키만 존재합니다.
답변: 고유 키는 중복되지 않는 값을 가지지만, NULL 값을 허용할 수 있다는 점에서 기본 키와 다릅니다. 기본 키는 반드시 값이 존재해야 하며 NULL을 허용하지 않습니다. 또한 기본 키는 테이블당 하나만 설정할 수 있지만, 고유 키는 여러 개 존재할 수 있습니다
답변: 외래 키는 다른 테이블의 기본 키를 참조하는 키입니다. 두 테이블 간의 관계를 설정할 때 사용됩니다. 외래 키를 통해 참조 무결성을 유지할 수 있습니다.
답변: 네, 가능합니다. 여러 열을 묶어 복합 기본 키(Composite Primary Key)를 설정할 수 있습니다. 이 경우 각 열의 조합이 고유하면 됩니다.
답변: TRUNCATE는 테이블의 모든 데이터를 삭제하지만 테이블 구조는 유지합니다. DROP은 테이블 자체를 삭제하여 데이터뿐만 아니라 테이블 구조도 사라집니다.