본문 바로가기

카테고리 없음

DB 를 공부해보자

728x90

용어정리

 

DataBase : 공유하여 사용할 목적으로 체계화해 관리하는 데이터의 집합. 

DataBase Shema :  자료의 구조, 자료의 표현 방법, 자료 간의 관계를 정의한 구조

Table : 데이터를 저장한 표

DataBase Model : 데이터를 집합하기 위한 형태의 종류, ex) RDBMS

SQL : RDBMS의 데이터를 관리하기 위해 만들어진 프로그래밍 언어

DataBase Server : database를 모아 저장하기 위한 서버 ex) MySQL

 

Database Server 설치하기

MySQL communtity server 설치 -> terminal에서 접속

 

mysql -uroot -p

 

-u: user

-p: password

 

 

Database 만들고,확인하고, 사용하고 지워보기

 

CREATE DATABASE my_data;

SHOW DATABASES;

USE my_data;

DROP DATABASE my_data;

 

use 명령어를 이용해, database의 이름을 선택하면 내가 앞으로 내릴 명령어 들은 해당 database를 기준으로 하는 말들이야 라는 의미.

 

 

Table 만들기

 

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

topic : 테이블 이름

id : 테이블의 첫번째 컬럼명

INT(11) : 정수타입, 11글자 까지만 저장

NOT NULL : 필수값

AUTO_INCREAMENT : 자동으로 증가하도록 설정

NULL : 비어있는 값 가능

PRIMARY KEY(id) : id를 이 테이블의 주요 키로 사용하겠다

 

 

TABLE 보기

 

SHOW TABLES;

 

 

TABLE의 컬럼 상세 보기

 

DESC topic;

 

TABLE에 데이터 넣기 (CREATE)

 

INSERT INTO topic (title, description, created, author, profile) 
values ('제목', '내용', NOW(), '글쓴이', '개발자');

 

TABLE 데이터 읽기 (READ)

 

SELECT * FROM topic;

SELECT id,title,description,created FROM topic WHERE author = 'egonig';

SELECT * FROM topic WHERE author = 'egonig' ORDER BY id DESC;

SELECT * FROM topic ORDER BY id DESC LIMIT 3;

https://dev.mysql.com/doc/refman/8.0/en/select.html

 

 

TABLE 데이터 수정하기

 

UPDATE topic SET title='Oracle', created=NOW() WHERE id=2;

 

TABLE 데이터 삭제하기

 

DELETE FROM topic WHERE id=5;

 

관계형 데이터 베이스는 왜 필요할까?

 

하나의 테이블로 했을 때 장점 : 한 눈에 다 보임.직관적.

단점 : 불필요한 반복, 많은 저장공간이 필요

테이블을 쪼개고 관계를 맺어줬을 때 장점 : 데이터 중복 피할 수 있음. 

단점 :  테이블을 여러 개 읽어서 보아야함. -> SQL을 이용해 해결 가능

 

JOIN

 

SELECT * from topic LEFT JOIN author ON topic.author_id = author.id

 

SELECT topic.id AS topic_id,title,description,created,name,profile FROM topic LEFT JOIN author ON topic.author_id = author.id;

 

 

이 글은 생활코딩을 참고하였습니다.

728x90