분류 전체보기318 view (뷰) 뷰(View) 뷰(View)는 하나 이상의 테이블이나 다른 뷰의 데이터를 볼 수 있게 하는 데이터베이스 객체입니다. 실제 데이터는 뷰를 구성하는 테이블에 담겨 있지만 마치 테이블처럼 사용할 수 있습니다. 또한 테이블 뿐만 아니라 다른 뷰를 참조해 새로운 뷰를 만들어 사용할 수 있습니다. 뷰는 실제로 데이터를 저장하고 있지는 않지만 DML 작업이 가능한 가상의 테이블이라고 생각하면 된다. 뷰(View)의 사용 목적 여러개의 테이블에서 필요한 정보를 뽑아 사용할때가 많습니다. 이때 좀 더 편리하게 사용할 수 있는 방법중의 하나가 바로 뷰입니다. 뷰를 사용하면 복잡한 질의를 쉽게 만들어 줍니다. 여러테이블의 JOIN과 GROUP BY 같은 같은 복잡한 쿼리를 view로 저장시켜놓으면 다음부터는 저장한 view.. 데이터베이스/Oracle 2024. 4. 4. 클래스,생성자 클래스, 생성자 class Person { constructor(name, age) { // 생성자 메소드 이름은 자바와 다르게 constructor 이다. this.name = name; // 필드는 명시적으로 선언하지않고 생성자에서 초기화된다. this.age = age; // 이렇게해도 사용할 수 있음. } speak() { // 함수도 포함가능 console.log(`${this.name} : hello `); } get age() { // 자바스크립트에서 게터(getter) //age의 getter를 정의하는 순간 this.age를 쓰는곳에서는 이 getter를 호출하게된다. return this.age; } set age(value) { // 자바스크립트에서 세터(setter) //age의 s.. 자바스크립트 2024. 4. 3. 가상컬럼 가상 컬럼 하나의 테이블에 존재하는 다른 컬럼들을 이용하여 새로운 값을 만들어 내는 것 ( Virtual Column은 테이블에있는 하나 이상의 컬럼값을 기반으로 계산식을 적용할 수 있는 기능이다.) 컬럼명 타입 GENERATED ALWAYS AS 표현식 VIRTUAL create table vtable ( no1 number, no2 number, no3 number GENERATED ALWAYS as (no1+no2) virtual ) insert into vtable(no1, no2) values (100, 200); 가상열에는 insert를 할 수 없다. ( 오류발생함) select * from vtable; 데이터를 업데이트 해도 update vtable set no1 = 300 where no.. 데이터베이스/Oracle 2024. 4. 3. oracle 테이블 복사 및 구조 복사 , PL-SQL(반복문) PL-SQL (반복문) Begin for i in 1..100 loop insert into temp2(id) values ('A' || to_char(i)); end loop; end; 테이블 구조 및 데이터 복사하기 CREATE TABLE 신규테이블명 AS SELECT * FROM 복사할테이블명 [WHERE] /* 새로운 테이블을 생성하고 원하는 테이블 구조(복제): 스키마 + 데이터 삽입 단점 : 제약은 복제가 안된다 ( pk, fk) 순수한 데이터 구조 + 데이터가 복사된다. */ create table copyemp as select * from emp; select * from copyemp; 테이블이 존재할경우 데이터만 복사하기 테이블이 존재할경우, 데이터만 복사하기(구조가 같은경우) INS.. 데이터베이스/Oracle 2024. 4. 3. 변수,<script>(async vs defer), 'use strict' , 템플릿 리터럴, (==,===), function 변수 자바스크립트는 C나 Java외는 다르게 변수를 선언할 때 데이터 타입을 미리 지정하지 않는다. 다시 말해, 변수에 할당된 값의 타입에 의해 동적으로 변수의 타입이 결정된다. 이를 동적 타이핑이라 하며 자바스크립트가 다른 프로그래밍 언어와 구별되는 특징 중 하나이다. // Number let num1 = 1001; let num2 = 10.50; // String let string1 = 'Hello'; let string2 = "World"; // Boolean let bool = true; // null let foo = null; // undefined let bar; // Object let obj = { name: 'Lee', gender: 'male' }; // Array let array.. 자바스크립트 2024. 4. 2. 서브쿼리 (subQuery) [스칼라,인라인 뷰,중첩] // all any some 연산자 서브 쿼리는 메인 쿼리 내부에 작성하는 쿼리를 뜻하며, 주로 아래의 3가지 서브 쿼리로 분류한다. 스칼라 서브 쿼리 SELECT 절에 위치하며 칼럼의 역할을 하므로 해당 서브쿼리의 결과는 반드시 단일 행 or 단일 값으로 리턴되어야 한다. *다중 행 값이 조회되면 "ORA-01427: single-row subquery returns more than one row" 라는 오류가 발생하므로 주의 만약을 대비해서 서브 쿼리 마지막에 AND ROWNUM = 1을 붙이기도 함 [한개만 반환되게] select e.EMPNO, e.ENAME, e.DEPTNO, (select d.DNAME from dept d where d.DEPTNO = e.DEPTNO) as dname from emp e where e.sal.. 데이터베이스/Oracle 2024. 4. 2. inner Join, Outer Join Oracle Join , ANSI Join 오라클에서 조인을 할 때 오라클 조인(Oracle Join)과 안시 조인(ANSI JOIN)을 사용할 수 있다. 오라클 9i 까지는 오라클 조인만 사용할 수 있으며, 오라클 10g부터는 안시 조인을 추가로 사용할 수 있다. 최근 구축되는 시스템은 대부분 안시 조인을 사용하지만, 과거에 구축되어 있는 시스템은 오라클 조인을 많이 사용하고 있기 때문에 오라클 조인 방식도 꼭 알고 있어야 한다. --오라클 조인 ( 옛날 기술 ) select * from m, S where m.m1 = s.S1; select m.m1, m.m2, s.s2 from m, S where m.m1 = s.s1; ---------------- -- ansi ( 현업 ) select * fro.. 데이터베이스/Oracle 2024. 4. 2. 12) 스프링 트랜잭션 전파 기본 (1) [미완] 스프링 트랜잭션 전파1 - 커밋, 롤백 트랜잭션이 둘 이상 있을 때 어떻게 동작하는지 자세히 알아보고, 스프링이 제공하는 트랜잭션 전파(propagation)라는 개념도 알아보자. 트랜잭션 전파를 이해하는 과정을 통해서 스프링 트랜잭션의 동작 원리도 더 깊이있게 이해할 수 있을 것이다. 먼저 간단한 스프링 트랜잭션 코드를 통해 기본 원리를 학습하고, 이후에 실제 예제를 통해 어떻게 활용하는지 알아보겠다. 간단한 예제 코드로 스프링 트랜잭션을 실행해보자. BasicTxTest @Slf4j @SpringBootTest public class BasicTxTest { @Autowired PlatformTransactionManager txManager; @TestConfiguration static class.. 인프런/스프링 DB 2편 2024. 3. 29. 수정된 코드사항 다 버리기 수정된 코드를 버리고 이전 상태로 돌아가려면 Git에서 git checkout 명령어를 사용할 수 있습니다. 이를 이용하면 수정한 파일을 이전 커밋의 상태로 되돌릴 수 있습니다. 다음은 그 방법입니다: git checkout -- 위 명령어에서 자리에는 되돌리고자 하는 수정된 파일의 이름을 넣어주시면 됩니다. 이렇게 하면 해당 파일의 수정 사항이 버려지고 이전 상태로 되돌아갑니다. 만약에 모든 수정된 파일을 이전 상태로 되돌리고 싶다면 다음 명령어를 사용합니다: git checkout -- . 위 명령어에서 .은 현재 디렉토리를 의미하며, 모든 수정된 파일을 가리킵니다. 이렇게 되돌리고 나면 수정된 내용이 모두 사라지므로 주의해서 사용하시기 바랍니다. 문제해결 2024. 3. 25. git stash, cherry-pick git stash 자신이 어떤 작업을 하던 중에 다른 요청이 들어와 하던 작업을 멈추고 잠시 브랜치를 변경해야 할 일이 있다고 하자. 이때, 아직 완료하지 않은 일을 commit하는 것은 껄끄럽다. 그때 git stash를 사용한다. 아직 마무리하지 않은 작업을 스택에 잠시 저장할 수 있도록 하는 명령어이다. 이를 통해 아직 완료하지 않은 일을 commit하지 않고 나중에 다시 꺼내와 마무리할 수 있다. git stash 명령을 사용하면 워킹 디렉토리에서 수정한 파일들만 저장한다. stash란 아래에 해당하는 파일들을 보관해두는 장소 이다. Modified이면서 Tracked 상태인 파일 Tracked 상태인 파일을 수정한 경우 Tracked: 과거에 이미 commit하여 스냅샷에 넣어진 관리 대상 상태.. git/git 연습 2024. 3. 22. 11) 스프링 트랜잭션 이해 (3) 예외와 트랜잭션 커밋, 롤백 - 기본 예외가 발생했는데, 내부에서 예외를 처리하지 못하고, 트랜잭션 범위( @Transactional가 적용된 AOP ) 밖으로 예외를 던지면 어떻게 될까? 예외 발생시 스프링 트랜잭션 AOP는 예외의 종류에 따라 트랜잭션을 커밋하거나 롤백한다. 언체크 예외인 RuntimeException , Error 와 그 하위 예외가 발생하면 트랜잭션을 롤백한다. 체크 예외인 Exception 과 그 하위 예외가 발생하면 트랜잭션을 커밋한다. 물론 정상 응답(리턴)하면 트랜잭션을 커밋한다 RollbackTest @SpringBootTest public class RollbackTest { @Autowired RollbackService service; @Test void runtim.. 인프런/스프링 DB 2편 2024. 3. 21. try-with-resources try-with-resoucre를 안썼을경우 사용 후에 반납해주어야 하는 자원들은 Closable 인터페이스를 구현하고 있으며, 사용 후에 close 메소드를 호출해주어야 했다. Java7 이전에는 close를 호출하기 위해서 try-catch-finally를 이용해서 Null 검사와 함께 직접 호출해야 했는데, 대표적으로 파일의 내용을 읽는 경우를 다음과 같이 구현할 수 있다. public static void main(String[] args) throws IOException { String filePath = "C:\\KOSATEMP\\a.txt"; FileInputStream fis = null; BufferedInputStream bis = null; try { fis = new FileInp.. 자바/기본 2024. 3. 19. 이전 1 ··· 3 4 5 6 7 8 9 ··· 27 다음