본문 바로가기

✨ DBMS39

[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.
[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.
DB에러 -> 요청한 작업을 수행하는 중 오류 발생:Listener refused the connection with the following error:ORA-12505, TNS:listener does not currently know of SID given in connect descriptor (CONNECTION_ID=fTPfFwoVRxeyl5DKjGtSRw==)업체 .. 요청한 작업을 수행하는 중 오류 발생: Listener refused the connection with the following error: ORA-12505, TNS:listener does not currently know of SID given in connect descriptor (CONNECTION_ID=fTPfFwoVRxeyl5DKjGtSRw==) 업체 코드 12505 해결 했던 방법 1. 우선 윈도우키+R 을 눌러 실행창을 열어 준다. 2. services.msc 를 쳐서 서비스에 들어간다. 3. 컴퓨터를 실행시킬 때 데이터베이스를 키면 한번씩 충돌이 발생해서 뜨는 경우가 종종 있다. 그래서 OracleServiceXE를 중지시켰다가 다시 실행시키고, 재부팅하니 해결되었다. 2023. 4. 29.
[Oracle / SQL] 그룹함수 -1 GROUP BY를 쓰면 SELECT 절에 올 수 있는 컬럼이 정해져있다. 1. 그룹핑한 컬럼 ( 아래에는 DEPTNO를 그룹핑했으니 DEPTNO가 올 수 있는것.) 2. 그룹함수 (데이터가 딱 1개 조회되는거) 그룹 함수란? 테이블의 전체 행을 하나 이상의 컬럼을 기준으로 컬럼값에 따라 그룹화하여 그룹별로 결과를 출력하는 함수이고 복수행 함수라고도 한다. 그룹 함수의 종류에는 COUNT, MAX, MIN, SUM, AVG, STDDEV, VARIANCE 등이 있다. EMP 테이블에는 14개의 데이터가 있다. HTML 삽입 미리보기할 수 없는 소스 은 무엇이 나올까? 오류가 떨어지는데, SUM(SAL)은 값이 하나가 나온다. 하지만 DEPTNO는 사원 수만큼 나온다. 만약 100명이면 100개의 조회결과가.. 2023. 4. 13.
[Oracle / SQL] MERGE INTO 사용방법 (두 테이블, 한 테이블 DUAL) MELON_CHART HTML 삽입 미리보기할 수 없는 소스 MELON_CHART_NEW HTML 삽입 미리보기할 수 없는 소스 MERGE INTO HTML 삽입 미리보기할 수 없는 소스 SELECT * FROM MELON_CHART; 위와 같이 MELON_CHART에 있는 값을 다시한번 조회하면 5개의 새로운 데이터가 추가된 것을 확인할 수 있다. ON 조건절에 MELON_CHART의 SINGER가 MELON_CHART_NEW의 SINGER와 같고, 노래가 같은 것을 조건으로 둔다. WHEN 일치하면, MELON_CHART_NEW의 랭킹을 MELON_CHART로 바꿔주고, REMARK 값을 CONTINUE로 업데이트 시킨다. WHEN NOT 일치하지 않다면, MELON_CHART_NEW의 RANKING.. 2023. 3. 9.