본문 바로가기

728x90
반응형

프로그래밍&IT/MySQL, Oracle, DB 공통

(9)
[PostgreSQL] Insert 쿼리의 모든 사용법 PostgreSQL의 Insert 쿼리들1. 기본 INSERT 쿼리특정 컬럼에 값을 지정하여 데이터 삽입 (기본인거라)INSERT INTO table_name (column1, column2, column3) VALUES (value1, value2, value3);2. INSERT INTO SELECT 쿼리다른 테이블에서 데이터를 가져와 삽입INSERT INTO table_name (column1, column2, column3)SELECT column_a, column_b, column_c FROM another_tableWHERE condition; -- 여기서부터 좀 다른것들이 나오는듯3. DEFAULT 값을 사용한 INSERT모든 컬럼이 기본값을 가지는 경우 DEFAULT를 사용할 수 있음: I..
데이터 베이스의 옵티마이저 (Database Optimizer)에 대해서 C# (Winfrom) UI만 개발하다보니 데이터베이스에 대해서 좀 소홀히 한 것도 있다.  데이터베이스의 옵티마이저 (Database Optimizer)SQL 쿼리가 어떻게 효율적으로 실행될지를 결정하는 핵심 요소.옵티마이저는 데이터베이스가 SQL 쿼리를 실행할 때 가장 적은 자원을 사용하면서 빠르게 결과를 반환할 수 있는 실행 계획을 선택하는 역할SQL 쿼리가 작성된 방식과 데이터베이스의 상태에 따라 크게 영향을 받는다.옵티마이저는 주로 아래와 같은 방식으로 SQL 쿼리를 최적화하게 된다.1. 실행 계획 생성SQL 쿼리가 입력되면 옵티마이저는 여러 실행 계획을 생성하여 가능한 모든 경로를 평가합니다.이때 각 경로는 인덱스를 사용하거나, 테이블을 스캔하거나, 조인 방식을 결정하는 등의 다양한 전략을 고..
[Database] 카타시안 곱 (Cartesian Product) Oracle뿐 아니라 전체적으로 같이 봐야할 항목이지만일단 IT 하는 사람으로서 어느정도는 알아야 할 것이기에... 카타시안 곱 (Cartesian Product) 이란?두 테이블의 모든 행을 조합하여 새로운 결과 집합을 생성하는 연산입니다. SQL에서는 JOIN 연산 중 하나로, 두 테이블 간에 조인 조건을 사용하지 않았을 때 발생하는 기본적인 조인 결과입니다.예를 들어, Table_A와 Table_B가 각각 3개의 행을 가지고 있다면, Table_A와 Table_B의 카타시안 곱을 실행할 경우 결과는 3×3=93 \times 3 = 93×3=9개의 행이 포함됩니다.SELECT * FROM Table_A, Table_B;-- 아니면SELECT * FROM Table_ACROSS JOIN Table_B;..
[Oracle] 인덱스 종류 그리고 인덱스를 이용하는 & 이용못하는 쿼리 오라클 데이터베이스를 다시 공부하다보니 여태 체크 못한 것이 있더라.앞으로계속 공부해가면서 틈새를 메워야겠다.목차오라클 인덱스 종류인덱스를 이용하는 & 못 이용하는 쿼리 오라클 인덱스 종류1. B-tree 인덱스가장 일반적으로 사용하는 인덱스 유형입니다.범위 검색 및 정확한 값 검색에 최적화되어 있습니다. - 타는 예시: EMPLOYEE_ID 컬럼에 B-tree 인덱스가 설정되어 있다면, 정확한 값 검색을 위해 인덱스를 타게 됩니다.SELECT * FROM EMPLOYEESWHERE EMPLOYEE_ID = 12345; - 타지 않는 예시EMPLOYEE_ID 컬럼에 연산이 포함되어 인덱스를 타지 못합니다.B-tree 인덱스는 컬럼 값의 직접적인 비교가 필요합니다.SELECT * FROM EMPLOYEES..
[Oracle] View에 대해서 알아보자 이제 오라클을 공부할 때가 온것같다.원래 UI위주 개발자지만, 사실 데이터베이스는 필수로 해야하는게 맞지만.이상하게 오라클하고는 잘 맞지않지만 이번에 View에 대해서 알아봐야하는데,오라클에 맞춰 조회를 해봤다.View란?View는 데이터를 조회하거나 구조를 정의하는 데 도움을 주는 논리적 개체 1. Simple View (단순 뷰)하나의 테이블에서만 데이터를 조회하는 View입니다.데이터 조작 작업(DML: Insert, Update, Delete)을 지원하며, 기본 테이블의 데이터 변경에 영향을 미칩니다.-- 예시 테이블: EMPLOYEESCREATE TABLE EMPLOYEES ( EMP_ID NUMBER PRIMARY KEY, NAME VARCHAR2(50), DEPARTMENT_..
PL/SQL 블록 구조 이번 프로젝트에 투입되면서 오라클 특히 프로시저 부분을 다시 만지게 되었다. Stored Procedure 자주 실행해야 하는 업무 흐름을 미리 Database에 저장해 두고 필요할 때마다 호출해 실행 기본적인 Procedure의 block 구조 CREATE [OR REPLACE] PROCEDURE 프로시저_이름 ( 변수 1 [MODE (IN/OUT) ] data-type 1 , ... 변수 n [MODE (IN/OUT) ] data-type n ) IS [사용할 변수 선언부] BEGIN 로직 처리/실행 [EXCEPTION] [예외 처리부] END; 1. CREATE OR REPLACE PROCEDURE 프로시져_이름 - 프로시저 선언부 보통은 [OR REPLACE] 부분을 붙이고 한다. 2. 프로시저의..
MySQL 에서 auto_increment 값 초기화 하기 auto_increment 값 초기화 하기 History 성 테이블 등Primary Key 및 인덱스용 컬럼으로 AUTO_INCREMENT를 간혹 사용하게 됩니다. 테스트를 하다가 늘어난 auto increment컬럼의 갯수를실제 적용이나 필요의 이유로 초기화 할때 alter table [테이블명] auto_increment = 1 위의 명령으로 초기화합니다. 근데, row가 존재할땐 초기화가 안되고데이터를 다 지운후 써야 다시 1로 셋팅되는듯한데...???
MySQL 스토리지 엔진 MySQL의 테이블 작성의 기본인 스토리지 엔진을 알아보자. MySQL의 스토리지 엔진을 알아야 할것같다는 생각이 듭니다.여태까지 Oracle, MsSQL위주로 업무를 했고 (잘 하진못하지만...)MySQL은 개인적으로 쓰기위해서 배우고 있는데 쌓이는 데이터 특성에 따라테이블의 스토리지엔진을 각기 설정해서 써야할것같습니다. foreign key를 쓰기위해선 기본적으로 InnoDB의 스토리지 엔진을 써야한다는건 이번에 봤네요... show engines;현재 설치돼있는 MySQL 서버에서 지원되는 스토리지 엔진 확인 위의 Support 컬럼별 설명 Yes 해당 스토리지엔진이 포함돼있고, 사용 가능으로 활성화된 상태 Default "YES"와 동일한 상태지만 필수 수토리지 엔진임 의미 즉 이 스토리지 엔진없..
MySQL 기본 함수 - 현재 일자 구하기 (시간은 오전 12:00:00로 표기됨) CURDATE() - 현재 시간 구하기 NOW() - 현재일자를 YYYYMMDD로 구하기 (대소문자 주의) DATE_FORMAT(CURDATE(), '%Y%m%d') - Oracle의 NVL 과 같은 함수 IFNULL MySQL 내장 함수 정리 1숫자 관련 함수 - ABS(숫자) - 절대값 출력 - CEILING(숫자) - 값보다 큰 정수 중 가장 작은 수 - FLOOR(숫자) - 값보다 작은 정수 중 가장 큰 수[실수를 무조건 버림(음수일 경우는 제외)] - ROUND(숫자,자릿수) - 숫자를 소수점 이하 자릿수에서 반올림.(자릿수는 양수,0,음수를 갖을 수 있다.) - TRUNCATE(숫자,자릿수) - 숫자를 소수점 이하 자릿수에서 버림 ..

반응형