'제수기' - '제발 수업 내용을 기억하자' 시리즈.
SQL Workbench 파이참 실행
SQL 데이터베이스 생성
오른쪽에 노란색 동전 쌓아둔 것처럼 생긴 게 데이터베이스다.. 클릭해서 실행하면 된다.

관리할 데이터는 table이라는 단위에 적히게 된다. 이 테이블 툴들을 묶어낼 수 있는 단위가 하나 더 있다. database(schema)
.
show databases;
이렇게 적은 건 이 단위를 본 거다. show schemas;
를 써도 똑같은 명령이다.
user 계정도 이후에 만들텐데
어떤 schema에 접속할 권한이 있는지도 다 정해줄 수 있다.
지금은 root 밖에 없지만 앞으로 계정을 만들 때 쓰기 권한 읽기 권한 등등까지 다 정해줄 수 있다.

스키마도 전체 스키마를 선택해주고 열자.

오른쪽에 스키마들을 확인할 수 있다.

select
: 조회하겠다는 뜻
*
: 모든 컬럼의 데이터를 조회하겠다는 뜻

사용자 계정 생성
create user 'user'@'%' identified by 'password';
사용자 계정을 'fa'라고 하면
create user 'fa'@'%' identified by 'fa';
%
: 모든 호스트(컴퓨터)에서 접속이 가능하다는 뜻
identified by 비밀번호
데이터베이스(schema) 생성
create database fadb;
create schema fadb;
- 둘 다 똑같은 명령어로, fadb를 생성해달라는 뜻이다.
show databases;
show schemas;
위 명령어로 확인할 수 있다.
user에게 database(schema) 사용권한 부여
grant all privileges on fadb.* to 'fa'@'%';
Table
Relational Database Management System(RDBMS)
- mysql의 table은 항상 특정 database(schema) 하위에 존재한다.
- table == entitiy == relation : 실제 data가 보관되는 주체
- column == field == attribute : table의 구조, 컬럼별로 자료형을 가질 수 있다.
- row == record == tuple : 실제 data가 관리되는 단위
- domain : 하나의 속성(열/column)에서 가질 수 있는 값의 범위, 그룹 (남/여, 0~100, ...)
🥪row 데이터가 묶여서 구분이 되는데 column으로는 그렇게 안 해준다.

MYSQL DataType
table 삭제할 때는 주석상태 유지하기
- 삭제하는 코드는 주석처리한 상태로 드래그해서 실행하고 주석인 상태로 그냥 두기. 실수로 전체 실행 됐을 때 테이블들이 삭제되는 대참사를 막을 수 있다.

문자형
- char(n) : 고정형. n개 이하의 고정길이 문자열 타입 / 무조건 n개로 저장
- varchar(n) : 가변형. n개 이하의 가변길이 문자열 타입 / 입력된 n개 길이 그대로 저장

숫자형
- int : 정수형
- float : 실수형
- double : 더 자세하게 다루는 실수형
- decimal : 더더 자세하게 다루는 실수형 (전체자리수, 소수점이하자리수) 지정 가능

날짜/시각형
- date : 날짜만 다루겠다
- time : 시간만 다루겠다
- datetime : 날짜 시간 다 다루겠다
