-
데이터베이스 (Database)web 2020. 6. 21. 19:020px
데이터를 어디에 저장해야 할까요?
만약에 유저의 클라이언트에 데이터를 저장한다면 유저가 클라이언트를 종료할때 사라질 것입니다.
그렇다면 서버에 데이터를 저장하는 것을 어떨까요? 유저가 페이지를 종료하여도 데이터는 서버에 남을 것입니다.
서버에 데이터를 보관하게 되었다면 아무런 문제가 없을까요? 데이터를 정리하지 않는다면 데이터를 불러오기 힘듭니다.
저장공간을 비효율적으로 사용하고, 찾는데에 시간이 걸리기 때문에 데이터를 관리하는데 특화된 서버를 만듭니다.
이를 데이터베이스 서버라고 부릅니다.
어떻게 데이터베이스에 데이터를 분류하고 저장하나요?
SQL(Structured Query Language)이라는 언어를 사용하여 데이터베이스에 접속하거나 조작합니다.
SQL로 어떤 명령을 내릴 수 있을까요?
데이터 검색
레코드 삽입
레코드 업데이트
레코드 삭제
새로운 DB생성
새로운 테이블생성
저장 프로시저 생성
뷰 생성
테이블, 프로시저, 뷰 권한설정
RDBMS(Relational Database Management System)이라는 관계형 데이터베이스 관리 시스템을 사용하여
데이터를 테이블이라는 데이터베이스 객체에 저장합니다. RDBMS는 ORACLE, mssql, MySQL 등이 있습니다.
테이블은 데이터 항목의 모음이며 레코드라고 부르는 행(row)과 필드라고 부르는 열(column)로 구성되어 있습니다.
레코드는 테이블에 존재하는 각 개별 항목이고, 필드는 모든 레코드에 대한 특정한 정보를 포함합니다.
아래의 표는 3개의 레코드(row)와 4개의 필드(column)로 구성되어 있습니다.
SQL명령을 통해서 데이터베이스의 테이블에 접근하여 조작할 수 있습니다.
중요한 SQL 명령들
SELECT- 데이터베이스에서 데이터를 추출
UPDATE-데이터베이스의 데이터를 업데이트
DELETE- 데이터베이스에서 데이터를 삭제
INSERT INTO- 데이터베이스에 새 데이터를 삽입
CREATE DATABASE- 새 데이터베이스를 생성
ALTER DATABASE- 데이터베이스 수정
CREATE TABLE- 새 테이블을 생성
ALTER TABLE- 테이블 수정
DROP TABLE- 테이블을 삭제
ALIASES- 색인을 생성 (검색 키)
DROP INDEX- 색인을 삭제
SELECT
데이터베이스에서 데이터를 선택합니다.
( * )은 해당 테이블의 모든 열을 선택합니다.
특정 필드(column)를 선택할 수 있습니다.
SELECT DISTINCT
테이블의 필드(column)에 중복된 값이 있다면 DISTINCT는 하나의 값을 보여줍니다.
WHERE
레코드를 필터링하여 지정된 조건을 충족하는 레코드만 추출합니다.
연산자를 사용하여 조건을 지정할 수 있습니다.
SQL에서 텍스트를 입력할 때에는 작은 따옴표가 필요하지만 숫자는 따옴표가 필요하지 않습니다.
Equal ( = ), Not equal ( <> )
Greater than ( > ), Less than ( < )
Greater than or equal ( >= ), Less than or equal ( <= )
Search for a pattern ( LIKE )
Between a certain range ( BETWEEN )
WHERE은 AND, OR, NOT과 결합하여 필터링 할 수 있습니다.
ORDER BY
결과 집합을 오름차순(ASC) 또는 내림차순(DESC)으로 정렬합니다.
만약에 기준을 여러개 설정한다면
동일한 데이터가 있을때에 다음 기준으로 정렬합니다.
INSERT INTO
두가지 방법으로 테이블에 새 레코드를 삽입할 수 있습니다.
첫번째 방법은 삽입할 필드(column)를 지정하여 값을 삽입합니다.
두번째 방법은 삽입할 필드를 지정하지 않습니다.
입력 순서대로 필드에 삽입됩니다.
DELETE
조건에 맞는 레코드를 제거합니다.
UPDATE
테이블의 기존 레코드(row)를 수정합니다.
WHERE을 생략하면 테이블의 모든 레코드가 업데이트됩니다.
SQL JOIN
둘 사이의 테이블의 레코드(row)를 필드(column)을 기반으로 결합합니다.
INNER JOIN
조건을 기준으로 두 테이블 모두에서 값이 일치하는 레코드를 선택합니다.
LEFT JOIN
왼쪽 테이블의 모든 레코드와 오른쪽 테이블의 일치된 레코드를 반환합니다.
왼쪽 테이블은 모든 레코드를 반환하지만 오른쪽에서 일치하는 것이 없으면 오른쪽의 값은 NULL입니다.
RIGHT JOIN
LEFT JOIN과 반대로 반환합니다.
오른쪽 테이블의 모든 레코드와 왼쪽 테이블의 일치된 레코드를 반환합니다.
오른쪽 테이블은 모든 레코드를 반환하지만 왼쪽에서 일치하는 것이 없으면 왼쪽의 값은 NULL입니다.
'web' 카테고리의 다른 글
(준비중) socket.io (0) 2020.09.04 배포하기 (0) 2020.06.22 React (0) 2020.06.07 인터넷 (The Internet) (0) 2020.05.24 Ajax (Asynchronous JavaScript and XML) (0) 2020.05.18