본문 바로가기

oracle29

순위함수(ROW_NUMBER, DENSE_RANK,RANK) - row_number : 1,2,3,4,... 번호를 부여 select row_number() over (partition by 컬럼명, order by컬럼명, .. as 별칭 from 테이블 명 (partition by 컬럼명은 생략가능 (=group by) (order by 생략 불가) 1) partition by 생략 2) partition by 포함 select row_number() over(partition by CustomerAddr order by CustomerAge desc) as you, CustomerName, CustomerId, CustomerAddr, CustomerAge from Customer; - dense_rank() : 비교값이 동일할 때 같은 번호를 부여 1, 2,.. 2022. 10. 25.
1021_제약조건(not null, unique, primary key) ALTER TABLE `DB명`.`테이블명` ADD PRIMARY KEY (`컬럼명`, `컬럼명`); ex) ALTER TABLE `calorie`.`COMMENT` ADD PRIMARY KEY(`ID`, `Date`); ALTER TABLE `DB명`.`테이블명` DROP PRIMARY KEY; ex) ALTER TABLE `calorie`.`COMMENT` DROP PRIMARY KEY; https://www.w3schools.com/sql/sql_primarykey.ASP SQL PRIMARY KEY Constraint W3Schools offers free online tutorials, references and exercises in all the major languages of the we.. 2022. 10. 25.
1021_인덱스 검색속도를 향상하기 위해 사용 객체 --SELECT 구문의 검색속도를 향상시킨다 --전체 레코드의 3% ~ 5% 정도일때 --INDEX 객체를 컬럼에 생성해서 사용한다 select * from user_indexes; CREATE INDEX 인덱스명 ON 테이블명 (컬럼명); CREATE TABLE EMP02 AS SELECT * FROM EMP; SELECT * FROM EMP01; INSERT INTO EMP01 SELECT * FROM EMP01; DROP TABLE EMP01; INSERT INTO EMP01(EMPNO,ENAME) VALUES (1111,'BTS'); --INDEX 객체 생성 전 :0.027~0.038 sec SELECT EMPNO,ENAME FROM EMP01 WHERE ENA.. 2022. 10. 25.
TCL (Transaction Control Language, 트랜잭션 제어 언어) --TCL (데이터의 영구저장 또는 취소) --트랜젝션 --commit, rollback, savepoint --commit : 데이터 영구 저장 (테이블이 데이터 반영) -- create구문을 사용해서 객체 생성할 때 (자동) --rollback : 데이터 변경 취소 (테이블이 데이터 미반영) 원상복구 -- 천재지변, 전기, 전쟁(자동) create table dept01 as select * from dept; select * from dept01; --지워진거 아님 (외부접속시 조회가능) --완전하게 반영하려면 commit; 작업 필요하다 delete from dept01; commit; --데이터 복구, 커밋이 완료되면 적용되지 않는다 --마지막 commit 지점까지만 가능하다 rollback; .. 2022. 10. 25.
1021_ DQL(Data Query Language, 질의어) 1. DQL(Data Query Language, 질의어) 1. SELECT (조회) : select(컬럼명, 컬럼명) From (Where 조건문 지정 가능) 별칭 : as 컬럼명 select distinct 컬럼명 from 테이블명 : 중복값을 제외한 데이터 조회 (단 하나의 컬럼에만 적용된다) select 문에는 함수 사용이 가능하다. ex) select replace(컬럼명, ' ', '') from customer; --> 임시 테이블 mysql에서는 select into 문 사용 불가 -> create table table1 as (select * from table2); 2022. 10. 25.
1021_DML(Data Manipulation Language, 조작어) 1. DML(Data Manipulation Language, 조작어) 1. INSERT (데이터 추가) : insert into (컬럼명, 컬렴명, 컬럼명) values(값, 값,,,) 컬럼명 전체 추가 시 생략가능 (insert into table명 1 select * from table명2 where 조건문; 다른 테이블의 select 문의 결과를 table1로 삽입할 수 있다 --insert : 테이블에 데이터 삽입 --insert into 테이블명(컬럼명1, 컬럼명2..) --valuse(값1, 값2..) -- 컬럼과 값의 타입과 개수가 일치해야 한다(1:1매칭) --작성순서대로 1:1 매칭 된다. --테이블 생성 (dept테이블과 동일하게) create table dept_temp as sel.. 2022. 10. 24.