본문 바로가기

CS

(7)
DML : 단일 테이블 갱신문 INSERT 문 : 테이블에 튜플을 삽입함 [일반 형식1] INSERT INTO 테이블명 [(컬럼명_리스트)] VALUES {(컬럼값_리스트),}+; [일반 형식2] INSERT INTO 테이블명 [(컬럼명_리스트)] SELECT 문; ⚠️ 테이블이 미리 정의되어 있어야 함 DELETE 문 : 테이블에서 (튜플 조건식을 만족하는) 튜플을 삭제함 DELETE FROM 테이블명 [WHERE 튜플_조건식]; Safe_Updates Mode (in MySQL) : 많은 수의 튜플을 실수로 삭제 / 수정하는 상황을 방지하기 위해 실행함 Safe_Updates Mode에서는 다음의 두 경우만 DELETE 문 혹은 UPDATE 문이 실행됨 PK 혹은 PK의 일부만으로 튜플 조건식을 서술 LIMIT 절을 사용 MySQ..
DML : 단일 테이블 검색문 (Part 2) GROUP BY / HAVING GROUP BY 절 : 기준 컬럼 값에 따라 튜플을 그룹별로 묶는 기능을 제공 HAVING 절을 추가하여 원하는 특정 그룹만 선택할 수 있음 일반적으로 집계 함수를 같이 사용하여 그룹별 통계치를 생성함 GROUP BY 절이 생성하는 임시 테이블 표준 SQL GROUP BY 절을 실행하면 “그룹핑 기준 컬럼” 과 “집계 함수 기준 컬럼” 만으로 구성된 임시 테이블을 메모리에 생성함 메모리에 없는 컬럼은 SELECT 절에서 사용할 수 없음 MySQL 모든 컬럼을 메모리에 저장하도록 제어할 수 있음 (ONLY_FULL_GROUP_BY 모드를 제거) 모든 컬럼을 메모리에 저장할 경우, 이 컬럼들을 SELECT 절에서 사용 가능함 그러나 대부분의 경우 기준 컬럼 이외의 컬럼 사용은..
DML : 단일 테이블 검색문 (Part 1) SQL DML(Data Manipulation Language) 검색 (query) 검색 : SELECT 문 갱신 (update) 삽입 : INSERT 문 삭제 : DELETE 문 수정 : UPDATE 문 SELECT 문 SELECT 문의 실행 순서 SELECT [ALL | DISTINCT] {{컬럼 [[AS] 컬럼_별칭],}+ | *} // PROJECT 연산자 FROM 테이블_리스트 // JOIN 연산자 [WHERE 튜플_조건식] // SELECT 연산자 [GROUP BY 컬럼명 [HAVING 그룹_조건식]] [ORDER BY {컬럼명|컬럼_별칭|컬럼_위치 [ASC|DESC],}+] [LIMIT [offset,] row_count]; 실행 대상 테이블을 참조한다 (FROM) 조건에 맞는 튜플만 선택한..
스키마와 테이블 정의 SQL 데이터 타입 숫자형 정수형 : INTEGER, SMALLINT, … 실수형 : DECIMAL, FLOAT, REAL, DOUBLE 문자형 고정길이 문자열 : CHAR(n) 항상 n개 문자를 저장 가변길이 문자열 : VARCHAR(n) 최대 n개 문자까지 저장 날짜형 DATE TIME TIMESTAMP : DATE & TIME INTERVAL MySQL의 데이터 타입 숫자형(Numeric) 컬럼의 디폴트 부호 특성은 SIGNED 문자형(Character) 이진 문자형(Binary String) 날짜형(Temporal) 데이터 정의문(DDL) SQL 명령문의 종류 데이터 정의문(DDL) 데이터 조작문(DML) 데이터 제어문(DCL) 트랜젝션 제어문(TCL) 💡 SQL 표준에서의 용어 릴레이션 → 테이..
다양한 ERD 표기법 데이터베이스 설계(DB Design) 개념적 설계 : 사람이 이해하기 쉽게 , 데이터의 관계를 개념적으로 시각화 개체-관계 데이터 모델 : 데이터를 개체 타입(entity type)과 관계 타입(relationship type)으로 추상화함 → ERD(Entity-Relationship Diagram) 논리적 설계 : 컴퓨터에 저장하기 위해, 데이터의 논리적 구조를 표현함 ******관계 데이터 모델****** : 데이터의 구조를 릴레이션, 즉 테이블로 구체화함 변환 규칙을 이용하여 ERD에서 테이블을 자동으로 생성함 ERD : DB에 저장된 테이블의 구조, 그리고 그들의 관계를 시각화한 도면 ERD의 이해 ERD에서 표현하는 내용 테이블의 구조(structure) 테이블 간의 관계(relationshi..
관계 데이터 모델과 관계 연산자 관계 데이터 모델(Relational Data Model) 데이터 모델 데이터의 관계, 접근과 그 흐름에 필요한 처리 과정에 관한 추상화된 모형 SW 개발과 유지보수의 기준 데이터 구조, 제약조건, 연산에 관한 수학적 모형 관계 데이터 모델(Relational Data Model) : 관계형 DBMS 소프트웨어 개발의 이론적 토대 관계 데이터 구조 관계 제약 관계 대수 1. 관계 데이터 구조 : 관계형 DBMS에서 저장하는 데이터의 구조 모든 데이터를 테이블(table)로 표현하여 저장 테이블로 표현할 수 없는 데이터는 저장할 수 없음 릴레이션 : 테이블을 릴레이션(relation)이라 함 릴레이션은 속성(attribute)로 구성됨 원자값, NULL 값(ASCII 코드 00) 다중값 속성을 허용하지 않..
[MySQL] JOIN JOIN은 여러 테이블에 저장된 데이터를 하나의 SQL문으로 검색할 수 있게 해준다. 두 개 이상의 테이블을 JOIN하기 위해서는 Foreign key(외래키)가 적어도 하나 이상 있어야 한다. 아래의 그림을 보면서 JOIN에 대해 더 자세히 알아보자. 우선 JOIN할 두 테이블을 생성하자. create table `user` ( `id` int not null, `name` varchar(10) not null, `age` int not null, primary key(`id`) ); insert into user (id, name, age) values (1, '홍길동', 24), (2, '김철수', 23), (3, '박아무개', 21), (4, '이홍녀', 25); create table `scho..