설치 완료 후
mysql로 접속
설치된 폴더 경로로 들어가서
cd 폴더경로
들어가서> mysql -u root -p
비번 입력하면 뜸!
나가고 싶으면
exit
데이터베이스 생성
create database movie_db default character set utf8;
영화정보 넣을거라서 movie_db로 넣었음
create database movie_db default character set utf8;
(MySQL이 기본적으로 알고 있는 구문을 예약어라고 부름 예약어는 소문자로 써도 되지만 대문자로 쓰는게 좋아
사용자가 직접만든 이름이랑 구분하기 위해서)
이거 사용할거야~
mysql> USE movie_db;
이전에 만든
데이트베이스 리스트 보고 싶으면
mysql> show databases;
그중에서 사용할 꺼 USE 데이터베이스
하고
테이블 보기
mysql> show tables;
테이블(데이터가 들어갈 수 있는 틀) 생성하는 명령어
create table [데이터베이스명. 테이블명]
mysql> CREATE TABLE products(
-> id INT NOT NULL AUTO_INCREMENT PRIMARY KEY);
아까 USE 테이터베이스명 해서
생략해도 됨
만들어진 테이블 확인하는 명령어
DESC 테이블명
ALTER TABLE `테이블명` ADD `컬럼명` VARCHAR(50) NOT NULL;
mysql> ALTER TABLE `products` ADD `name` VARCHAR(50) NOT NULL;
악 에러 뜬 이유가 `` 뱁틱이어서 그랬음..ㅎㅎ
이렇게 괄호로 묶어서 한번에 여러 개 넣어줄 수도 있음
개념 정리하고 가자~~~
(아직 데이터를 안넣어서 책에 나온 예시로 정리)
컬럼과 로우
id | name | age | married |
1 | zero | 24 | false |
2 | nero | 32 | true |
3 | hero | 28 | false |
컬럼(column) : id, name, age,married 과 같은 세로줄
(age 컬럼에는 24,32,28과 같은 정보 담겨있음)
로우(row) : 1,zero,24,false와 같은 가로줄.
필드 : 컬럼과 로우가 교차하는 칸 하나
컬럼은 세로필드의 집합
로우는 가로 필드의 집합
테이블에 데이터를 넣을 때는 미리 컬럼을 정의해두고 컬럼에 맞춰 데이터를 넣으면 된다.
컬럼의 자료형
- INT : 정수 의미. 소수까지 저장하고 싶다면 FLOAT 나 DOUBLE 자료형 사용
- VARCHAR(자릿수) : 가변길이. 0~자릿수인 문자열 넣을 수 있음
- CHAR(자릿수) : 고정길이 자료형. 부족한 자릿수만큼 스페이스가 채워짐
- TEXT : 긴 글 저장할 때 사용. 수백 자 이내의 문자열은 보통 VARCHAR(자릿수)사용하고 그보다 길면 TEXT 사용
- TINYINT : -128부터 127까지의 정수 저장할 때 사용. 1또는 0만 저장하면 불값(Boolean)과 같은 역할 할 수 있음
- DATETIME : 날짜와 시간에 대한 정보 담고 있음. 날짜 정보만 담는 DATE / 시간정보 담는 TIME 자료형
(자료형 뒤) 옵션
- NULL 과 NOT NULL : 빈칸 허용할지 여부 묻는 옵션
- AUTO_INCREMENT : 숫자를 저절로 올리겠다는 뜻 (데이터 넣으면 알아서 id로 1번부여, 다음 2번 부여 이렇게)
- UNSIGNED : 숫자 자료형에 적용되는 옵션. 음수 무시되고 0~4294967295까지 저장가능.나이 컬럼에 체크해두는게 좋음
- ZEROFILL : 숫자의 자릿수가 고정되어 있을 때 사용할 수 있음(예) INT(4)인데 숫자1넣으면 0001이 되는 식)
- created_at 에는 DEFAULT now()라는 옵션 붙어있음. 현재 시각 넣으라는 뜻. now()대신 CURRENT_TIMESTAMP를 적어도 같은 뜻이 됨. 사용자 정보를 넣으면 created_at 컬럼에는 넣는 순간의 시각이 자동으로 기록됨.
- 해당 컬럼이 기본 키인 경우에 PRIMARY KEY옵션을 설정. 기본 키란 로우를 대표하는 고유한 값을 의미
DEFAULT CHARACTER SET 을 utf8로 설정하지 않으면 한글이 입력되지 않으니 반드시 설정해야 함
테이블 잘못 만들었을 경우 제거하는 법
DROP TABLE [테이블명] ;
데이터 입력
INSERT INTO 테이블명 (필드,필드) VALUE ('테이터','데이터'..)
선택
Select * from products
전체 선택
select 필드, 필드 from 테이블 where 조건
(조건검사 : where 데이터 베이스 안에서 원하는 데이터를 조건에 맞게)
기본적인 mySQL 관계(비교)연산자 : 주어진 좌우 값을 비교하는 연산자 | |
= | 좌변과 우변이 같다 |
!= 또는 <> | 좌변과 우변이 다르다 |
< | 작다 |
<= | 작거나 같다 |
> | 크다 |
>= | 크거나 같다 |
논리연산자 : 참(true), 거짓(false) 두 가지를 가지고 비교하는 연산자 | |
AND , && | 비교하는 값 모두 참(true)여야 결과가 참(true) |
OR , || | 비교하는 값 중 하나라도 참(true)이면 결과가 (true) |
만약 글자에서 특정 부분 일치하는 데이터를 조회하고 싶다면!
LIKE 씀
%는 다른 경우 들어갈 자리에 붙여줌
정렬하기
order by
전체 선택해서
openDate 기준으로 오름차순
오름차순 asc (안적어도 자동이긴 함)
내림차순 desc
특정 위치에 있는 데이터를 선택
LIMIT
데이터를 3개를 건너뛴 다음에 데이터 1개
명령어 순서 지켜야함!
데이터를 수정할 때
update라는 명령어 써주면 됨
여러개 수정할 때
콤마, 사용
데이터 삭제
테이블 삭제
DROP TABLE 테이블명;
데이터베이스 삭제
DROP TABLE 데이터베이스 이름;
'노드 node.js' 카테고리의 다른 글
9장 팔로우 끊기 넌적스 if로 버튼교체(follow unfollow button) (0) | 2021.10.05 |
---|---|
몽고디비 MongoDB (0) | 2021.09.26 |
GET POST차이(app.get) / res.send / value와 name 차이 (0) | 2021.09.17 |
node.js 로그인 창 만들기(npm,express,cookie)/ 에러 해결 app crashed - waiting for file changes before starting... (0) | 2021.09.16 |
express 배우기 책 따라하는 중 p229-250 (0) | 2021.09.16 |