DBMS 10

[DBMS] DB 연동

package com.lec.java.db; public interface Query { // 1. DB 연동을 위한 정보들(상수들)을 정의(세팅) // JDBC 드라이버 클래스 정보 public static final String DRIVER = "com.mysql.cj.jdbc.Driver"; // MySQL 8.x 위 libs 폴더의 mysql-connector-java-8.0.*.jar 파일 추가 Order and Export 탭에서 우선순위 Up (권장) 1. DB 연동을 위한 정보들(상수들)을 정의(세팅) 2. JDBC 드라이버 클래스를 메모리에 로드 3. DB와 connection(연결)을 맺음 4. Statement 인스턴스를 생성 (SQL을 사용하기 위한 인스턴스) 5. SQL 문장 작성..

DBMS 2022.02.25

[DBMS] Constraint 제약조건

Constraint * 데이터 무결성(Integrity) : 저장된 데이터에는 ‘잘못된 데이터’ 가 없어야 한다 ex) 기본키(Primary key) 로 설정된 필드는 중복된 값 이나 NULL 값이 들어올수 없다 성별 필드에는 ‘남’, ‘여’ 외에는 다른 값이 들어올수 없다. 주문수량 필드는 반드시 1 이상의 값이 들어와야 한다. …. * 제약조건 (Constraint) - DBMS 는 데이터의 무결성을 보장하기 위해, 잘못된 데이터가 저장되는 것을 방지 하기 위해 ‘제약조건(Constraint)’ 을 사용한다 - 제약조건은 테이블의 ‘컬럼’ 에 설정하여 사용한다. - 해당 ‘컬럼’에 설정된 제약조건에 위배된 데이터가 들어오는 경우 에러 발생 * 제약조건 종류 * 무결성 종류 -- MySQL 에서 Tab..

DBMS 2022.02.24

[DBMS] View

View 가상테이블 View 란 - 가상의 테이블 - 실제 Table 에는 데이터가 있지만, View에는 데이터는 없고 SQL만 저장 - View에 접근할 때는 View에 들어있던 SQL의 수행된 결과를 가져오는 것 - View를 사용하는 목적 - 보안 : 특정 테이블의 특정 column이 보여지면 안되는 경우 - 편의성 : 가령 여러개의 테이블 join 하는게 매번 귀찮을 때 아예 그것을 view로 만들어 놓으면 편함. View 종류 - 단순 View (Simple View) - 복합 View (Complex View) - 인라인 View (INLINE View) - Materialized View (MView) * 단순 View (Simple View) View를 생성할 서브쿼리에 join 조건 안들..

DBMS 2022.02.24

[DBMS] Join, Sub Query

* Join 이란 하나의 테이블뿐이 아니라, 여러개의 테이블에서 정보를 가져와서 결과를 만들어 주는 기법을 Join 이라 합니다. 관계형 데이터베이스(RDBMS) 의 가장 핵심 기술중 하나. ANSI join 방식이 있고, DBMS마다 특화된 방식이 있긴 하나 하나 원리를 알면 다른 방법은 손쉽게 알수 있습니다. * 카티션 곱 (Cartesian Product) - 두개의 테이블을 JOIN 하게 되면, 각 테이블의 레코드들의 모든 조합이 출력된다. - WHERE 나 ON 등으로 JOIN 조건이 주어지지 않으면 모든 카티션곱이 출력된다. -> t_emp 는 14개, t_dept 는 4개 그래서 t_emp X t_dept → 56개로 이루어진 카티션 곱이 나온다. ** 출력하는 필드에 별명을 붙일수 있듯이 ..

DBMS 2022.02.23

[DBMS] AggregateFunction

그룹합수 여러개의 레코드의 필드 값을 계산하여 값을 내는 함수 다양한 그룹함수들이 있다. Name Description AVG() 평균값 출력 BIT_AND() 비트 연산 AND 값 BIT_OR() 비트 연산 OR 값 BIT_XOR() 비트 연산 XOR값 COUNT(DISTINCT) 서로 구분되는 레코드 개수 출력 COUNT() 레코드 개수 출력 GROUP_CONCAT() 문자열 연결하여 출력 MAX() 최대값 출력 MIN() 최소값 출력 STD() 표준편차 STDDEV_POP() Return the population standard deviation STDDEV_SAMP() Return the sample standard deviation STDDEV() Return the population sta..

DBMS 2022.02.23

[DBMS] Single-Row Function

단일행 함수 ? vs 그룹 함수? 단일행 함수(Single-Row Function)는 테이블 데이터에 여러개(레코드)에 ‘각각 적용’되어 산출 그룹함수(Aggregate Function) 는 여러 개(레코드) 를 동시에 입력받아 ‘한개의 결과값’ 산출 단일행 함수 종류 Lower() , upper() -- lower(), upper() SELECT 'Hello', lower('Hello'), upper('Hello'); -- t_student 테이블 : 1전공(deptno1) 이 201번인 학생들의 -- ID를 이름과 함께 소문자, 대문자로 출력 / upper() 사용 SELECT name, id, lower(id) 소문자, upper(id) 대문자 FROM t_student WHERE deptno1 =..

DBMS 2022.02.23

[DBMS] Transaction, Select

DCL : Data Control Language - commit : 작업결과를 물리적 디스크에 저장. manipulation 작업이 정상적으로 완료 - rollback : 원래의 데이터 상태로 복구 - 기본적으로 MySQL 은 auto-commit 이다 - DML 은 실행 즉시 물리적인 데이터에 반영된다. - commit 을 사용하려면 auto commit 부터 비활성화 해야 한다. - rollback 하기 전까진, 마지막으로 commit 한 지점으로의 복구 가능하다. -- 테이블과 데이터 준비 DESC phonebook; SELECT * FROM phonebook ; DROP TABLE IF EXISTS phonebook; CREATE TABLE phonebook( id int PRIMARY KEY ..

DBMS 2022.02.22

[DBMS] DML (Data Manipulation Language)

DML (Data Manipulation Language) INSERT (레코드 생성) UPDATE (레코드 수정) DELETE (레코드 삭제) SELECT (레코드 조회) INSERT (레코드 생성) INSERT INTO [tablename] VALUES(값1, 값2, ...); INSERT INTO [tablename] (col1, col2, ...) VALUES(값1, 값2, ...); 테이블에 레코드 추가(생성) 컬럼이름이 생략된 경우 테이블이 정의된 컬럼 순서와 같은 순서로 입력 INSERT INTO phonebook VALUES(4, 'jake', '010-1234-5678', 'test@test.com', '2021-10-06 21:06:23'); INSERT INTO phonebook (i..

DBMS 2022.02.22

[DBMS] Database, DDL

Database 란 여러 사람이 공동으로 공유하여 사용할 목적으로, 통합하여 관리되는 저장된 형태의 데이터의 집합. 자료 항목의 중복을 없애고 자료를 구조화하여 저장함으로써 자료 검색과 갱신등 운영의 효율을 높인 데이터의 집합 우리가 일상에 사용하는 모든 것들이 데이터베이스를 통해 열람하고, 사용하고, 생산하고, 수정하고, 삭제하게 된다. ex) 게시판글 작성, 카톡채팅, 게임접속, 은행거래, 웹사이트 열람... * DBMS (Database Management System) 란 ‘사용자’ 와 ‘데이터베이스 (DB)’ 사이에서 사용자의 요구(query) 에 따라 정보를 생성해주고 데이버베이스를 관리해주는 소프트웨어 집합이다. * 하나의 database 에는 여러 table 들로 구성 - 보통 databa..

DBMS 2022.02.22

[SQL] 설치, DML

DB(DataBase) 데이터가 모여있는 저장소 데이터들을 통합하여 관리하는 집합체 DBMS(DataBase Management System) 데이터베이스를 관리하는 소프트웨어 MySQL 사용 DB-Engines https://db-engines.com/en/ranking MySQL 다운로드 https://dev.mysql.com/downloads/windows/installer/8.0.html 아래꺼 download > 설치파일 실행 > execute, next, finish 적절하게 클릭 > 비밀번호 : 1234, port : 3306, 비밀번호 형식(radio버튼 크게 두개) 나오면 아래꺼 클릭 DBMS를 사용하는 이유 중복된 데이터를 제거 자료를 구조화 시킬 수 있음 효율적인 처리 다양한 프로그램..

DBMS 2022.01.20