CRUD (데이터베이스가 무엇이든 반드시 가지고 있는 작업)
Create : 생성(필수)
Read : 읽기(필수)
Update : 수정
Delete : 삭제
=> ex) 어떤 정보는 Update , Delete를 막음 (회계나 역사 같은거)
확인 하고 싶을 떄
SHOW DATABASES;
SHOW TABLES;
1. [Create Part] Insert
INSERT INTO table_name (columns1, columns2, columns3, ...)
VALUES (value1, value2, value3, ...)
나 근데 내 Table의 columns가 뭐였는지 헷갈려...
이때 사용하는 코드 : DESC (describe)
DESC Table명;
id -> 입력 안하면 auto_increment 된다. (그래서 안써도 됨)
* Columns 과 Value의 순서가 같아야 한다. *
INSERT INTO topic(title,description) VALUES('MySQL','MySQL..')
이렇기에 Columns의 이름을 Values가 무엇인지를 나타나게 설정하는 것이 좋다.
현재 시간을 가져오고 싶으면 NOW( )사용
INSERT INTO topic(title,description,created,author,profile) VALUES('MySQL','MySQL..',NOW(),'egoing','developer');
2. [Read Part] SELECT
SELECT * FROM table명;
table에 있는 모든 데이터(*)를 가져와라
SELECT * FROM topic;
데이터가 추가된 것을 확인할 수 있다.
다음에 또 다 적어야 할까??? -> 노노 윗방향 방향키를 이용하자
자 실습을 이어 나가 보자
저번까지 하다가 다른날에 실행하므로 내 스키마부터 가져와 주자
USE tutorial;
Table 명을 확인해주고
SHOW TABLES;
topic table의 모든 정보를 가져오고 싶을 때
SHOW * FROM topic;
table의 일부 정보를 가져오고 싶을 때
SELECT id,title,author FROM topic;
즉, 공식 Document를 확인 해보면
1. 대괄호로 묶여있는 건 생략이 가능하다는 것이다
2. select_expr => 표현되어야할 column들
위에를 참고해보면 추가적인 옵션들을 확인할 수 있다.
조건에 해당되는 행만 보고 싶을 때 (where)
SELECT id,title,author
FROM topic
WHERE author='egoing';
순서도 지켜 줘야한다 (FROM -> WHERE)
정렬을 하고 싶을 때 싶을 때 (order by)
SELECT id,title,author
FROM topic
WHERE author='egoing'
ORDER BY id;
FROM -> WHERE -> ORDER BY
나 id 큰거 부터 볼래 -> (DESC)
SELECT id,title,author
FROM topic
WHERE author='egoing'
ORDER BY id DESC;
DB는 무지성으로 넣을 수 있어서 출력을 제한하는 경우가 많음 (limit)
SELECT id,title,author
FROM topic
WHERE author='egoing'
ORDER BY id DESC LIMIT 2;
Limit -> 2개만 출력해줘
"데이터 베이스를 잘한다 = SELECT 문을 잘쓴다"
3. [Update Part] UPDATE
MySQL 공식 문서를 확인해 보면
설명을 보면
assignment 는 col_name = value 으로 적어 주면 된다고 한다
UPDATE table이름
SET column이름 = 넣을 값;
UPDATE topic
SET description = "ORACLE is... ", title = "ORACLE";
이거 이대로 실행하면 큰일납니다~~!!
이러면 모든 description하고 title이 이걸로 바껴버림
"누구에게(WHERE) 를 지정해 줘야한다" (이거 빼면 재앙임 ㅋㅋㅋ)
UPDATE topic
SET description = "ORACLE is... ", title = "ORACLE"
WHERE id = 2;
4. [Delete Part] DELETE
FROM table 이름이 필수인 것을 확인할 수 있고
옵션이지만 WHERE 문도 필수임 ㅇㅇ(혼나기 싫으면 뭐라도 적어)
아니면 다 삭제됨 ㅇㅇㅇ
DELETE FROM topic;
** 이러면 인생 나락가는 거임 ** (where 꼭 붙이기)
DELETE FROM topic
id = 5;
'Data Science > SQL' 카테고리의 다른 글
[SQL][MYSQL] JOIN (0) | 2022.11.19 |
---|---|
[SQL][MYSQL] order by, group by (0) | 2022.11.19 |
진도체크 (0) | 2022.11.14 |
[SQL][5~9] MySQL 서버 접속, 스키마(Schema), Table (0) | 2022.11.14 |
[SQL][1~4] 데이터베이스의 목적, MySQL 설치 및 구조 (0) | 2022.11.13 |