Select

  • 데이터 베이스에 저장된 데이터를 가져오는 명령문이다.
  • 개발자가 가장 많이 사용하고 가장 중요한 명령문으로써 다양한 상황이나 조건에 맞는 데이터를 빠르고 쉽게 가져올 수 있도록 지원하고 있다.

모든 컬럼의 데이터 가져오기

  • select * from 테이블 명

ex)

-- 부서의 모든 정보를 가져온다.
select *
from dept;

ex)

-- 사원의 모든 정보를 가져온다.
select*
from emp;

특정 컬럼의 데이터 가져오기

  • select 컬럼명1, 컬럼명2 from 테이블명

ex)

-- 사원의 이름과 사원의 번호를 가져온다.
select ename,empno
from emp;

ex)

-- 사원의 이름과 사원번호, 직무, 급여를 가져온다
select ename,empno,job,sal
from emp;

ex)

-- 부서번호와 부서이름을 가져온다.
select deptno,dname
from dept;

Comment and share

SQL명령문

  • 관계형 데이터 베이스 관리 시스템에서 데이터를 관리하기 위해 설계된 특수 목적의 프로그래밍 언어이다.
  • SQL문은 표준 언어와 비 표준 언어로 나뉘며 표준 언어는 모든 RDBMS(Relational DataBase Management System)제품군들이 지원하고 비 표준 언어는 특정 비 표준 언어는 특정 RDBMS에서만 지원되는 언어이다.

DDL

  • Data Definition Language(데이터 정의어)
  • 테이블과 인덱스의 구조를 관리하는 언어
  • create, drop, alter 등

DML

  • Data Manipulation Language(데이터 조작어)
  • 테이블 등에 데이터를 저장, 수정, 삭제, 추출 등을처리하는 언어
  • insert, update, delete, select 등

DCL

  • Data Control Language(데이터 제어어)
  • 사용자 권한, 작업의 취소 등을 처리할 수 있는 언어
  • grant, revoke, commit, rollback 등

Comment and share

데이터 딕셔너리

  • 시스템 카탈로그라고 부르기도 하며 사용 가능한 데이터 베이스 및 테이블의 정보를 가지고 있는 시스템 테이블이다.
  • 데이터 딕셔너리는 DBMS만이 추가, 수정, 삭제가 가능하며 사용자는 조회만 가능하다.

테이블 목록 조회하기

select * from tab;

테이블 정보 조회하기

desc 테이블명

Comment and share

Primary key

예를 들어 학번 같이 중복이 되면 안되는 그런 데이터를 입력할 때
즉, 고유의 번호를 부여할 때 쓰인다.
값이 중복될 경우 입력이 되지 않고, 없다면 입력이 된다.
Primary key를 지정한 것과 하지 않는 것의 속도차이는 어마어마하게 차이가 크다.
그러므로 테이블을 만들 때 특별한 경우가 아니면 무조껀 하는 것이 좋다.
프라이머리 키
CREATE TABLE topic(
id NUMBER NOT NULL,
title VARCHAR2(50) NOT NULL,
describtion VARCHAR2(4000),
created DATE NOT NULL,
CONSTRAINT PK_TOPIC PRIMARY KEY(id)
);

Comment and share

행 수정 & 삭제

행 수정

행 수정
UPDATE topic
: topic 테이블을 수정한다.
SET
description = ‘MSSQL is …’
: description 행을 ‘MSSQL is …’으로 수정한다.
WHERE
: 어디에(수정 또는 삭제를 할 때 WHERE문이 없다면 모든 행열에 해당하므로 특별한 경우를 제외하고는 무조건 있어야 한다.)
id = 1;
id가 1인 행에

행 삭제

DELETE FROM topic WHERE id = 1;
1행을 삭제합니다.

Comment and share

Select문의 기본 형식

행 읽기

SELECT * FROM topic;: topic테이블의 모든 행열을 가져옵니다.
토픽의 모든 행을 불러오기

행과 칼럼 제외하기

SELECT id, title, created FROM topic;
: topic테이블에서 id, title, created행만 보기
SELECT * FROM topic WHERE id = 1;
: topic테이블에서 id가 1인 행만보기
SELECT * FROM topic WHERE id > 1;
: topic테이블에서 id가 1보다 큰 행만보기
SELECT id, title, created FROM topic WHERE id = 1;
: topic테이블에서 id가 1인 id, title, created행만 보기

정렬과 페이징

정렬

SELECT * FROM topic ORDER BY id DESC;
: topic테이블에서 id가 큰 순서대로 정렬
SELECT * FROM topic ORDER BY title ASD;
: topic테이블에서 tile이 abc순으로 정렬

페이징

SELECT * FROM topic
: topic테이블에서 모든 행을 불러온다.
OFFSET 1 ROWS
: 0번째 부터시작하여 1이후의 행을 불러온다.
FETCH NEXT 2 ROWS ONLY;
: OFFSET 1 ROWS 이후 2번째 까지의 행을 불러온다.

Comment and share

SQL(Structuerd Query Language)

SQL은 액셀에 쓰는 것보다 어렵다.
그럼에도 불구하고 DB를 사용하는 이유는 그만한 가치가 있기 때문이다.

  1. 액셀은 행을 추가하는 수가 한계가 있다. 그러나 DB는 저장장치의 한계가 없다면 무한하게 가능하다.
  2. 데이터를 꺼내올 수 있느 속도가 압도적으로 빠르다.
  3. 명령어를 통해서 DB를 제어할 수 있기 떄문에
    자동화를 할 수 있다.

Comment and share

테이블

테이블생성

CREATE TABLE topic (
id NUMBER NOT NULL,
title VARCHAR2(50) NOT NULL,
description VARCHAR2(4000) NULL,
created DATE NOT NULL
);

CREATE TABLE topic (: 테이블을 생성한다. 테이블 이름은 topic이다.
id NUMBER NOT NULL,: id행에는 숫자만올 수 있고, 공백으로 둘 수 없다.
title VARCHAR2(50) NOT NULL,: title행에는 50글자까지 쓸 수 있고, 공백으로 둘 수 없다.
description VARCHAR2(4000) NULL,: description행에는 4000글자 까지 쓸 수 있고, 공백으로 둘 수 있다.
created DATE NOT NULL: created행에는 날짜만 쓸 수 있고, 공백으로 둘 수 있다.
);

생성된 테이블 확인

SELECT table_name FROM all_tables WHERE OWNER =’’;: 선택된 유저의 테이블 이름 확인.

행추가

테이블
INSERT INTO topic
: topic테이블에 넣는다.
(id,title,description,created)
VALUES
: 값을
(1,’ORACLE’,’ORACLE is …’,SYSDATE);
각각의 값입력

Comment and share

Oracle Database

  • Oracle Database는 관계형 데이터베이스이다.
  • 핵심은 표이다.

    사용자와 스키마

    스키마는 서로연관된 표들을 그룹핑하는 디렉토리같은 것이다.
    사용자를 생성하면 그 사용자의 해당되는 디렉토리가 생성된다.
    스키마의 본질적인 정의는 그 스키마가 속하는 표들을 정의하는 정보이다.

Create user

유저를 생성하는 방법의 로드맵이다.
동그라미는 내가 자유롭게 결정하는 것이고, 네모는 고정된 선택지이다.


실제 CMD에서 Create user구동.

  1. SQLPLUS
  2. sys AS SYSDBA: 관리자권한으로 로그인
  3. CREATED USER asd IDENTIFIED BY 123;: 사용자 생성
  4. ALTER SESSION SET “_ORACLESCRIPT=TRUE”: 세션권한부여

사용자 권한부여

이 상태로는 로그인 권한이 없기 때문에 접속이 되지 않는다.
일단 모든 권한을 준다.

  1. GRANT DBA TO asd;:asd에게 모든 권한을 준다.
  2. SQLPLUS에 재접속을 한다.
  3. 접속 확인을 한다.

Comment and share

DATABASE

개념

여러 사람이 공유하고 사용할 목적으로 통합 관리되는 정보의 집합이다. 논리적으로 연관된 하나 이상의 자료의 모음으로 그 내용을 고도로 구조화함으로써 검색과 갱신의 효율화를 꾀한 것이다. 즉, 몇개의 자료 파일을 조직적으로 통합하여 자료 항목의 중복을 없애고 자료를 구조화하여 기억시켜 놓은 자료의 집합체라고 할 수 있다.

CRUD

CRUD는 대부분의 컴퓨터 소프트웨어가 가지는 기본적인 데이터 처리 기능인 Create(생성), Read(읽기), Update(수정), Delete(삭제)를 묶어서 일겉는 말이다. 사용자 인터페이스가 갖추어야 할 기능을 가리키는 용어로서도 사용된다.

CRUD는 여러 응용 프로그램의 사용자 인터페이스에도 들어맞는다. 예를 들어, 주소록이나 전화번호부 소프트웨어를 생각해볼 수 있다. 여기서 기본적인 기록 단위는 각 개인의 연락처이다. 다음과 같은 기능들은 가장 간단한 것이면서도 필수적이다.

  • 새로운 연락처 정보를 추가할 수 있다.
  • 기존의 연락처 정보를 검색할 수 있다.
  • 기존의 연락처 정보를 편집할 수 있다.
  • 기존의 연락처 정보를 삭제할 수 있다.

데이터베이스는 데이터를 어떻게 입력하고 어떻게 출력하는가를 따져보는 것이 중요하다.

create, update, delete는 입력, read는 출력이다. 이것을 crud라고 부른다. 이것이 데이터베이스의 가장 큰 작업이고, 그 외의 작업은 이 crud를 보좌하는 기능에 불과하다.

Comment and share

Hyeon Soo Ahn

author.bio


author.job