brew 통하여 mysql 설치
$ brew install mysql
$ brew services start mysql
$ mysql -uroot -p
비밀번호 입력하기
로우는 도큐먼트! 컬럼은 속성값!
mysql> CREATE SCHEMA `nodejs` DEFAULT CHARACTER SET utf8; // nodejs라는 db 생성
mysql> use nodejs; // nodejs db 선택
mysql> CREATE TABLE nodejs.comments ( // nodejs db의 comments 테이블
-> id INT NOT NULL AUTO_INCREMENT, // id 컬럼 생성
-> commenter INT NOT NULL, // commenter 컬럼 생성
-> comment VARCHAR(100) NOT NULL, // comment 컬럼 생성
-> created_at DATETIME NOT NULL DEFAULT now(), // created_at 컬럼 생성
-> PRIMARY KEY(id), // 고유값을 id컬럼으로 함
-> INDEX commenter_idx (commenter ASC), // INDEX를 걸면 검색하기 용이해짐
-> CONSTRAINT commenter // commenter컬럼에 제약을 둔다. ')' 까지
-> FOREIGN KEY (commenter) // 외래키(다른 테이블을 참조함)
-> REFERENCES nodejs.users (id) // nodejs db의 users테이블의 id를 참조함
-> ON DELETE CASCADE // commenter가 삭제됐을때 댓글까지 삭제
-> ON UPDATE CASCADE) // commenter가 수정됐을때 댓글까지 업데이트
-> COMMENT = '댓글' // 테이블에 대한 설명
-> DEFAULT CHARSET=utf8mb4 // utf8: 인코딩, mb4: 이모티콘까지 가능
-> ENGINE=InnoDB;
컬럼명 + 자료형 + 기타옵션으로 구성됨
관계잡을 때 꿀팁은 중복이 없어야 함 !!(데이터베이스 정규화)
mysql> INSERT INTO nodejs.comments (commenter, comment) VALUES (1, '안녕하세요. zero의 댓글입니다.');
컬럼 중 id는 AUTO_INCREMENT로 자동생성, created_at은 default now()로 자동생성이라 없다.
commenter의 value 1은 nodejs.users의 값을 참조한다.
mysql> SELECT * FROM nodejs.users;
// users 테이블의 모든 컬럼을 가져옴.
mysql> SELECT name, married FROM nodejs.users;
// users 테이블의 name, married 컬럼을 가져옴.
mysql> SELECT name, age FROM nodejs.users WHERE married = 1 AND age > 30;
// name, age를 가져오는데 결혼했고 (AND) 30살이 넘은 것만 찾음
mysql> SELECT id, name FROM nodejs.users WHERE married = 0 OR age > 30;
// id, name을 가져오는데 결혼을 안했거나 (OR) 30살이 넘은 것만 찾음
mysql> SELECT id, name FROM nodejs.users ORDER BY age DESC;
// id, name을 가져오는데 age순으로 내림차순 정렬
// ASC는 오름차순(적은게 앞, 위로), DESC는 내림차순 인덱싱(큰게 앞, 위로)
mysql> SELECT id, name FROM nodejs.uers ORDER BY age DESC LIMIT 1;
// id, name을 가져오는데 age순으로 내림차순 정렬, 1개만 가져옴
mysql> SELECT id, name FROM nodejs.uers ORDER BY age DESC LIMIT 1 OFFSET 1;
// id, name을 가져오는데 age순으로 내림차순 정렬, 1개만 가져오는데 1개 띵구고 ㅋ
mysql> UPDATE nodejs.users SET comment = '바꿀 내용' WHERE id = 2;
id가 2인 로우의 comment를 '바꿀 내용'으로 변경
mysql> DELETE FROM nodejs.users WHERE id = 2;
// id가 2인 로우를 삭제