내일배움캠프 TIL (221130): DB 스키마 설계, SQL

Jiumn·2022년 11월 30일
0
post-thumbnail

오늘 한 일

아침에 알고리즘 해설 듣고 10시부터 4시까지 SQL, DB 특강을 들었다.
강의노트가 꽤 길어서 기대를 했었는데...
강의 중간에 튜터님도 에러를 해결하지 못해 우왕좌왕하는 모습을 보여... 집중을 하기가 힘들었다. (강의 준비가 제대로 된 건지 의심이 간다...)

dbeaver, workbench 같은 GUI 프로그램을 실무에서 주로 사용하셔서 명령어를 많이 잊어버리셨다고 했는데... 그래도 명령어를 배웠기 때문에 정리해보려고 한다.

SQL 문법

-- 데이터 베이스 생성
CREATE DATABASE sparta_test

-- 테이블 사용
USE sparta_test.student;

-- 학생 테이블 생성
CREATE TABLE student(
	id int PRIMARY KEY AUTO_INCREMENT
    -- AUTO_INCREMENT 자동 증가 기능을 수행하는 키워드.
	-- 기본적으로 AUTO_INCREMENT의 시작 값은 1이며 새 레코드마다 1 씩 증가한다.
	,
	name varchar(50) NOT NULL
	,
	email varchar(50) UNIQUE
);

-- 지역 테이블 생성
CREATE TABLE sparta_test.city(
	id int PRIMARY KEY AUTO_INCREMENT
	,
	name varchar(50) NOT NULL
);

-- 학생테이블 수정(city_id) 추가 및 외래키 등
ALTER TABLE sparta_test.student ADD COLUMN city_id int NOT null
,
ADD CONSTRAINT `fk_city_table_id` 
FOREIGN KEY student(city_id) REFERENCES city(id);

-- 도시 데이터 생성
INSERT
	INTO
	city (name)
VALUES
('서울'),
('도쿄'),
('뉴욕'),
('상하이'),
('파리')

INSERT
	INTO
	student (name)
VALUES
('김민수'),
('한동주'),
('우태현')

-- 학생 이메일 업데이트
UPDATE 
	student
SET 
	email = 'hjd@naver.com'
WHERE 
	id = 5

-- 	학생 검색 (이메일)
SELECT 
	* 
FROM 
	student s
WHERE 
	email IS null

-- 학생 데이터 삭제
DELETE FROM student
WHERE id = 1;

-- 전체 학생 조회
SELECT * FROM student s

-- 전체 도시 조회
SELECT * FROM city c
  • varchar(): variable length character. (가변 길이 글자) 최대 글자수 50개까지 넣을 수 있음. 당신이 넣고자 하는 글자수만큼 메모리 공간을 확보하겠다, 하지만 나머지는 쓸데없이 남은 공간을 남기지 않겠다는 것.

내가 추가로 정리해본 것

(결국 인프런 SQL 강의 추가로 결제함 ^-^...)

SQL 기본 개념 정리

  • 테이블: 컬럼의 집합
  • 컬럼: 특정 도메인에 속하는 값 (EX. 학년: 1~6, 성별: 남자, 여자)
    - 도메인에 속하는 의미 있는 데이터여야 하므로 데이터 타입, 길이를 가지게 되는 것
    - 값이 없는 것은 NULL 이라고 함
  • 레코드: 하나 이상의 컬럼이 배열 식으로 구성된 것 (객체 인스턴스 같은 것)
    - 레코드에는 키값이 반드시 있어야 함 (키값이 없어도 구동은 되나, 없으면 안된다고 생각하는 것이 편함)
    - 키는 반드시 하나의 컬럼일 필요는 없음. 대상을 식별할 수 있는 컬럼의 집합도 키값이 될 수 있음. 키는 유일성을 위해서 NOT NULL 이어야 함.

기본 명령어 (DML)

INSERT INTO <TABLE>
(컬럼명, 컬럼명, ...)
VALEUS (,, ...)

-- 특정 테이블에 레코드를 추가 (컬럼과 값)
UPDATE <TABLE>
SET <컬럼명> =, <컬럼명> =, ...
WHERE <조건식>

-- 특정 컬럼의 내용을 수정
-- WHERE 조건을 설정하지 않으면 특정 컬럼명의 모든 값이 변경됨
-- (SQL은 집합 명령어이기 때문)
DELETE <테이블명>
WHERE <조건식>
-- 특정 테이블의 조건에 해당하는 컬럼 삭제

To-do list

  • REST API 특강 듣기
  • HTML, css 특강 듣기
  • 소스트리를 이용해서 깃허브 협업하기 팀원들과 연습
profile
Back-End Wep Developer. 꾸준함이 능력이다.

0개의 댓글