엑셀의 테이블 형태
우리 부트캠프에서는 관계형 데이터베이스를 주로 쓴다.
SQL : 틀이 있다 // 수정, 삭제, 업데이트에 특화
NoSQL : 틀이 유연하다 // 읽기기능 특화
MySQL Naming Convention
프로젝트를 하기전 파일, 함수, 테이블, 칼럼 등 이름을 서로 약속하는 것
-- 데이터베이스 생성
CREATE DATABASE sparta_tex;
-- 학생테이블 생성
CREATE TABLE sparta_test.student(
id int PRIMARY KEY AUTO_INCREMENT
,
name varchar(50) NOT NULL
,
email varchar(50) UNIQUE
)
-- 도시 테이블 생성
CREATE TABLE city(
id int PRIMARY KEY AUTO_INCREMENT
,
name varchar(50) NOT NULL
)
-- 학생 데이터 입력
INSERT INTO student (name)
VALUES ('오영환');
-- 도시 데이터 입력
INSERT INTO city (name)
VALUES ('서울'), ('도쿄'), ('뉴욕'), ('상하이'), ('파리');
-- 학생 테이블 수정(city_id) 추가 및 외래키 등록
ALTER TABLE student ADD COLUMN city_id int
,
ADD CONSTRAINT `fk_city_table_id` FOREIGN KEY student(city_id) REFERENCES city(id);
-- 제약조건을 추가 (외래키 이름 지정) 외래키지정할 student테이블 city_id 칼럼을 만들고, ctiy테이블의 id 참조하겠다.
-- fk : foreign key의 약자
-- 학생 이메일 업데이트
UPDATE student
SET email = 'hjd@naver.com'
WHERE id = 4
-- 학생 검색(이메일)
SELECT * FROM STUDENT S
WHERE email LIKE '%@naver.com'
-- Null 검색
SELECT * FROM STUDENT S
WHERE email IS NULL
-- 학생 데이터 삭제
DELETE FROM student
WHERE id = 1;
-- 학생 테이블과 도시 테이블 조
SELECT * FROM student LEFT JOIN
city ON student.city_id = city.id;