MySQL :: Other MySQL Documentation
데이터베이스 다운로드
cd C:\temp
git clone https://github.com/datacharmer/test_db.git
1) PS C:\TEMP\test_db> mysql -u root -p
2) mysql> source employees.sql ;
3) mysql> show databases ;
1) 컨트롤 + 엔터 : 해당 줄 실행
MySQL :: MySQL Workbench Manual :: B Keyboard Shortcuts
#### 설치
mysql 8.2
워크벤치
#### 환경변수 (시스템 > path)
C:\Program Files\MySQL\MySQL Server 8.2\bin
#### 터미널 명령어
C:/ ...> 디렉토리 일때는 쉘 프로그램(wndow terminal) 안에 있는 상태
mysql> 일때는 mysql 프로그램 안에 있는 상태
exit; 혹은 quit; 명령어로 mysql 을 이탈해야 다시 터미널로 갈 수 있음
## 데이터베이스
데이터베이스는 체계화된 데이터의 모음으로, 구조화된 데이터라고도 합니다.
데이터를 관리하는 데 사용되는 소프트웨어인 데이터베이스 관리 시스템 (DBMS) 을 통해 관리할 수 있습니다
#### DBMS의 주요 특징
##### 데이터 모델링
DBMS는 데이터베이스의 데이터 구조와 관계를 정의하는 데이터 모델을 생성하고 수정하기 위한 도구를 제공합니다.
##### 데이터 저장 및 검색
DBMS는 데이터베이스에서 데이터를 저장하고 검색하는 역할을 하며, 데이터를 검색하고 쿼리하는 다양한 방법을 제공할 수 있습니다.
##### 동시성 제어
DBMS는 여러 사용자가 서로 충돌하지 않고 데이터에 액세스할 수 있도록 데이터베이스에 대한 동시 액세스를 제어하는 메커니즘을 제공합니다.
##### 데이터 무결성 및 보안
DBMS는 데이터 값에 대한 제약 조건, 데이터에 액세스할 수 있는 사람을 제한하는 액세스 제어 등 데이터 무결성 및 보안 제약 조건을 적용하기 위한 도구를 제공합니다.
##### 백업 및 복구
DBMS는 시스템 오류가 발생할 경우 데이터를 백업하고 복구하기 위한 메커니즘을 제공합니다.
### DBMS는 관계형 데이터베이스 관리 시스템(RDBMS)과 비관계형 데이터베이스 관리 시스템(NoSQL 또는 Non-SQL) 의 두 가지 유형으로 분류할 수 있습니다.
#### RDBMS
데이터는 테이블 형식으로 구성되며 각 테이블에는 일련의 행과 열이 있습니다. 데이터는 기본 키와 외래 키를 통해 서로 관련됩니다.
### NoSQL
데이터가 키-값 쌍, 문서, 그래프 또는 열 기반 형식으로 구성됩니다. 이는 대규모 고성능 시나리오를 처리하도록 설계되었습니다.
### 데이터베이스 언어
- 데이터 정의 언어(DDL)
- 데이터 조작 언어(DML)
- 데이터 제어 언어(DCL)
- 트랜잭션 제어 언어(TCL)
#### 데이터 정의 언어 (DDL)
DDL은 데이터 정의 언어(Data Definition Language)의 짧은 이름으로, 데이터베이스 스키마와 설명, 데이터가 데이터베이스에 상주하는 방법을 처리합니다.
CREATE: 데이터베이스 및 해당 객체(테이블, 인덱스, 뷰, 저장 프로시저, 함수 및 트리거)를 생성합니다.
ALTER: 기존 데이터베이스의 구조를 변경합니다.
DROP: 데이터베이스에서 객체를 삭제합니다.
TRUNCATE: 레코드에 할당된 모든 공간을 포함하여 테이블에서 모든 레코드를 제거합니다.
COMMENT: 데이터 사전에 설명을 추가합니다.
RENAME: 객체의 이름을 바꿉니다.
#### 데이터 조작 언어 (DML)
DML은 데이터 조작을 다루는 데이터 조작 언어(Data Manipulation Language)의 약칭으로 SELECT, INSERT, UPDATE, DELETE 등과 같은 가장 일반적인 SQL 문을 포함하며 데이터베이스의 데이터를 저장, 수정, 검색, 삭제 및 업데이트하는 데 사용됩니다. . 데이터 쿼리 언어(DQL)는 "데이터 조작 언어"의 하위 집합입니다. DQL의 가장 일반적인 명령은 SELECT 문입니다. SELECT 문은 테이블의 아무것도 변경하지 않고 테이블에서 데이터를 검색하는 데 도움이 됩니다.
SELECT: 데이터베이스에서 데이터를 검색합니다.
INSERT: 테이블에 데이터 삽입
업데이트: 테이블 내의 기존 데이터를 업데이트합니다.
DELETE: 데이터베이스 테이블에서 모든 레코드를 삭제합니다.
MERGE: UPSERT 작업(삽입 또는 업데이트)
CALL: PL/SQL 또는 Java 하위 프로그램 호출
EXPLAIN PLAN: 데이터 액세스 경로 해석
LOCK TABLE: 동시성 제어
#### 데이터 제어 언어 (DCL)
DCL은 데이터베이스에 대한 액세스 지정자 역할을 하는 Data Control Language의 약어입니다.(기본적으로 데이터베이스의 사용자에게 권한을 부여하고 취소합니다.
GRANT: 테이블에서 DML(SELECT, INSERT, DELETE,…) 명령을 실행할 수 있는 권한을 사용자에게 부여합니다.
REVOKE: 지정된 테이블에 대해 DML(SELECT, INSERT, DELETE,…) 명령을 실행하기 위한 사용자의 권한을 취소합니다.
#### 트랜잭션 제어 언어 (TCL)
TCL은 모든 유형의 트랜잭션 데이터와 모든 트랜잭션에 대한 관리자 역할을 하는 트랜잭션 제어 언어(Transactional Control Language)의 약자입니다. TCL의 명령 중 일부는 다음과 같습니다.
rollback : 데이터베이스의 변경 사항을 취소하거나 실행 취소하는 데 사용됩니다.
Commit : 데이터베이스에 변경 사항을 적용하거나 저장하는 데 사용됩니다.
savepoint : 데이터베이스에 임시로 데이터를 저장하는데 사용됩니다.
gui에서 edit이 안떠서 테이블 내 행 추가 수정이 안되는데 원인이 무엇인가요?
-> table내의 primary key(기본키)가 없어서 read only로만 테이블 접근이 가능합니다.