Server의 세계(23)
-
Undo 관련 에러와 관련 parameter(feat.ORA-01555)
"ORA-01555.Snapshot too old" 라는 undo 관련 에러가 있다. 일반적으로 쿼리 수행기간이 오래 걸려서 발생하는 undo 에러인데, SQL 수행과정에서 읽고자하는 데이터가 다른 Transction에 의해 변경되고, 변경 전 데이터를 읽지 못해 생기는 에러다. 음...이해가 가나? 오라클 DB는 예시를 들어야 이해가 빠르다. 예를 들어보겠다. 사용자 A가 1시간이 넘게 걸리는 특정 데이터의 집계 작업용 select를 하고 있다고 가정하겠다. 이때 사용자 B가 사용자 A가 집계중인 데이터를 Update한 후 Commit을 할 경우에, A는 변경 전의 데이터를 Undo segment서 찾아서 집계를 해야한다. 그런데 만약 사용자 B가 Commit을 한 후에 사용자 C가 사용자의 Undo ..
2022.07.07 -
[SQL] 간단하고 명료하게 SQL 명령어 훑기(DDL/DML/DCL/TCL)
1. SQL 명령어 종류 DDL - Data Definition Language (데이터 정의 언어) DML - Data Manipulation Language (데이터 조작 언어) DCL - Data Control Language (데이터 제어 언어) TCL - Transaction Control Language(트렌젝션 제어 언어) 2. DDL(Data Definition Language) -데이터 정의어다. 테이블 같은 데이터 구조를 정의하는데 사용되는 명령어며, 테이블 같은 데이터 구조를 생성, 변경, 삭제를 처리하는 명령어다. 명령어 내용 예시 CREATE 데이터베이스 내 개체(테이블, 인덱스 제약조건, 프로시저, 펑션 등)을 생성할 때 CREATE TABLE myTable(field1 int ..
2022.07.04 -
[DB] 간단하고 명료하게 DB, DBMS, SQL의 개념 훑기
데이터베이스(DataBase)란? 데이터들의 집합, 모음 자체를 뜻한다. 즉, 데이터 저장소. DBMS(DataBase Mangement System)란? 데이터베이스(DB)를 운영하고 관리하는 소프트웨어. 형태 : 계층형, 망형, 관계형 DBMS 구성. 대부분 RDMBS 형태로 사용됨. SQL(Structured Query Language)란? 직역하면 구조화된 질의 언어라는 뜻. 관계형 데이터베이스에서 사용되는 언어. 표준 SQL을 배우면 대부분 DBMS를 사용할 수 있음. 1. DBMS란? 데이터베이스를 '데이터의 집합'이라고 정의한다면, 이러한 데이터베이스를 관리하고 운영하는 소프트웨어를 DBMS라고 한다. 다양한 데이터가 저장되어 있는 데이터베이스는 여러명의 사용자나 응용 프로그램과 공유하고 동..
2022.07.04 -
[MySql] Sql Injection
위키백과의 Sql Injection를 검색하면 다음의 카툰이 있다. 이게 무슨 말인고 하니, 학교의 데이터베이스에서는 다음과 같은 명령어를 쓰고 있다. INSERT INTO students (이름) VALUES ('학생 이름'); 여기서 학생의 이름을 입력하면 다음과 같이 된다. INSERT INTO students (이름) VALUES ('Robert'); DROP TABLE students; --'); 첫번째 줄에서 Robert가 입력되었지만 두번째 줄에서 students라는 테이블이 제거 된것이다. 그리고 뒤에 오는 내용들을 주석처리해버렸다. 그래서 해당 학생의 이름을 넣으면 최종적으로 모든 학생 기록이 삭제된다. W3 Schools에도 Sql Injection 항목이 있다. 설명을 보면 가장 기본..
2022.06.14 -
[MySql] VS code와 리눅스 연동하기
vscode는 Microsoft사에서 만들었으며, Linux, Windows, Mac 운영체제를 모두 지원하는 에디터 툴이다. Git연동도 쉬울 뿐 아니라 mySql과의 연결도 쉬워 다양한 용도로 유용하게 사용할 수 있다. 나의 경우에도, UBUNTU에서 직접 명령어 입력, Workbench, Notepad++ 등 활용하는 방법이 있지만 VS code를 통해서 데이터베이스를 확인하는 것이 제일 편한 것 같다. vscode에서 mysql 설치방법 1. Extensions에서 MySQL 2가지 버전을 다 install 한다. 2. Extension 보다 좀더 아래 database라는 탭이 있다. 연결되어 있지 않으면 "You haven't created any connections learn more." 이..
2022.06.14