TIL 22일차 (20240124)

박세연·2024년 1월 24일

TIL

목록 보기
17/70


오늘부터 노드 숙련 강의 시작!🔥🔥🔥 이번에는 빠르게 완강하고 과제에 집중하리라 (3시 밤샘은 이제 그만...)
용어 의미와 용도를 외우는 것이 약하다보니 강의 자료에 있던 용어들을 대다수 TIL에 작성할 예정
( *︾▽︾)

✨ 관계형 데이터베이스 (RDB) <- mySQL이 여기에 해당

  • 각 데이터를 '테이블'이라는 표 형태의 구조에 저장
  • 테이블: 여러 정보를 저장, 테이블 간에 연관 관계를 설정하여 여러 테이블에 분산된 데이터를 서로 연결하여 관리할 수 있음. 고유한 데이터를 나타내는 '행(row)'과 데이터의 속성을 나타내는 '열(column)'을 가짐
  • 이 테이블들은 서로 연결될 수 있으며 이를 통해 복잡한 데이터를 관리, 더 안전한 서버 환경을 구성할 수 있음

➕ 비관계형 데이터베이스(NoSQL)

: 유연한 데이터 구조를 가지므로 저장과 읽기 작업이 더 빠르며 복잡한 비즈니스 로직 없이 주로 데이터 읽기와 쓰기에 중점을 둔 서버에서 주로 사용
→ 빅데이터 환경이나 단순 페이지뷰가 많은 어플리케이션에서 주로 사용
→ 관계형 데이터베이스는 보안이 중요한 기관이나 은행과 같은 안전성을 중시하는 회사들에서 주로 사용


⭐⭐ SQL (Structured Query Language)

: 데이터베이스에서 사용되는 생성, 삽입, 조회 명령문

🦜 DDL (Data Definition Language)

: 데이터를 정의할 때 사용하는 언어, 테이블이나 데이터베이스를 생성, 수정, 삭제와 같은 행위를 할 때 사용

- Create

: Database, Table, View, Index를 생성할 때 사용

CREATE DATABASE 데이터베이스명;
CREATE TABLE 테이블명
{
 컬럼명 컬럼속성
}

- Drop

: Database, Table, View, Index를 삭제할 때 사용

DROP DATABASE 데이터베이스명;
DROP TABLE 테이블명;

- Alter

: Database, Table 등의 속성을 변경할 때 사용

ALTER DATABASE 데이터베이스명 변경조건;
ALTER TABLE 테이블명 ADD 변경조건; -- 테이블에 새로운 컬럼을 추가합니다.
ALTER TABLE 테이블명 DROP 변경조건; -- 테이블에서 컬럼을 삭제합니다.
ALTER TABLE 테이블명 MODIFY 변경조건; -- 테이블의 컬럼을 수정합니다.
ALTER TABLE 테이블명 RENAME 변경조건; -- 테이블의 이름을 변경합니다.

🦜 DML (Data Manipulation Language)

: 데이터베이스에서 데이터를 조작할 때 사용하는 언어. 데이터의 저장, 삭제, 수정, 조회에 사용

- ⭐⭐ Select

: 일반적으로 Table에서 원하는 데이터들을 조회할 때 사용

SELECT 컬럼목록 FROM 테이블명 [WHERE 조건];

- Insert

: Table에 새로운 데이터를 삽입할 때 사용

INSERT INTO 테이블명 (컬럼목록) VALUES (값목록);

- Delete

: Table에서 특정한 조건에 맞는 데이터들을 삭제할 때 사용. where 조건이 없다면 모든 데이터가 삭제됨

DELETE FROM 테이블명 [WHERE 조건];

- Update

: Table에서 특정한 조건에 맞는 데이터들을 수정할 때 사용. where 조건이 없다면 모든 데이터가 수정됨

UPDATE 테이블명 SET 컬럼 = 값 [WHERE 조건];

🦜 DCL (Data Control Language)

: 데이터베이스에 대한 권한과 관련된 문법, 특정 유저가 DB에 접근할 수 있는 권한을 설정할 때 사용

- GRANT

: 데이터베이스의 특정한 유저에게 사용 권한을 부여

GRANT [권한] ON 객체명 TO 사용자;

- REVOKE

: 데이터베이스의 특정한 유저에게 사용 권한을 취소

REVOKE [권한] ON 객체명 FROM 사용자;

🦜 TCL (Transaction Control Language)

: 데이터베이스 내의 트랜잭션을 관리하는 문법, 트랜잭션의 시작과 종료, 롤백을 수행할 때 사용
(트랜잭션: 데이터베이스의 상태를 변화시키기 위해서 수행하는 작업의 단위
출처: https://mommoo.tistory.com/62)

- COMMIT

: 데이터베이스의 작업이 정상적으로 완료되었음을 관리자에게 알려줄 때 사용

START TRANSACTION;
...
COMMIT;

- ROLLBACK

: 데이터베이스의 작업이 비정상적으로 완료되었음을 관리자에게 알려줄 때 사용, 작업 중 오류가 발생한 경우 이를 취소하고, 이전 상태로 되돌릴 때 사용

START TRANSACTION;
...
ROLLBACK;

⭐⭐ SQL 제약 조건

: 각 컬럼들간의 제한 사항을 관리, 조건을 위반하는 데이터를 방지하여 데이터베이스의 무결성(데이터가 결함없이 정확하고 완전함)을 보장하는 규칙

제약 조건의 종류

  • 고유 제약 조건: 테이블에 소속된 특정 칼럼이 중복된 키를 가질 수 없는 조건
  • NULL 제약 조건: 특정 칼럼이 값 입력받지 않거나(NULL), 무조건 값을 입력받거나(NOT NULL)하는 조건

✏️ 외래 키 제약 조건(foreign key): 테이블 간의 관계를 설정하는 조건. 한 테이블의 column이 다른 테이블의 특정 row를 참조하도록 설정하는 조건

CREATE table Garden(
    gardenId int(11) NOT NULL AUTO_INCREMENT PRIMARY KEY,
    name varchar(255) NOT NULL UNIQUE,
    address varchar varchar(255) NOT NULL unique
);

create table GardenPlants(
    gardenPlantsId int(11) NOT NULL AUTO_INCREMENT PRIMARY KEY,
    gardenId int(11) NOT NULL,
    name varchar(255) NOT NULL,
    FOREIGN KEY(gardenId) REFERENCES Garden(gardenId)
);

아래 GardenPlants의 제일 마지막 FOREIGN KEY() 괄호 안에 지금 테이블에서 연관 지을 칼럼, REFERENCES 옆에 참조할 테이블(row)를 작성한다.

✏️ 기본 키 제약 조건(primary key)
: 테이블 내에서 각 행(row)를 고유하게 식별할 수 있도록 보장하는 조건

userId int(11)      NOT NULL AUTO_INCREMENT PRIMARY KEY
profile
배워나가는 중

0개의 댓글