[DB] MySQL

NORMAN·2023년 10월 24일
0

DB

목록 보기
2/6

관계형 데이터베이스

데이터가 하나 이상의 열과 행의 테이블(또는 '관계')에 저장되어 서로 다른 데이터 구조가 어떻게 관련되어 있는지 쉽게 파악하고 이해할 수 있도록 사전 정의된 관계

즉, 데이터를 구성하는 정보 모음
특징 : 데이터를 로 표시

SQL

Structured Query Language로 관계형 데이터베이스를 다룰 때 사용되는 표준 언어

RDBMS

Relational Database Management System으로 관계형 데이터베이스 관리 시스템
대표적으로 MySQL이 있음

위 그림은 관계형 데이터베이스 구성이다.
데이터를 테이블 안에 저장, 테이블의 묶음 하나가 데이터베이스가 된다.

MySQL 기초 문법


위의 표를 만들어 보자

  • CREATE DATABASE <데이터베이스 명>;
    -> 데이터베이스 생성

  • DROP DATABASE <데이터베이스 명>;
    -> 데이터베이스 삭제

  • SHOW DATABASE;
    -> 데이터베이스 목록 확인

  • USE <데이터베이스 명>;
    -> 데이터베이스 선택

  • CREATE TABLE <테이블 명> (
    [칼럼1] [데이터 타입] [설정],
    [칼럼2] [데이터 타입] [설정],
    [칼럼3] [데이터 타입] [설정]
    )
    테이블을 만들 때 칼럼을 설정해야 한다.
    칼럼과 데이터 타입 입력은 필수, 선택적으로 설정 추가 가능

    데이터 타입에 관한 정보 링크
    https://www.w3schools.com/sql/sql_datatypes.asp

USE mydb01;
CREATE TABLE topic(
    id INT(11) NOT NULL AUTO_INCREMENT,
    title VARCHAR(100) NOT NULL, 
    description TEXT NULL,
    created DATETIME NOT NULL,
    author VARCHAR(30) NULL,
    profile VARCHAR(100) NULL,
    PRIMARY KEY(id)
    
)

위는 테이블 생성 예시
코드를 보면

  • id 칼럼을 INT로 설정
  • NOT NULL : 비어있으면 안된다는 뜻
  • AUTO_INCREMENT : 자동으로 1씩 증가
  • INT 소괄호는 몇 개의 데이터(행)를 노출시킬지 결정
  • VARCHAR의 소괄호 의미 : 최대 글자 수
  • PRIMARY : 칼럼명이 아닌 예약어, 어떤 칼럼을 기본키로 설정할지 결정

데이터의 CRUD

CRUD는 Create, Read, Update, Delete로 데이터를 다루는 가장 기본적인 동작

  • DESC <테이블 명> : 테이블 구조 정보 표시

CREATE

INSERT INTO topic (title,description,created,author,profile) VALUES('MySQL','MySQL is ...',NOW(),'egoing','developer');
INSERT INTO topic (title,description,created,author,profile) VALUES('SQL Server', 'SQL Server is ...', NOW(), 'duru', 'data administrator');
  • INSERT INTO 테이블 명(필드1, 필드2, 필드3 ...) VALUES(데이터값1, 데이터값2, 데이터값3, ...);
  • INSERT INTO 테이블 명 VALUES(데이터값1, 데이터값2, 데이터값3, ...); 로 필드 생략 가능

READ

SELECT * FROM topic;
// topic 테이블의 모든 칼럼의 모든 데이터를 표시
SELECT id,title,author FROM topic;
// id, title, author 칼럼의 데이터만 표시
SELECT id,title,author FROM topic WHERE aurthor='egoing';
// author가 egoing인 데이터를 표시
SELECT id,title,author FROM topic WHERE aurthor='egoing' ORDER BY id;
// 데이터를 id로 정렬하여 표시
SELECT id,title,author FROM topic WHERE aurthor='egoing' ORDER BY id LIMIT 2;
// 2개까지만 표시 
  • SELECT 칼럼 FROM 테이블;
  • *는 모든 칼럼
  • WHERE : 조건, 위에서는 aurthor가 egoing인 모든 데이터 가져옴
  • ORDERD BY : 정렬
  • ORDERD BY에 DESC 넣으면 내림차순 (default는 오름차순)

UPDATE & DELETE

UPDATE topic SET description='ORACLE is ...', title='Oracle' WHERE ID = 2;

DELETE FROM topic WHERE id = 2;
  • UPDATE 테이블 SET 수정내용
  • DELETE FROM 테이블 WHERE 조건
  • WHERE로 조건 설정하는 것 주의
profile
백엔드 개발자 노먼입니다.

0개의 댓글