본문 바로가기

Database10

[MySQL]양방향 암호화 알고리즘 DB 함수 사용법 # 암호화 # aes_encrypt(); # 복호화 # aes_decrypt(); # MySQL HEX(AES_ENCRYPT('문자열', '암호화 키')); # 예시 # aes_encrypt 암호화 insert into 테이블명 values (hex(aes_encrypt('문자열', '암호화 키'))); # aes_decrypt 복호화 select aes_decrypt(unhex(필드명), '암호화 키') from 테이블명; # hex를 쓰는 이유는 2진법을 16진수로 표현하기 위해서 사용된다. # unhex를 쓰는 이유는 16진수를 2진법으로 표현하기 위해서 사용된다. 테스트용 테이블로 컬럼은 id, name, phone 이렇게 3개로 지정했다. 연락처만 암호화를 위해 암호화 함수를 활용해 연락처 값을.. 2022. 11. 22.
[MySQL] Schema + Table 생성 MySQL Workbench로 Schema + Table을 생성한다. Schema 생성 Name: 사용할 스키마(데이터베이스) 이름을 입력한다. Charset/Collation: 다양한 인코딩을 지원하는데, utf8 / Default Collation으로 상관없다. 하지만 🙂😛 등의 이모지(Emoji)를 DB에 적용하려면 사진과 같이 utf8mb4 / utf8mb4_bin로 설정한다. 설정이 완료되었으면 Apply를 누른다. CREATE SCHEMA `test_example` DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_bin ; Apply SQL Script to Database 창이 나타나는데, DDL이 이상 없는지 확인 후 Apply를 누른다. SQL Scrip.. 2022. 11. 18.
[국비] SQL 내용정리 Day07 PL/SQL 오라클에서 제공하는 SQL 프로그래밍 기능이다. 일반적으로 프로그래밍과 차이가 있지만, 오라클 내부에서 적절한 처리를 위해서 적용해 줄 수 있는 절차지향적 코드 작성 방식이다. 쿼리문의 집합으로 어떠한 동작을 일괄처리 하기 위한 용도로 사용한다. SET SERVEROUTPUT ON; -- 출력문 활성화 DECLARE -- 변수를 선언하는 구간(선언부) emp_num NUMBER; BEGIN -- 대입/출력문/기타등등 코드를 실행하는 시작구간(실행부) emp_num := 10; dbms_output.put_line(emp_num); -- 출력문 dbms_output.put_line('hello PL/SQL'); -- [EXCEPTION] 옵션 END; -- PL/SQL이 끝나는 구간(종료) -.. 2021. 12. 14.
[국비] SQL 내용정리 Day06 Modeling Quiz 영화 예매 사이트는 회원제로 관리되고 있으나 비회원인 경우에도 예매가 가능하다. 회원 가입을 위해서는 이름, 주민번호, 전화번호, 이메일, 회원 아이디, 비밀번호와 같은 기본적인 정보를 입력해야 한다. 여러 지점에 있는 극장에 대해서 영화를 예매할 수 있다. 예매가 순조롭게 이루어지려면 각 극장 지점명과 위치가 관리되어야 한다. 극장은 여러 개의 상영관이 있으며 각각의 상영관에서는 여러 종류의 영화가 상영된다. 영화표에는 해당 상영관의 좌석이 정해져서 기록되어 있다. 영화표를 예매할 때 고객들은 원하는 좌석을 지정할 수 있으며 예매일자와 예매 수량이 기록된다. 결제방법은 카드결제나 계좌이체 방법이 있다. 영화표를 예매할 때 회원의 경우에 한해서 포인트 점수가 적립된다. 예매한 영.. 2021. 12. 13.
[국비] SQL 내용정리 Day05 뷰(View) 뷰(view)는 테이블 또는 다른 뷰를 기초로 하는 논리적 테이블이다. 하나 이상의 테이블에서 원하는 모든 데이터를 선택해서 사용자 정의하여 나타낸 것이다. 제한적인 자료만 보기 위해 사용하는 가상테이블의 개념이다. 뷰는 기본 테이블로 유도된 가상 테이블이기 때문에 필요한 컬럼만 저장해 두면 관리가 용이해 진다. 뷰는 가상테이블로 실제 데이터가 물리적으로 저장된 형태는 아니다. 뷰를 통해서 데이터에 접근하면 원본 데이터는 안전하게 보호될 수 있다. 단순뷰: 한 개의 원본테이블을 사용해서 생성 복합 뷰: 두 개 이상의 테이블에 의해 생성(조인을 통해 생성한 view) 특징 단순 뷰 복합 뷰 테이블 수 하나 둘 이상 함수 포함 없음 있음 데이터 그룹 포함 없음 있음 뷰를 통한 DML 있음 없음.. 2021. 12. 11.
[국비] SQL 내용정리 Day04 트랜잭션(Transaction) 트랜잭션은 논리적인 작업의 단위이다. 트랜잭션은 분리되어서는 안 될 작업의 단위이다. 트랜잭션의 시작은 실행 가능한 첫 번째 SQL 문장이 실행 될 때 시작한다. 트랜잭션은 COMMIT이나 ROLLBACK문에 의해 명시적으로 종료하거나, DDL이나 DCL 문장 실행으로 자동 커밋되어 종료될 수 있다. 사용자의 데이터베이스 종료 또는 시스템 충돌(Crash)에 의한 데이터베이스 비정상적 종료에 의해 트랜잭션이 종료되어 변경사항이 취소될 수 있다. -- Auto Commit 확인 SHOW AUTOCOMMIT; -- AUTO COOMMIT on SET AUTOCOMMIT ON; -- AUTO COOMMIT off SET AUTOCOMMIT OFF; Autocommit이 Off로.. 2021. 12. 9.
[국비] SQL 내용정리 Day03 서브쿼리 서브쿼리는 다른 SELECT 문장의 절에 내장된 SELECT 문장이다. 서브쿼리를 사용하면 간단한 문장을 강력한 문장으로 만들 수 있다. 테이블 자체의 데이터에 의존하는 조건으로 테이블의 행을 검색할 필요가 있을 때 서브쿼리를 사용하는 것이 유용하다. -- 'Nancy'의 급여보다 급여가 많은 사람을 검색한다. SELECT salary FROM employees WHERE first_name = 'Nancy'; SELECT first_name FROM employees WHERE salary > 12008; 서브쿼리를 사용하려면 () 괄호 안에 명시하고, 서브쿼리절의 리턴행이 1줄 이하여야 한다. 서브쿼리는 비교할 대상이 반드시 하나 들어가야 한다. 쿼리를 해석할 때 서브쿼리절을 먼저 해석한다... 2021. 12. 8.
[국비] SQL 내용정리 Day02 NULL 제거 함수 NVL(컬럼, 변환할 타겟 값) SELECT null FROM dual; SELECT NVL(null, 0) FROM dual; SELECT first_name, NVL(commission_pct, 0) AS comm_pct FROM employees; NULL 제거 함수 NVL2(컬럼, null이 아닐 경우 값, null일 경우 값) SELECT NVL2(null, '널아님', '널') FROM dual; SELECT NVL2(50, '널아님', '널') FROM dual; SELECT first_name, NVL2(commission_pct, 'true', 'false') FROM employees; SELECT first_name, commission_pct, NVL2(commi.. 2021. 12. 7.
[국비] SQL 내용정리 Day01 관계형 데이터베이스 관계형 데이터베이스는 관계들의 모음 또는 이차원 테이블의 모음이다. 파일 시스템과 데이터베이스 시스템의 차이점 데이터의 무결성을 지켜준다. 데이터의 공유 데이터의 정확성과 일관성 중복성의 제거 불일치를 피할 수 있다. 표준화가 가능하다. 데이터의 독립성 보장 -개념화 기법 발달 각 테이블들은 고유한 이름을 갖는다. 중복 문제의 해결 기법 제공: 정규형 데이터의 조작언어의 발달: SQL 관계형 데이터베이스는 테이블(table)들의 모음으로 구성 각 행은 일련의 값들 사이의 관계(relationship) 관계형 데이터베이스는 SQL(Structured Query Language)문을 사용하여 이용되고 수정한다. SQL문 이란? 데이터베이스로부터 데이터를 조회, 삭제, 수정, 변경 등의 작.. 2021. 12. 5.