반응형

Database 6

[Oracle] LAG, LEAD 알아보기

LAG함수와 LEAD함수의 정의 및 구조 LAG 함수 : 자체 조인을 사용하지 않고 이전 행을 리턴하는 함수 LEAD 함수: 자체 조인을 사용하지 않고 다음 행을 리턴하는 함수 LAG(expression [, offset] [, default]) OVER ( [ query_partition_clause ] order_by_clause ) LEAD(expression [, offset] [, default]) OVER ( [ query_partition_clause ] order_by_clause ) expression: 값을 가져올 컬럼 offset: 값을 가져올 행의 위치. 생략 가능, 기본값은 1 default: 값이 없을 경우 리턴할 기본 값. 생략 가능 query_partition_clause: ..

Database/Oracle 2022.01.06

[Oracle] 예약어 확인(ORA-00903 / ORA-00904)

USER라는 테이블을 생성합니다. CREATE TABLE USER ( ID VARCHAR2(10) ); 이 간단한 DDL은 ORA-00903: invalid table name오류를 냅니다. 그 이유는 테이블명을 오라클 예약어로 사용했기때문입니다. CREATE TABLE "USER" ( ID VARCHAR2(10) ); 위와 같이 쌍따옴표(")로 감싸주면 됩니다. 하지만 테이블을 조회해보면 같은 오류가 발생합니다. 이 역시 쌍따옴표(")로 감싸주면 되지만 매번 이러기 불편합니다. 이런경우 예약어를 피해서 테이블명을 만들어주는 것이 편할 수 있습니다. SELECT * FROM V$RESERVED_WORDS 위의 쿼리를 통해 예약어를 확인 할 수 있습니다. 또한 테이블 생성시 ORA-00904: invali..

Database/Oracle 2021.02.17

[MySQL] ROWNUM 사용하기

위와 같은 테이블이 있을 때 SELECT @ROWNUM := @ROWNUM + 1 AS rownum, table.* FROM table, (SELECT @ROWNUM := 0) tmp ORDER BY birth ASC 역순으로 정렬하면서 rownum을 가져오고 싶은 경우 어떻게 해야 할까 SELECT @ROWNUM := @ROWNUM + 1 AS rownum, table.* FROM table, (SELECT @ROWNUM := 0) tmp ORDER BY birth DESC 단순하게 ORDER BY만 바꾸면 원하는 결과를 얻지 못합니다. SELECT * FROM (SELECT @ROWNUM := @ROWNUM + 1 AS rownum, table.* FROM table, (SELECT @ROWNUM :..

Database/MySQL 2020.09.23

[MySQL] ERROR 2003: Can't connect to MySQL server on 'localhost' (10061)

오류발생 어제까지 잘만되던 MySQL이 갑자기 접속오류가 발생했습니다. root 계정으로 로그인을 시도하니 ERROR 2003: Can't connect to MySQL server on 'localhost' (10061) 오류가 발생합니다. 보통 계정 비밀번호가 틀린경우 이 에러가 발생하는데 이번 경우는 비밀번호가 틀린 경우가 아니었습니다. 해결방법은 WindowOS 기준으로 작성되었습니다. 해결방법 실행 - services.msc - MySQL 항목을 재시작 : 재시작을 하려고 하니까 MySQL이 없습니다. 분명 저번주에 목록에 있던걸 확인한 터라 이상했지만 일단은 MySQL을 추가합니다. 명령 프롬프트 관리자 권한으로 실행 > ${MYSQL_HOME}/bin으로 이동 > mys..

Database/MySQL 2020.07.03

[ORACLE] DDL, DML, DCL

SQL문은 다루는 객체, 용도에 따라 DDL, DML, DCL(+TCL)로 분류 할 수 있습니다. DCL에서 COMMIT, ROLLBACK, SAVEPOINT를 따로 분리하여 TCL(Transaction Control Languaage)라고 표현하기도 합니다. 각각 어떤 명령어가 있고 주로 어떤식으로 사용되는지 함께 정리했습니다. DDL(Data Definition Language) : 데이터 정의어 : 관계형 데이터베이스의 구조를 정의합니다. CREATE : TABLE, VIEW, INDEX, PROCEDURE를 만드는 역할을 합니다. TABLE : CREATE TABLE table_name ( column1 datatype, column2 datatype, ... columnN datatype); V..

Database/Oracle 2020.06.24