Skip to content
Bible, Lee, Data

Bible, Lee, Data

Faith, software, data, and everyday life.

SQLAll posts

Engineering/Database

[Oracle] DML: INSERT, UPDATE, DELETE

💡INSERT INSERT는 DML의 한 종류이다. 테이블에 데이터를 추가하는 명령어이다. INSERT 구문 insert into 테이블명 (컬럼리스트) values (값리스트) INSERT의 사용 DROP TABLE tblMemo; CREATE TABLE tblMemo ( seq number(3) PRIMARY KEY,--메모번호(PK) name varchar2(30) DEFAULT '익명',--작성자(UQ) memo varchar2(1000),--메모(NN) regdate DATE DEFAULT sysdate NOT NULL--작성날짜 ); DROP SEQUENCE seqMemo; CREATE SEQUENCE seqMemo; SELECT * FROM tblMemo; INSERT를 사용하기 전에 필요한..

Engineering/Database

[Oracle] 시퀀스 (Sequence)

💡시퀀스 시퀀스(Sequence)는 일련 번호를 생성한다. 시퀀스는 데이터베이스 객체 중 하나로, 오라클 전용 객체이므로 다른 DBMS 제품에는 없다. 주로 식별자(일련번호)를 만드는데 사용하며, 기본값(PK)으로 사용되는 경우가 많다. CREATE SEQUENCE seqNum; SELECT seqNum.nextVal FROM dual; --일련 번호 생성 호출할 때마다 숫자를 증가하면서 돌려준다. 일련번호를 생성하고 있는 것을 확인할 수 있다. 시퀀스 객체 생성하기 CREATE SEQUENCE 시퀀스명; 시퀀스 객체 삭제하기 DROP SEQUENCE 시퀀스명; 시퀀스 객체 사용하기(함수) 시퀀스객체.nextVal 시퀀스객체.currVal 시퀀스의 사용 CREATE TABLE tblMemo ( seq n..

Engineering/Database

[Oracle] 데이터 정의어 (DDL)

💡DDL DDL은 데이터 정의어이다. 데이터의 구조를 만들며, 데이터와 관계되지 않은 것을 만들기도 한다. 데이터베이스 객체로는 테이블, 뷰, 인덱스, 프로시저, 트리거, 제약사항, 시노닙 등이 있다. DDL의 키워드로는 CREATE, ALTER, DROP이 있다. 데이터베이스 오브젝트를 만드는 역할을 하며, 만드는 것 뿐만 아니라 수정 삭제도 수행한다. DDL은 DB 작업에 있어 건물의 뼈대를 만드는 작업을 한다. 테이블 생성하기 > 스키마 정의하기 > 컬럼 정의하기 > 컬럼의 이름, 자료형, 제약을 정의 테이블을 생성할 때, 스키마를 정의한다고 말한다. 이는 속성(컬럼)을 정의한다고 볼 수 있다. 컬럼을 정의한다는 것은 해당 컬럼에 어떤 데이터를 집어 넣을지 이름을 정하거나 어떤 자료형을 넣을지, 어..

Engineering/Database

[Oracle] 제약 사항 (Constraint)

💡제약 사항 제약사항(Constraint)은 해당 컬럼에 들어갈 데이터(값)에 대한 조건이다. 사용자는 컬럼에 엉뚱한 값이 들어가지 않고 올바른 값만 저장될 수 있도록 해야 한다. 만약 숫자형만 들어가야 하는 컬럼에 날짜형이나 문자형이 들어가는 등 데이터가 훼손이 되면 테이블의 무결성이 깨졌다는 표현을 쓴다. 하지만 올바른 데이터만 들어가는지 사람이 일일이 확인하기 어렵다. 그래서 사람이 오라클에게 규칙을 알려주고, 오라클이 이러한 규칙에 따라 데이터를 감시하고 관리한다. 이때 데이터의 정확성과 일관성을 유지하고 관리하기 위한 규칙을 제약사항이라고 한다. NOT NULL PRIMARY KEY (PK) FOREIGN KEY (FK) UNIQUE CHECK DEFAULT NOT NULL NOT NULL은 해..

Engineering/Database

[Oracle] 관계대수 (Relational Algebra)

💡관계대수 관계대수(Relational Algebra)는 릴레이션에서 원하는 값을 얻기 위해 수학 연산을 이용해 질의하는 방법을 기술하는 언어이다. 관계대수는 수학 연산(+, -...)을 하는데, 피연산자가 테이블(릴레이션)이라는 점이 특징이다. 예를 들어서 A라는 테이블과 B라는 테이블이 있다고 할 때, 관계대수 연산을 이용하여 A테이블 + B테이블과 같이 더하는 작업을 할 수 있다. 💡관계대수 연산 관계대수 식에는 셀렉션, 프로젝션, 합집합, 교집합, 차집합, 카티션 프로덕션이 있다. 연산자 대상과 이름, 설명이 중요하며, 우리가 실제로 기호를 써가면서 표기할 일은 없다. 하나의 테이블을 가지고 연산을 하면 단항 연산, 두 개의 테이블을 가지고 연산을 하면 이항 연산이라고 부른다. 셀렉션과 프로젝션은..

Engineering/Database

[Oracle] 형변환 함수

💡형변환 함수 to_char(숫자): 숫자를 문자로 변환 to_char(날짜): 날짜를 문자로 변환 to_number(문자): 문자를 숫자로 변환 to_date(문자): 문자를 날짜로 변환 숫자형과 문자형, 무엇이 다를까? SELECT weight, to_char(weight), length(to_char(weight)), --같은 구문 length(weight), --같은 구문 substr(weight, 1, 1), weight || 'kg' FROM tblcomedian; 숫자형인 경우 왼쪽 상단에 '123', 문자형인 경우 'ABC'가 있는 것을 확인할 수 있다. 그리고 숫자는 우측 정렬, 문자는 좌측 정렬이 되어 있다. length가 암시적인 형변환으로 숫자형인 weight를 문자형으로 변환하여 ..

Engineering/Database

[Oracle] 문자열 함수: upper(), lower(), initcap(), substr(), length(), instr(), lpad(), rpad(), trim(), ltrim(), rtrim(), replace(), decode()

💡문자열 함수 upper(), lower(), initcap() varchar2 upper(컬럼) varchar2 lower(컬럼) varchar2 initcap(컬럼) upper, lower, initcap 함수는 대소문자 반환 함수라고 한다. 위 함수는 주로 검색에 사용한다. upper, lower, initcap 함수의 사용 SELECT first_name, upper(first_name), lower(first_name) FROM employees; SELECT 'abc', initcap('abc'), initcap('aBC') FROM dual; initcap 함수는 첫 문자를 대문자로 반환할 뿐 아니라, 첫 문자를 제외한 나머지 문자는 소문자로 변환한다. 마치 파스칼 표기법처럼 보이게 할 때 ..

Engineering/Database

[Oracle] 숫자 함수: round(), floor(), trunc(), mod()

💡숫자 함수 round() number round(컬럼명): 정수 반환 number round(컬럼명, 소수 이하 자릿수): 실수 반환 round 함수는 반올림을 해주는 함수이다. round 함수의 사용 SELECT 3,5678, round(3.5678), round(3.5678, 0), round(3.5678, 1), round(3.5678, 2) FROM dual; 원하는 자릿수의 반올림된 값을 확인할 수 있다. round의 소수 이하 자릿수를 지정하지 않자 실수가 정수로 반올림되어 출력되었다. SELECT round(avg(basicpay)) FROM tblinsa; --1556527 소수 이자 자릿수가 긴 값의 경우 round 함수를 이용해 깔끔하게 출력할 수 있다. floor(), truc() ..