1. 데이터베이스란?

      구조화된 데이터, 데이터의 저장소
          - 구조화의 장점
             (정렬을 할 수 있다. 정보의 성격을 빠르게 확인할 수 있다.)

      데이터베이스의 종류
            관계형 데이터베이스
                    mysql, oracle, mssql   (data를 sql문을 이용해서 제어할 수 있다.)
            nosql
                    mongodb
                    nosql-database

2. data관리 -- (SQL문)

1) database 생성

CREATED DATABASE `db_name` CHARACTER SET utf8 COLLATE utf8_general_ci

db_name 따옴표는 ~밑에 따옴표이다.
db_name 뒤는 관용적

2) database 삭제, 리스트 확인, database 사용

DROP DATABASE `db_name`;

show database;

use db_name;

3) table생성(파일과 유사한 역할)

스키마(schema)란?
테이블에 적제 될 데이터의 구조와 형식을 정의하는 것   (데이터 설계도와 같다.)

CREATE TABLE `db_name` (
  `id` tinyint NOT NULL ,
  `name` char(4) NOT NULL ,
  `sex` enum('남자','여자') NOT NULL ,
  `address` varchar(50) NOT NULL ,
  `birthday` datetime NOT NULL ,
  PRIMARY KEY (`id`)
);


desc db_name;  (db_name의 자세한 설정을 볼 수 있다.)

4) table에 data 삽입

INSERT INTO `student` VALUES (value1, value2, value3) 
--> colume 순서대로 넣어야한다.


INSERT INTO `student` (`id` , `name`, `sex`) VALUES (`1`, `egoing`, `남자`)
--> 앞에 써준 colume 순서대로 써야한다.
--> 원하는 colume만 넣어줄 수 있다.

5) data 변경

UPDATE `student` SET address='서울' ;
-> 모든 행 서울로 바꿈
UPDATE `student` SET name='이진경' WHERE id=1 ;
-> id 1 번 이름을 이진경으로 바꿈
UPDATE `student` SET name='이고잉', birthday='2001-4-1' WHERE id=3;
-> id 3인 행에 이름을 이고잉 생일을 바꿈

6) data 삭제

DELETE FROM student WHERE id = 2;
행단위로 데이터 삭제

TRUNCATE student;
data 전부 삭제

DROP TABLE student;
테이블을 지운다.

7) data 조회

SELECT 칼럼명1, 칼럼명2
	FROM 테이블명
	GROUP BY 칼럼명
	ORDERED BY 칼럼명 [ASC|DESC]
	LIMIT offset, 조회 할 행의 수

8) JOIN

join
테이블간의 관계성에 따라서 복수의 테이블을 결합, 하나의 테이블인 것처럼 결과를 출력

outer join:
매칭되는매칭 되는 행이 없어도 결과를 가져오고 매칭 되는 항이 없는 경우 NULL로 표시한다
left join, right join이 있다.

inner join:
조인하는 두 개의 테이블 모두에 데이터가 존재하는 경우에 대해서만 결과를 가져온다.

LEFT JOIN
-> outer join의 하나 왼쪽에 있는 테이블을 기준으로 오른쪽에 있는 테이블의 데이터를 가져오는 것

SELECT s.name, s.location_id, l.name AS address, l.distance  
	FROM student AS s LEFT JOIN location AS l ON s.location_id = l.id;
    
만약 결과 값을 제한하고 싶다면 
WHERE l.distance=10
WHERE s.location_id=3;


column 가져오는데 l.name은 address 로 가져오는 것 student는 s라는 별명을 줌
ON 결합의 조건
s.location_id라는 column과 l.id값이 같은 것이다.


outer join과 inner join의 차이
DELETE FROM location WHERE name='제주';

left join하면 제주가 NULL 로 붙음
inner join을 하면 NULL값이 추가 된다면 없애고 가져온다.

 

+ Recent posts