본문 바로가기

전체 글388

[SQL] 순위 함수 - RANK(), DENSE_RANK(), ROW_NUMBER() RANK() , DENSE_RANK(), ROW_NUMBER() HTML 삽입 미리보기할 수 없는 소스 RANK() OVER( ) 먼저 RANK에 대해 알아보자. RANK는 동일한 데이터는 같은 순위를 매긴다. SAL에 3000이 두개이므로, 공동 3위를 주고, 4위를 건너뛴 5위가 나온다. DENSE_RANK() OVER( ) 두번째로, DENSE_RANK는 RANK와 함께 동일 데이터를 같은 순위에 매긴다. 하지만, RANK에서는 공동 숫자만큼 다음 숫자를 넘겼지만, DENSE_RANK같은 경우, 숫자를 건너뛰지 않고 출력한다. ROW_NUMBER() OVER( ) 마지막으로, ROW_NUMBER는 중복 허용없이 순위가 나온다. 즉, 무조건 순위가 나오는 것이다. 2023. 8. 2.
[SQL] 뷰(VIEW) 활용하기 2 - 수정 (OR REPLACE, ALTER) [SQL] 뷰(VIEW) 활용하기 , WITH CHECK OPTION 사용법 뷰(VIEW)란? 가상의 테이블로, 한 번 생성해 놓으면 테이블로 생각하고 사용해도 될 만큼 사용자가 볼 때 테이블과 거의 동일한 개체로 여겨진다. Student 테이블, Professor 테이블 Student테이블과 Profes bright-landscape.tistory.com EMP 테이블을 기반으로 EMPEX 뷰 테이블을 하나 만들어주었고, EMPVIEW1 이라는 가상 뷰 테이블을 생성하여, 조건문을 주며 출력해보았다. 이런식으로 VIEW 를 수정하는 방법에는 두가지가 있다. 첫번째는, ALTER를 이용해서 뷰를 수정하는 방법이고, 두번째는 OR REPLACE를 이용한 것이다. 단, OR REPLACE는 앞에 ALTER가.. 2023. 8. 2.
[SQL/MySQL] 트랜잭션 COMMIT, ROLLBACK, SAVEPOINT 사용법 트랜잭션이란? 여러 개의 SQL 명령문들을 하나의 논리적인 작업 단위로 처리하는 것이다. 여러 명령어 집합이 정상적으로 처리되면 정상 종료하도록 하고, 여러 명령어 중 하나의 명령이라도 잘못되었다면 전체를 취소한다. 하나의 트랜잭션은 All - OR - Nothing 방식으로 처리된다. TCL (Transaction Control Language) 이며, Commit과 Rollback을 포함한다. 트랜잭션을 이름 그대로 번역한다면 "거래"라는 뜻이다. 즉, 데이터베이스에서 트랜잭션은 하나의 거래를 안전하게 처리하도록 보장해주는 뜻이기도 한다. 누군가 물건을 산다고 가정했을때, 물건을 받고 돈을 주기까지 2단계의 과정을 거친다. 이때 누가 물건을 받았는데 돈을 주지 않았다면 먹튀가 발생한다. 따라서 이를 .. 2023. 8. 1.
[SQL] 서브 쿼리 - (인라인 뷰, 스칼라) - SELECT, FROM 인라인 뷰(Inline View)란? FROM절에 사용되는 서브 쿼리를 인라인 뷰(Inline View)라고 한다. 서브 쿼리가 FROM절에 사용되면 뷰처럼 결과가 동적으로 생성된 테이블로 사용가능하고, 임시적인 뷰이기 때문에 데이터베이스에 저장되지 않는다. ex) 모든 사원의 평균 급여보다 적게 받는 사원들과 같은 부서에서 근무하는 사원의 사번, 이름, 급여, 부서번호 여기 EMPLOYEES 테이블이 있다. 이 테이블과 비교할 똑같은 테이블로 평균 급여를 구하고, 부서번호를 구했다. 같은 EMPLOYEES에 조건에 해당하는 DEPARTMENT_ID를 조회했다. 그렇다면, 이 테이블은 평균 급여보다 적게받는 사원들의 사원 번호이므로, 이 테이블 그대로 EMPLOYEES 테이블과 조인하면 값이 나올 것이다.. 2023. 7. 31.
[MySQL / SQL] - JOIN 조인 (Cross , Equi , Self , Outer , Union ) 위에는 EMP 테이블, SALGRADE 테이블, DEPT 테이블이 있다. 상호 조인 ( Cross Join) 이란? 테이블들을 연결하여 연속적으로 기술하는 것이다. 컬럼 수는 EMP 컬럼수 + DEPT 컬럼수 + SALGRADE 컬럼수를 더한 것이되고, 행 수는 EMP 행 * DEPT 행 * SALGRADE 행이 된다. 조인될 때 아무런 조건을 제시하지 못했기 때문에 이 CROSS 조인은 아무런 의미가 없다. 따라서 조건을 사용하는 다양한 JOIN에 대해 더 알아보자. Equi(Inner) Join 이란? 동일 칼럼을 기준으로 조인. N개의 테이블 조인시 N-1개의 조인 조건이 필요하다. 공통적으로 존재하는 컬럼의 값이 일치되는 행을 연결하여 결과를 생성하는 조인 방법이다. EQUI JOIN은 가장 많이.. 2023. 7. 29.
[MySQL / SQL] - 주요 함수 ( 숫자, 문자 , 시간, 날짜) MySQL을 사용하다보면 다른 데이터베이스와도 조금씩 다른 함수들이 존재한다. 따라서 나중에 한눈에 확인해서 사용할 수 있도록 조금씩 정리해두려고한다. 숫자 HTML 삽입 미리보기할 수 없는 소스 문자 HTML 삽입 미리보기할 수 없는 소스 시간 및 날짜 HTML 삽입 미리보기할 수 없는 소스 HTML 삽입 미리보기할 수 없는 소스 2023. 7. 27.
[SQL] 뷰(VIEW) 활용하기 , WITH CHECK OPTION 사용법 뷰(VIEW)란? 가상의 테이블로, 한 번 생성해 놓으면 테이블로 생각하고 사용해도 될 만큼 사용자가 볼 때 테이블과 거의 동일한 개체로 여겨진다. Student 테이블, Professor 테이블 Student테이블과 Professor 테이블이 있다. STUDENT 테이블과 PROFESSOR 테이블을 합쳐 EMP_VIEW 가상 테이블을 만들어주었다. 뷰 테이블을 만들어줄 때에는 CREATE VIEW 테이블명 AS 를 하고 SELECT를 통해 조회할 컬럼을 입력해주면 된다. *뷰는 기본적으로 읽기 전용이지만, 뷰를 통해 원래 테이블의 수정도 가능하다. 하지만, 이런 방법은 추천하지 않는다. 뷰의 장점 보안에 도움이 된다. 복잡한 쿼리를 단순화해준다. UPDATE 이용하여 VIEW 테이블 수정하기. UPDA.. 2023. 7. 27.
자바(JAVA) - 템플릿 메소드 패턴(Template Method Pattern) 템플릿 메소드 패턴이란? 객체지향 프로그래밍에서 사용되는 설계 기법 중 하나로, 상위 수준의 알고리즘을 정의하고 하위 클래스에서 알고리즘의 일부 단계를 구체화할 수 있도록 하는 것이 목적. 템플릿 메소드 패턴은 추상 클래스를 사용한다. 부모 클래스에게 추상화를 시켜 이를 상속받은 자식 클래스에서 구체화하면서 완성할 수 있다. 즉, 변하지 않는 기능(템플릿)은 상위 클래스에 만들고, 자주 변경되며 확장할 기능은 하위 클래스에서 만들도록 하여, 상위의 메소드 실행 동작 순서는 고정하며 세부 실행 내용은 다양화 될 수 있는 경우에 사용. 코드의 중복을 없애기 위함. Animal.class ( 부모 클래스를 추상 클래스로 만들어준다.) 부모 클래스역할을 하는 Animal 클래스에 하나 이상의 추상 메소드를 만들.. 2023. 7. 26.
[MySQL / SQL] 테이블 구조 생성, 변경, 삭제 (DDL) -- 데이터베이스 생성 명령어 CREATE DATABASE [dbname]; -- 데이터베이스 생성 및 속성 설정 명령어 CREATE DATABASE [dbname] CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; -- 테이블 생성 명령어 CREATE TABLE [tablename] ( [column_name1] INT PRIMARY KEY AUTO_INCREMENT, [column_name2] VARCHAR(255) NOT NULL, [column_name3] DATETIME NOT NULL, )CHARSET=utf8; DROP 명령어 -- 데이터베이스 삭제 명령어 DROP DATABASE [dbname]; -- 테이블 삭제 명령어 DROP TABLE [tabl.. 2023. 7. 26.
[SQL] 서브 쿼리 ( 단일 행 VS 다중 행 ) - WHERE(Nested) 서브쿼리란? 다른 쿼리 내부에 포함되어 있는 SELECT 문을 의미한다. 서브 쿼리를 포함하고 있는 쿼리를 외부 쿼리또는 메인 쿼리라고 부르며, 서브 쿼리는 내부쿼리라고도 부른다. 이전에 단일 행 함수와 다중 행 함수에 대해 포스팅 한 적이 있다. 이번에는 서브 쿼리에 대한 단일 행 함수와 다중 행 함수를 알아보겠다. [Oracle / SQL] 단일행 함수(Single)와 다중행 함수(Mutible) 단일행 함수(SINGLE ROW FUNCTION) - 한개의 입력 한개의 출력 - SELECT, WHERE, ORDER BY, UPDATE의 SET 절에서 사용 가능 - 조회되는 컬럼 값이 같아야한다. HTML 삽입 미리보기할 수 없는 소스 HTML 삽입 미리보기 bright-landscape.tistory.. 2023. 7. 26.
[SQL] SQL 쿡북 - Chaper 1 SELECT를 사용하여 STUDENT 테이블에 있는 모든 정보를 출력해보았다. 이곳에서 DEPTNO를 뽑아 속성에 있는 데이터를 바꿔보려고한다. DEPTNO에 있는 데이터를 CASE식을 사용해 SELECT문에서 조건식을 직접 바꿔줄 것이다. CASE식을 사용하면 쿼리로 반환된 값에 대한 조건식을 수행할 수 있다. CASE식에 별칭을 제공하여 더 읽기 쉬운 결과셋을 반환할 수 있다. ELSE절은 선택 사항이다. 생략시 CASE식은 조건에 부합하지 않는 행에 대해 NULL을 반환한다. "TOP" 절은 SQL Server에서 일반적으로 사용되지만, MySQL 및 PostgreSQL과 같은 다른 데이터베이스 시스템에서는 대신 "LIMIT"를 사용할 수 있다. RAND() 함수 내장된 RAND( ) 함수를 LIM.. 2023. 7. 25.
(Maigc Leap One) - 스마트 글래스를 이용한 AR AED 및 CPR 교육 [Magic Leap One] 스마트 글래스를 이용한 AR AED 교육 제작 2019년 7월 초, 내가 울산 청년 대장정을 다녀온 이후부터 본격적으로 컴퓨터 공학부에 대한 꿈을 찾아 새... blog.naver.com 개발도구 : Unity, C#, MagicLeapOne, Maya, Aduino 2023. 7. 24.