0.목차
1. 개요
2. CREATE DATABASE
3. CREATE TABLE
4. CRUD
1. 개요
https://kong-dev.tistory.com/122?category=998366
이거 mongoDB Atlas로 만들었던거 mySQL로 만들려고
mySQL 공부함.
어려울줄 알았는데 생각보다 어렵지 않게 할 수 있었음
2. CREATE DATABASE
일단 iTerm(terminal) 키고, mySQL에 접속.
여기서 DATABASE를 만들어야 된다.
$ CREATE DATABASE 데이터베이스이름;
semi-colon 꼭 찍어야함.
Query OK 라는 문구가 뜨면 ㅇㅋ 잘 됐구나 하면 된다.
근데 저 문구로는 신뢰가 안간다
나는 내 눈으로 꼭 봐야겠다 싶으면,
$ SHOW DATABASES;
입력하면
이렇게 나옴!
맨 밑에 방금 만든 todotodo를 확인 할 수 있음.
혹시 오타가 났거다 더이상 사용하지 않을 데이터 베이스라면....
사실 지울 수도 있는데 사실 그럴일은 거의 없을듯 싶다..
뭐 무튼..
지울때는
$ DROP DATABASE 지우고싶은데이터베이스이름;
방금 만든 todotodo를 지운다면
이렇게 하면 된다.
이제 데이터베이스 내에서 작업을 할건지 정해줘야한다.
나는 todo_db내에서 작업을 해보려함.
특정 데이터베이스 내에서 작업을 하려면은
$ USE 작업할데이터베이스명;
해주면됨
이렇게 뜨면 된다.
3. CREATE TABLE
이제 저 데이터베이스(todo_db) 안에서 table을 만들어줘야 된다.
table을 표를 의미하는데,
mySQL 을 포함한 모든 관계형 데이터베이스는 이러한 표의 형태를 취하고 있다.
음.. 엑셀의 스프레드시트와 비슷하다고 생각하면 된다.
그런데 스프레드 시트와 큰 차이점이 한가지 있는데,
데이터베이스의 테이블은
어떤 데이터 타입이 입력될지를 미리 정해줘야 한다는 점이다.
무슨 말인지 모를때는 코드를 보자..
$ CREATE TABLE test (
_id INT(11) PRIMARY KEY AUTO_INCREMENT,
title VARCHAR(32) NOT NULL,
dueDate VARCHAR(32) NOT NULL
);
뭐 이런식인데, 일단 CREATE TABLE 이란 명령어로 test라는 테이블을 만들었다.
그리고 저 () 안의 내용이 중요한데,
가장 중요한 부분은 () 안 세 줄의 첫 단어들인 _id, title, dueDate
이 세 단어의 의미는
총 이렇게 세가지의 항목을 만들겠다라는 뜻이다.
그리고 그 다음 INT, VARCHAR 의 뜻은 데이터 타입을 지정해 주는 것이다.
_Id sms INTEGER 즉 정수를 의미하고,
VARCHAR 는 VARIABLE CHARACTER, 대충 그냥 스트링이라고 보면된다.
그리고 id INT 옆의 PRIMARY KEY 는 _id 의 값을 PRIMARY KEY 로 정하겠다는 의미이고
그옆의 AUTO_INCREMENT 는 값을 입력하지 않아도 자동으로 숫자를 1씩 증가시켜서 입력하겠다는 의미이다.
title과 dueDate 옆의 NOT NULL 은 값이 NULL 즉 입력되지않는 것을 허용하지 않겠다는 의미이다.
이렇게 만들어진 table의 틀은
$ DESC 테이블이름;
으로 확인할 수 있다.
4. CRUD
이제 쿼리문이 나온다.
처음엔 뭔가 또 새로운 문법을 배워야 되는건가 싶어서 좀 그랬는데,
이건 그냥 영어다 영어.
쫄지말고 하나씩 해보자.
4-1. CREATE
말그대로 데이터를 만드는 거다.
데이터를 만들때 사용되는 명령어는
$ INSERT INTO 데이터베이스명 (카테고리) VALUES('값');
해주면 된다.
그러니까.. 위에서 만든 test 테이블에 데이터를 삽입하고 싶다면,
$ INSERT INTO test (title, dueDate)
VALUES ('blog posting about mySQL','2022-02-03');
요렇게 입력해주면 된다.
주의 할점은 values 안에는 전부 quote 로 감싸 줘야한다는것.
4-2. READ
그럼 이제 삽입한 데이터를 확인해보자.
$ SELECT * FROM test
이렇게 이쁜 표로 나온걸 확인 할 수 있다.
_id 값이 2인이유는 테스트해본다고 데이터 입력했다 삭제 했기 때문임. .ㅎ
그리고 _id 는 값을 따로 입력해주지 않아도 auto_increment 의 영향을 받아
자동으로 값이 입력된다.
특정 조건을 만족하는 값만 골라서 보는 것도 가능한데,
그걸 위해 데이터를 몇개 더 삽입해보겠다.
대충 몇개 집어넣었음..
여기서 만약 dueDate 가 2022-02-03 인 것만 확인하고 싶다면,
WHERE 을 쓰면된다.
$ SELECT * FROM test WHERE dueDate = '2022-02-03';
요렇게.
그러면 dueDate 가 2022-02-03 인것만 확인할 수가 있다.
그리고 select 옆에 * 은 모든 항목을 다 보겠다는 뜻인데 저기서 보고싶은 것만 지정하는 것도 가능하다.
$ SELECT _id, title FROM test;
이런 식으로,
그리고 이걸 보고 어 5번 책반납하는거 며칠 까지더라?
$ SELECT dueDate FROM test WHERE _id = '5';
오 기가 맥힘..
근데 저 title 이 뭔가 잘 와닿질 않는데..
난 저거 이름 todo 로 보면 더 와닿을거 같은데..
$ SELECT _id, title AS todo, dueDate FROM test;
라고 하면 이렇게 입력해주면 된다.
title AS todo 로 해주니까 title 이 todo 로 바뀌어서 출력되었다.
근데 이건 임시로 딱 한번 이렇게 바뀐거지
아예 바뀐건 아니다.
다시 조건 없이 출력해보면
title 로 나온다.
WHERE 에는 연산자도 사용가능하다.
이런식으로 _id 가 3보다 큰 것만 출력 해봤다.
진짜 더 많은 기능들이 있는데 당장 필요한건 이정도 인듯?
4-3. UPDATE
이번엔 내용을 수정 즉, 업데이트를 해보자,
$ UPDATE 테이블명 SET 카테고리명 = '변경할내용' (WHERE 카테고리명 = '검색할 값')
이런 형식으로 하면 되는데,
예를 들어 _id 6 의 clean up home 부분을
clean up only my room 으로 수정하고
dueDate an hour later 로 수정하고 싶다면,
$ UPDATE
test
SET
title = 'clean up only my room',
dueDate = 'an hour later'
WHERE
_id = '6';
요렇게 입력하면 된다.
그러고 나서 결과를 보면
요렇게 바뀐걸 확인할 수 있다.
4-4. DELETE
삭제다.
삭제는 매우 간단하다.
$ DELETE FROM 테이블명
WHERE 카테고리명 = '검색할값';
예를들어 6번 방청소를 끝내서 todo 목록에서 지우고 싶다면,
$ DELETE FROM test WHERE _id = '6';
이렇게 입력해주면 된다.
입력후 결과를 출력해보면
6번이 지워진 것을 확인할 수 있다.
'경일 > DATABASE' 카테고리의 다른 글
[mysql] connecting pool (feat.node.js) (0) | 2022.02.17 |
---|---|
[mysql] root계정 비밀번호 잃어버렸을때 (M1, homebrew설치) (0) | 2022.02.17 |
[mySQL] ERROR 1062 (23000): Duplicate entry '0' for key 'user.PRIMARY' 해결 (0) | 2022.02.12 |
[mySQL] 맥북 Air M1칩 mySQL 설치 (1) | 2022.02.03 |
댓글