<목차>
1. DBMS 의 개념
1.1 RDBMS , MySQL 의 차이점
2. SQL 기본 개념
2.1 SQL 조작어
1. DBMS 데이터베이스 관리 시스템(Database Management System)
데이터 베이스 (Database)
데이터의 저장소.로서 데이터를 공유할 수 있도록 윤영에 필요한 모든 데이터를 통합하여 컴퓨터에 저장한 데이터를 의미하는데
데이터베이스는 많은 인원, 다수의 시스템 또는 다수의 프로그램이 사용할 목적으로 통합하여 관리되는 자료의 집합입니다.
데이터 베이스의 기능
여러 사용자 간의 데이터를 공유할 수 있다.
데이터의 중복성을 통제할 수 있다.
사용자들에게 다양한 인터페이스를 제공할 수 있다.
권한 없는 사용자의 데이터 접근을 통제할 수 있다.
데이터 간에 존재하는 복잡한 관련성을 쉽게 표현할 수 있다.
데이터 간의 무결성을 보장하며, 백업과 복원 기능을 제공한다.
DBMS 데이터베이스 관리 시스템(Database Management System)
데이터 베이스 관리 시스템의 약자로서 데이터를 저장하고 관리하는 소프트 웨어입니다.
사용자와 데이터 베이스간의 상호 작용하며 데이터 배이스에 정보를 저장하고 생성하거나 ,조회 변경등의 관리가 가능하며 데이터 추가, 변경, 검색, 삭제등 보안등의 기능을 지원하기도 합니다.
1.1 RDBMS , MySQL
관계형(RDBMS)
RDBMS는 관계형 데이터베이스를 관리하는 소프트웨어 시스템의 일반적인 용어입니다. 데이터는 테이블(표) 형태로 저장되며, 각 테이블은 행(Row)과 열(Column)로 구성됩니다.
테이블 간에는 관계를 설정하여 데이터를 구조화하고 관리합니다.
MySQL
RDBMS에 있는 소프트 웨어중 하나로 관계형 데이터 베이스를 기반으로 합니다.
비교적 속도가 빠르고 가벼운 DBMS 이고 다양한 운영체계와 호환성이 좋기 많이 사용되고 있습니다.
2. SQL 기본 개념
SQL
DBMS 에서 구현된 기능을 실행시키기 위해 특정된 언어 로서 데이터를 보관, 저장 ,삭제 수정, 등의 요청할 수 있게끔 만들어진 언어입니다.
크게 3가지 틀로 나뉘어져 있으며
로 나뉘어 지게 됩니다. 이를 설명하기위에서 먼저 테이블을 알아야하는데.
테이블
데이터베이스가 데이터를 저장하는 형태로 로서 엑셀프로그램의 시트 형태와 닮아 있습니다.
여기서 원하는 값을 저장하거나 삭제 수정을 하고싶을때 SQL의 언어를 사용하게 됩니다.
스키마
데이터베이스 스키마는 관계형 데이터베이스 내에서 데이터가 구성되는 방식을 정의합니다. 여기에는 테이블 이름, 필드, 데이터 형식 및 이러한 엔티티 간의 관계와 같은 논리적 제약 조건이 포함됩니다.
DDL (Data Definition Landuage)
데이터베이스의 구조를 정의하거나 스키마를 조작하는데 사용되는 명령어입니다.
CREATE : 테이블이나 데이터베이스를 만들기 위해 사용.
SHOW: 테이블이나 데이터베이스를 보기위해 사용.
ALTER: 기존 테이블 구조를 수정(컬럼 추가/삭제/변경 등)
DROP: 데이터베이스 객체를 삭제.
TRUNCATE: 테이블의 데이터를 모두 삭제(구조는 유지)
DML (Data Manipulation Language)
DML은 데이터베이스 내부 데이터를 조작(조회,삽입,수정,삭제)하는데 사용하는 명령어입니다. (CRUD)
SELECT : 데이터를 조회.
SELECT * <= *은 전체를 보겠다는의미 이므로 저자리에 user_id 등을 넣으면 해당 벨류값만 볼 수 있다.
SELECT * FROM (보드) WHERE (보고싶은 유저의 키값) =(아이디 이름)
INSERT: 데이터를 삽입.
INSERT INTO (테이블) (테이블 안에 있는 키값) values(전달할 벨류값)
인자값으로 값을 전달 하는 것 처럼 vlog 안에 있는 테이블에 값과 유저를 추가.테이블안에 없는 키값이거나
키값을 넘어가는 인자를 넘어가면 오류가 걸림
UPDATE: 데이터를 수정
UPDATE (테이블이름) SET title = "수정할 제목", content = "수정할 내용" WHERE (수정하고 싶은 아이디) user_id = user1 ;
DELETE: 데이터를 삭제
DELETE FROM(테이블 이름) WHERE (삭제하고 싶은 아이디) user_id = user1 ;
DCL(Data Control Language)
DCL 은 데이터베이스의 접근 권한을 제어하거나 보안을 관리하는 명령어입니다.
계정 생성
CREATE USER (사용할 이름) IDENTIFED BY (사용할비밀번호)
권한 부여
GRANT (주고 싶은 권한 SELECT 나 INSERT 등등 아래는 모든권한을줌) ON (권한을 줄 데이터 베이스, *(별을 줬지만 테이블을 선택가능 )) TO (해당 유저에게)
ALL PRIVLEGES => 모든 권한을 줌 *(데이터베이스).*(앞의 데이터베이스하위 모든 테이블)에 권한을 줌.
권환을 확인 하는법
권한 회수
REVOKE 를 사용
기타 명령어
필드타입
데이터베이스에서 사용하는 데이터의 종류를 정의하는 것을 `필드 타입`이라고 합니다.
숫자형
INT
정수형 데이터로, 4바이트의 메모리를 사용
범위: -2,147,483,648 부터 2,147,483,647 까지의 정수를 표현할 수 있음.
문자형
CHAR : 고정 길이의 문자열을 저장할 때 사용.
VARCHAR: 가변길이의 문자열을 저장할 때 사용.
TEXT: 최대 65,535바이트까지의 긴 문자열을 저장할 때 사용. VARCHAR(65,535)
날짜형
DATE: 날짜를 저장. 형식은 `yyyy-mm-dd`.
TIME: 시간을 저장. 형식은 `HH:MM:SS`.
DATETIME: 날짜와 시간을 함께 저장. 8바이트의 메모리를 사용. 형식은 `YYYY-MM-DD HH:MM:SS`.
TIMESTAMP: 날짜와 시간을 정수 형태로 저장. 4바이트의 메모리를 사용. 주로 데이터가 생성하거나수정된 시간을 기록될 떄 사용. - YEAR: 연도를 저장. 1바이트의 메모리를 사용.
이런식으로 테이블을 생성할때 데이터 타입과 크기를 잘 생각하고 넣어야한다.
DEFAULT : 기본값으로 설정 (초기값)
DATETIME CURRENT_TIMESTAMP : 기본값으로 현재 시간을 자동으로 설정
PRIMARY KEY : 각 레코드를 고유하게 식별하는 키. 중복된 값을 가질 수 없음. NULL값 허용안함.
AUTO_INCREMENT : 새로운 레코드가 추가될 떄마다 자동으로 1씩 증가하는 숫자 생성
테이블 이름 바꾸기
보드 조회 기능
DESC (보드)