0. 들어가기 전에
먼저 database, table이 만들어져 있어야 한다. CREATE 뒤에 만들고싶은 것을 입력하면
되고, TABLE의 경우 괄호 안에 조건들을 자세히 입력할 수 있다.
만든 후 원하는 database, table을 하려면 각각 SHOW에 붙여서 입력해준다.
CREATE한 후, SHOW TABLES;를 입력하면 다음과 같이 박스가 등장한다.
topic이라는 table을 만들고, DESC <table 이름>을 입력하면 다음과 같이 반환하는데,
만든 table의 구조를 확인할 수 있다.
1. INSERT
- 관계형 데이터베이스의 테이블에 새로운 데이터를 삽입(저장)할 때 사용한다.
- CRUD의 Create에 해당하는 역할을 수행한다.
*INSERT INTO 테이블명(컬럼1, 컬럼2, ...) VALUES(데이터1, 데이터2, ...)
INSERT INTO topic(title,description,created,author,profile)
VALUES('MySQL','MySQL is ...',NOW(),'sh5080','developer');
// field 값을 입력하지 않으면 테이블의 field의 순서대로 적용할 수 있다.
*INSERT INTO 테이블명 VALUES(데이터1, 데이터2, ...)
INSERT INTO topic VALUES('MySQL','MySQL is ...',NOW(),'sh5080','developer');
2. SELECT
- 관계형 데이터베이스의 테이블에 데이터를 선택할 때 사용한다.
- CRUD의 Read에 해당하는 역할을 수행한다.
SELECT * FROM <table이름>을 입력하면 다음과 같이 원하는 table의 결과를 반환한다.
*에 원하는 field값을 넣으면 원하는 값만 추려서 확인할 수 있다.
field를 따옴표로 묶어서 입력하면 어떤 table을 선택할지 FROM부터 생략할 수 있다.
그 외에도 where을 사용하는 등 행을 지정하거나 순서를 바꾸는 등 여러 기능이 있는데,
아직은 처음 쓰는 과정이니까 정렬하는 여러 방법들은 프로젝트를 진행하며 익혀보려 한다.
3. UPDATE
- 관계형 데이터베이스의 테이블에서 이미 저장된 값을 수정한다.
- CRUD의 UPDATE 부분에 해당하는 역할을 수행한다.
테이블에서 id가 1인 데이터의 field값을 practice MySQL로 바꾼다.
*UPDATE 테이블명
*SET 필드명='바꿀 필드값'
*WHERE 조건절 ***WHERE를 적지 않으면 모든 데이터에 UPDATE가 적용된다.
UPDATE topic
SET title='practice MySQL'
WHERE id=1;
UPDATE한 후 SELECT를 통해 확인해보았다.
4. DELETE
- 관계형 데이터베이스의 테이블에서 이미 저장된 값을 삭제한다.
- CRUD의 DELETE 부분에 해당하는 역할을 수행한다.
*DELETE FROM 테이블명 WHERE 조건절
*테이블의 내용 중 이름이 practice MySQL에 해당하는 데이터를 모두 삭제한다.
***update와 마찬가지로 delete절에 where절을 적지 않으면 모든 데이터에 적용되어 데이터가 모두 삭제된다.
DELETE FROM topic
WHERE name='practice MySQL';
'개발 > DB' 카테고리의 다른 글
[sequelize] 서비스 - 모델 로직 분리, 리팩토링 과정 (0) | 2023.10.13 |
---|---|
[sql] 다른 schema 간 DB table 복사방법 (0) | 2023.08.26 |
[TypeORM] Nest.JS 없이 Node.JS + TypeORM 기본 세팅 (0) | 2023.08.02 |
[mySQL] root 비밀번호 오류 초기화 간단설명, 초기화해도 안되는 경우 (0) | 2023.07.05 |
[오류 해결]Error: Bind parameters must not contain undefined. To pass SQL NULL specify JS null (0) | 2023.06.14 |