목록Web/DB (9)
개발합니다
DELETE FROM user_table TRUNCATE TABLE user_table [DELETE] DML(Data Manipulation Language) 종류 중 하나이다. delete문은 where절 사용이 가능하고, 테이블에 있는 데이터를 하나하나 선택하여 제거하는 방식. where절을 쓰지 않고 테이블 내에 모든 데이터를 삭제하더라도, 내부적으로는 한줄한줄 일일히 제거하는 과정을 거친다. -> 쿼리문 처리 속도가 길다. 따라서 원하는 데이터만 골라서 삭제할 때는 delete를 사용하고, 테이블의 전체 데이터를 삭제하고자 할 때는 truncate를 사용하는 것이 좋다. delete를 사용해서 삭제한 데이터는 commit 전에는 rollback을 통해 되돌릴 수 있다. [TRUNCATE] DDL..
1. 테이블 컬럼 추가하기 (ALTER TABLE ADD) user_table 테이블에 user_name 컬럼을 추가하고 싶을 때 ALTER TABLE user_table ADD (user_name VARCHAR2(13)); 2. 테이블 컬럼 수정하기 (ALTER TABLE MODIFY) user_table 테이블에 user_age 컬럼을 NUMBER(3) 타입으로 수정할 때 ALTER TABLE user_table MODIFY (user_age NUMBER(3)); 3. 테이블 컬럼 삭제하기 (ALTER TABLE DROP) user_table 테이블에 user_name 컬럼을 삭제할 때 ALTER TABLE user_table DROP COLUMN user_name; 4. 테이블 컬럼 이름 변경하기 ..
MySql → limit으로 페이징 처리 Oracle → rownum을 사용해 원하는 순서의 데이터 출력 오라클의 ROWNUM은 쿼리가 실행될 때 결과 값에 가상의 번호를 부여해준다. ROWNUM은 where절이 먼저 실행되고 그 조건에 맞는 리스트를 먼저 검색 후 해당 리스트에 번호를 매긴다. 따라서 ROWNUM 함수는 ORDER BY 함수와 같이 사용하면 순번이 뒤죽박죽 됨. ==> 순번을 매기고 난 뒤 ORDER BY 정렬을 하기 때문 정렬 - 순번 매기기 순으로 진행해야 함. → 서브쿼리에 먼저 정렬(Order by) 후 순번 매기기(Rownum) 1. Top-N Query (상위 N개의 데이터를 보여주는 쿼리) - 상위 5개의 데이터를 출력한다. SELECT empno, ename, sal FR..
MySql → auto_increment로 값 자동 증가 Oracle → Sequence 생성해서 값을 증가 시켜줘야 한다. 1. 예제 테이블 생성 CREATE TABLE test( num NUMBER, name VARCHAR2(50) ); 2. 100까지 1씩 증가시키는 시퀀스 생성 CREATE SEQUENCE test_seq START WITH 1 INCREMENT BY 1 MAXVALUE 100 CYCLE NOCACHE; -시퀀스 속성 설명 CREATE SEQUENCE “스키마명.시퀀스명” MINVALUE -- 시퀀스가 시작되는 최초의 숫자 MAXVALUE --시퀀스가 끝나는 최대 숫자 INCREMENT BY -- 시퀀스가 증가되는 단위 START WITH -- 시퀀스 생성이 시작되는 값 NOCAC..
1. 문자열 함수 SELECT LOWER(name) FROM USER; -- name를 소문자로 변환 SELECT UPPER(name) FROM USER; -- name을 대문자로 변환 SELECT INITCAP(name) FROM USER; -- name의 첫 문자만 대문자 나머지 소문자 SELECT LENGTH(name) FROM USER: -- name의 길이 출력 SELECT CONCAT(id, name) FROM USER; -- id와 name 문자열 붙인 값 출력 SELECT SUBSTR(name, 2, 4) FROM USER; -- SUBSTR(char, pos, len) char의 pos번째 문자부터 len길이만큼 잘라서 반환 SELECT INSTR(name, 'a', 3) FROM USE..
프로시저(Procedure)는 일련의 작업들을 하나로 묶어서 모듈화한 후 필요할 때마다 호출하여 사용할 수 있는 기능이다. 함수와 비슷해 보이지만 프로시저는 리턴 값이 없다. 그러나 프로시저에서 레퍼런스 변수를 사용하면 결과 값을 리턴할 수 있다. 커서(Cursor)란 특정 SQL 문장을 처리한 결과를 담고 있는 영역을 가리키는 일종의 포인터로, 커서를 사용하면 처리된 SQL 문장의 결과 집합에 접근할 수 있다. - 구조 CREATE [OR REPLACE] PROCEDURE 프로시저명 ( 파라미터 [IN | OUT | IN OUT] 데이터 타입 ) [IS | AS] 변수 선언 BEGIN 프로시저 작업 수행 EXCEPTION 예외처리 END 프로시저명; 1. 사원 정보 리턴 및 부서코드 UPDATE 동시에..
- DECODE 사용방법 : DECODE (컬럼, 조건1, 결과1, 조건2, 결과2, 조건3, 결과3 ...) ex) 1-1 WITH temp AS ( SELECT 'M' gender FROM dual UNION ALL SELECT 'F' gender FROM dual UNION ALL SELECT 'X' gender FROM dual ) SELECT gender , DECODE(gender, 'M', '남자', 'F', '여자', '기타') gender2 FROM temp if (gender == "M") { return "남자"; } else if (gender == "F") { return "여자"; } else { return "기타"; } GENDER GENDER2 M 남자 F 여자 X 기타 e..
Primary Key CREATE TABLE EX1 ( A VARCHAR2(30) PRIMARY KEY, B VARCHAR2(30) ); 또는 CREATE TABLE EX1 ( A VARCHAR2(30), B VARCHAR2(30), CONSTRAINT TEST_PK PRIMARY KEY(A) ); CONSTRAINT 기본키명 PRIMARY KEY(컬럼명) Foreign Key 1. 테이블 생성할 때 설정 CREATE TABLE EX2 ( A VARCHAR2(30), B VARCHAR2(30), CONSTRAINT TEST_FK FOREIGN KEY(A) REFERENCES EX1(A) ); CONSTRAINT 외래키명 FOREIGN KEY(컬럼명) REFERENCES 참조테이블명(참조컬럼) 2. 생성된..
학습했던 mysql과 대부분 비슷하지만 복습하는 느낌으로 다시 한 번 정리 1. CREATE CREATE TABLE USER ( ID CHAR(10), PW VARCHAR2(30), NAME VARCHAR2(30), NUM NUMBER A_DATE DATE, B_DATE TIMESTAMP, LARGE_DATA CLOB ); 데이터 타입 CHAR(n) : 고정길이 문자 / 최대 2000byte / 디폴트 1byte VARCHAR2(n) : *가변길이 문자 / 최대 4000byte / 디폴트 1byte LONG : 최대 2GB 크기의 가변길이 문자형 NUMBER : 가변숫자 / 최대 22byte DATE : 연, 월, 일 ,시 ,분, 초 입력 가능 TIMESTAMP : 연도, 월, 일, 시 ,분 ,초 + 밀..