728x90

SELECT 구문

문자열 결합 (  | | )

 

리터럴 문자는 작은 따옴표로 감싼다 ( '  ' )

SQL> select last_name || '___' || job_id as "employees"
  2* from employees

employees
--------------------------------------
Abel___SA_REP
Ande___SA_REP
Atkinson___ST_CLERK

 

DISTINCT 키워드

중복된 값을 제거 후 조회하며 NULL값도 하나의 값이기 때문에 조회 시 나옴

SQL> select distinct department_id
  2  from employees;

DEPARTMENT_ID
-------------
          100
           30

           90

 

문자열 비교

: 왼쪽부터 한글자씩 아스키코드 비교. 문자열 크기에 관계없이 첫번째 문자를 비교하여 결과 출력.

(오름차순/사전순의 비교)

아스키 값은 인코딩에 따라 다르고 문자열 비교는 사전의 우선 순위를 생각하면 된다. ( Aa...Ab...)

SQL> select last_name, salary from employees where ASCII(last_name) <= 67
  2  order by last_name;

LAST_NAME		      SALARY
------------------------- ----------
Abel			       11000
(...)

LAST_NAME		      SALARY
------------------------- ----------
Bloom			       10000
Bull				4100
Cabrio				3000
Cambrault		       11000
(...)
19 rows selected.

위의 WHERE절에서 <= 'C' 로 조회해도 된다.

 

 

BETWEEN키워드

예) C로 시작하는 이름의 사원

SQL> select last_name from employees where last_name between 'C' and 'D';

LAST_NAME
-------------------------
Cabrio
Cambrault
Cambrault
Chen
Chung
Colmenares

6 rows selected.

예) 고용일 04년도인 사원 검색

SQL> select last_name, hire_date
  2  from employees
  3  where hire_date between '01-JAN-04' AND '31-DEC-04';

LAST_NAME		  HIRE_DATE
------------------------- ---------
Weiss			  18-JUL-04
Mallin			  14-JUN-04
Russell 		  01-OCT-04

IN 키워드

SQL> select manager_id, last_name from employees where manager_id IN (100, 101, 201);

MANAGER_ID LAST_NAME
---------- -------------------------
       100 Kochhar
       100 De Haan
      (...)
MANAGER_ID LAST_NAME
---------- -------------------------
       (...)
       101 Greenberg
       101 Whalen
       (...)
       201 Fay

20 rows selected.

LIKE 키워드

패턴 연산자라고도 함

_ : 한자리의 임의문자

% : n자리의 임의문자 (0 포함)

 

예) 한자리 임의문자 뒤에 o가 들어가는 임의길이 문자열 조건으로 검색

SQL> select last_name from employees where last_name LIKE '_o%';

LAST_NAME
-------------------------
Colmenares
Doran
Fox
Johnson
(...)

12 rows selected.

예) 3번째 문자가 g인 임의길이 문자열 조건으로 검색

SQL> select last_name from employees where last_name LIKE '__g%';

LAST_NAME
-------------------------
Higgins
Rogers

예) 문자열 길이가 3이고 두번째 문자가 o인 문자열 조건으로 검색

SQL> select last_name from employees where last_name LIKE '_o_';

LAST_NAME
-------------------------
Fox

예) 10일날 입사한 사람 검색 (DATE : 일-월-년도)

SQL> select hire_date from employees where hire_date LIKE '15%';

HIRE_DATE
---------
15-NOV-06
15-MAR-06
15-OCT-07
15-DEC-05

예) 04년도 입사한 사람 검색

SQL> select last_name, hire_date
  2  from employees
  3  where hire_date LIKE '%04';

LAST_NAME		  HIRE_DATE
------------------------- ---------
Weiss			  18-JUL-04
Mallin			  14-JUN-04
Russell 		  01-OCT-04
(...)

10 rows selected.

 

예) 급여 두번째 자리가 7이면서 4자리의 급여를 갖는 사원 검색

데이터 타입과 상관없이 ' ' 로 검색가능 (이에 대한 내용은 함수파트에서 다룸)

SQL> select salary from employees where salary LIKE '_700';

    SALARY
----------
      7700
      2700
      2700

 

IS 키워드

예) 매니저 아이디에 값이 없는 컬럼을 조회 (사장=king)

SQL> select last_name, manager_id from employees where manager_id IS NULL;

LAST_NAME		  MANAGER_ID
------------------------- ----------
King

SQL> select last_name, manager_id from employees where manager_id = NULL;

no rows selected

위 결과를 보면 = 연산자로는 올바른 쿼리 결과를 볼 수 없음을 알 수 있다.

 

예) 커미션 안 받는 사원, salary 기준 내림차순 정렬

SQL> select last_name, salary, commission_pct
  2  from employees
  3  where commission_pct IS NULL
  4  order by salary desc;

 

AND, OR 키워드

SQL> select employee_id, last_name, job_id, salary
  2  from employees
  3  where salary >= 10000 AND job_id like '%MAN%';

EMPLOYEE_ID LAST_NAME		      JOB_ID	     SALARY
----------- ------------------------- ---------- ----------
	114 Raphaely		      PU_MAN	      11000
	145 Russell		      SA_MAN	      14000
	146 Partners		      SA_MAN	      13500
	147 Errazuriz		      SA_MAN	      12000
	148 Cambrault		      SA_MAN	      11000
	149 Zlotkey		      SA_MAN	      10500
	201 Hartstein		      MK_MAN	      13000

7 rows selected.

SQL> select employee_id, last_name, job_id, salary
  2  from employees
  3  where salary >= 10000 OR job_id like '%MAN%';

EMPLOYEE_ID LAST_NAME		      JOB_ID	     SALARY
----------- ------------------------- ---------- ----------
	100 King		      AD_PRES	      24000
	101 Kochhar		      AD_VP	      17000
	102 De Haan		      AD_VP	      17000
	108 Greenberg		      FI_MGR	      12008
	114 Raphaely		      PU_MAN	      11000
SQL> select employee_id, last_name, job_id, salary
  2  from employees
  3  where job_id LIKE '%MAN%' OR job_id LIKE '%REP%' AND salary >= 10000;

EMPLOYEE_ID LAST_NAME		      JOB_ID	     SALARY
----------- ------------------------- ---------- ----------
	114 Raphaely		      PU_MAN	      11000
	120 Weiss		      ST_MAN	       8000
	121 Fripp		      ST_MAN	       8200
	122 Kaufling		      ST_MAN	       7900
	123 Vollman		      ST_MAN	       6500
	124 Mourgos		      ST_MAN	       5800
	145 Russell		      SA_MAN	      14000
	146 Partners		      SA_MAN	      13500
	147 Errazuriz		      SA_MAN	      12000
	148 Cambrault		      SA_MAN	      11000
	149 Zlotkey		      SA_MAN	      10500

EMPLOYEE_ID LAST_NAME		      JOB_ID	     SALARY
----------- ------------------------- ---------- ----------
	150 Tucker		      SA_REP	      10000
	156 King		      SA_REP	      10000
	162 Vishney		      SA_REP	      10500
	168 Ozer		      SA_REP	      11500
	169 Bloom		      SA_REP	      10000
	174 Abel		      SA_REP	      11000
	201 Hartstein		      MK_MAN	      13000
	204 Baer		      PR_REP	      10000

19 rows selected.
SQL> select employee_id, last_name, job_id, salary
  2  from employees
  3  where job_id LIKE '%MAN%' OR job_id LIKE '%REP%' AND salary >= 10000;

EMPLOYEE_ID LAST_NAME		      JOB_ID	     SALARY
----------- ------------------------- ---------- ----------
	114 Raphaely		      PU_MAN	      11000
	120 Weiss		      ST_MAN	       8000
	121 Fripp		      ST_MAN	       8200
	122 Kaufling		      ST_MAN	       7900
	123 Vollman		      ST_MAN	       6500
	124 Mourgos		      ST_MAN	       5800
	145 Russell		      SA_MAN	      14000
	146 Partners		      SA_MAN	      13500
	147 Errazuriz		      SA_MAN	      12000
	148 Cambrault		      SA_MAN	      11000
	149 Zlotkey		      SA_MAN	      10500

EMPLOYEE_ID LAST_NAME		      JOB_ID	     SALARY
----------- ------------------------- ---------- ----------
	150 Tucker		      SA_REP	      10000
	156 King		      SA_REP	      10000
	162 Vishney		      SA_REP	      10500
	168 Ozer		      SA_REP	      11500
	169 Bloom		      SA_REP	      10000
	174 Abel		      SA_REP	      11000
	201 Hartstein		      MK_MAN	      13000
	204 Baer		      PR_REP	      10000

19 rows selected.

연산자 우선 순위는 아래와 같다. 따라서 위에서 원하는 결과를 조회하기 위해선 괄호 ( ) 를 통해 우선순위를 변경가능

AND > OR

 

NOT 키워드

SQL> select last_name, job_id, salary, commission_pct from employees
  2  where commission_pct IS NOT NULL;

LAST_NAME		  JOB_ID	 SALARY COMMISSION_PCT
------------------------- ---------- ---------- --------------
Russell 		  SA_MAN	  14000 	    .4
Partners		  SA_MAN	  13500 	    .3
(...)

 

ORDER BY

기본 asc(오름차순)이고 내림차순은 desc

예) by 절 뒤에 컬럼명이 아닌 컬럼 인덱스로 지정하는 경우

 

SQL> select last_name, job_id, department_id, hire_date
  2  from employees
  3  order by 3;

LAST_NAME		  JOB_ID     DEPARTMENT_ID HIRE_DATE
------------------------- ---------- ------------- ---------
Whalen			  AD_ASST		10 17-SEP-03
Hartstein		  MK_MAN		20 17-FEB-04
Fay			  MK_REP		20 17-AUG-05
Raphaely		  PU_MAN		30 07-DEC-02
(...)

위는 3번째 컬럼인 DEPARTMENT_ID를 기준으로 오름차순 정렬 조회된 결과

 

예 ) order by절에 두 개의 컬럼을 지정하는 경우

SQL> select last_name, department_id, salary
  2  from employees
  3  order by department_id, salary desc;

LAST_NAME		  DEPARTMENT_ID     SALARY
------------------------- ------------- ----------
Whalen				     10       4400
Hartstein			     20      13000
Fay				     20       6000
Raphaely			     30      11000
Khoo				     30       3100
Baida				     30       2900
Tobias				     30       2800
Himuro				     30       2600
Colmenares			     30       2500
Mavris				     40       6500
Fripp				     50       8200
(...)

부서id로 1차 정렬, 급여로 2차 정렬(내림차순) 정렬된 결과

'DB' 카테고리의 다른 글

[오라클 DB] 함수-숫자  (0) 2021.03.10
[오라클 DB] 함수-문자)  (0) 2021.02.26
[오라클 DB] 온라인에서 Oracle SQL 테스트하기  (0) 2021.02.19
[오라클 DB] DQL  (0) 2021.02.03
MongoDB 기본  (0) 2021.01.30
728x90

livesql.oracle.com/

 

Oracle Live SQL

704,213 scripts, 3,601 likes, 1,025 public scripts, 8,521 new scripts created in the last 7 days.

livesql.oracle.com

가입이 필요하다. 가입 시 메일이 늦게 오는 경우도 있으니 여유있게 기다려주자

 

로그인 후 화면 좌측 상단 메뉴 항목 선택

 

 

  • code library

 

 






'DB' 카테고리의 다른 글

[오라클 DB] 함수-문자)  (0) 2021.02.26
[오라클 DB] DQL 심화학습  (0) 2021.02.19
[오라클 DB] DQL  (0) 2021.02.03
MongoDB 기본  (0) 2021.01.30
[오라클 DB] 유저관리, DCL  (0) 2021.01.12
728x90

Win + V : 클립보드 목록보기 (해당 기능을 켠 후에 클립보드에 목록이 저장된다)

 

Ctrl + Shift + Z ( Ctrl + Z가 undo라면 이 단축키는 redo)

 

Win + Shift + S : 사각/자유/창/전체 캡처기능

(캡처 후에 클립보드에 저장되어 이미지 편집툴에 붙여넣거나 티스토리에 바로 업로드도 가능)

728x90

슈타인즈 게이트 엘리트 스팀판 한국어 패치 베타 (2021-02-12)

번역 및 패치제작 : RuTel / VELKA

검수 : ESDEATH, mkell, AhnChaeHyeok, fufu, RuTel, VELKA, volg

 

패치 다운로드 링크 :

https://drive.google.com/drive/u/1/folders/1Lzb1UEp0x1KNMhY0R07hwhZJEkiBMd70

 

[주의 사항]

  1. 패치적용에는 약 15GB 이상의 여유공간이 필요합니다.

  2. 본 패치는 일본어판을 기준으로 합니다.설치 시 일본어를 선택하시거나 언어를 변경해주세요.

(파일용량이 크기 때문에 언어변경 시 상당한 시간이 소요됩니다)

  1. 100% 자체 검수가 되지 않은 버전으로 오탈자, 튕김이 있을 수 있습니다.

자동 퀵세이브 옵션을 켜시고 주기적으로 세이브하여 주시길 권장합니다.

제보사항이 있으면 아래 메일로 스크린샷, 세이브 파일을 첨부하여 제보 부탁드립니다.

stgate.elite@gmail.com

 

세이브파일 경로

[내문서]\My Games\mages_steam\Steins Gate ELITE\eng 폴더 내 SAVEDATA_SGEL.DAT 파일

 

[패치 방법]

  1. 게임언어가 일본어인지 확인하고 일어가 아닐 시 스팀라이브러리 게임 우클릭 - 속성에서 일본어로 변경해줍니다.

  2. 다운로드 받은 압축파일을 풀어 게임설치폴더에 덮어쓰기 합니다.

            라이브러리 우클릭 - 로컬파일탭- 로컬컨텐츠 보기에서 확인가능. (..\SG_ELITE)

 

  1. STG_ELITE_KOR_PATCH.bat 을 실행 후 “한국어 패치 완료!” 문구 출력 시까지 기다립니다.

(CPU,SSD 등 사양에 따라  시간이 제법 걸릴 수 있으니 여유를 갖고 기다려주세요)

파일 개별 진행상태는 아래와 같이 녹색바를 통해 확인가능합니다.



[패치시 출력로그 예시]

Active code page: 65001

슈타인즈 게이트 엘리트 스팀판 한국어화 패치 by RuTel-VELKA

부트파일을 백업합니다.

영상 원본파일을 백업합니다.

이미지 원본파일을 백업합니다.

부트파일 패치완료

영상 한국어화 패치중... 시간이 많이 소요되니 잠시 기다려주세요.

현재시각 11:40:38.01

배경 한국어화 패치중... 시간이 많이 소요되니 잠시 기다려주세요.

현재시각 11:50:21.53

현재시각 11:52:07.72

한국어 패치 완료! (창을 닫으시려면 아무키나 입력해주세요)

Press any key to continue . . .   



  1. 위의 “한국어 패치 완료!” 문구가 나오면 아무 키나 입력해 패치 파일을 종료합니다.

 

  1. 원본파일로 돌릴 필요가 있을 시 게임을 재설치하거나 Restore.bat을 실행하여 원본파일로 돌릴 수 있습니다.


[스크린샷]

 

 

 

728x90

boolean type의 get메소드는 관례적으로 is멤버변수이름 이 된다

예) 멤버변수 stop의 get 메소드는 isStop

 

이클립스IDE에서 자동완성기능 

클래스내에서 Alt + Shift + S 누른 후 

r눌러 만드려는 멤버변수나 옵션(코드삽입지점,정렬,접근 한정자,코멘트 생성 등) 선택 후 generate

 

퀵액세스 :

ctrl + 3 눌러 원하는 단축키 검색 - get, set검색후 선택해 엔터



728x90

사실 이건 자막 파일에서 시간정보만 빼고 추려내기 위해 만든 소스인데

containString을 수정해서 응용하기 나름일 듯 합니다

import java.util.List;
import java.io.IOException;
import java.nio.charset.Charset;
import java.nio.charset.StandardCharsets;
import java.nio.file.Files;
import java.nio.file.Path;
import java.nio.file.Paths;
import java.util.ArrayList;

import java.io.BufferedWriter;
import java.io.File;
import java.io.FileWriter;
import java.io.IOException;

public class FileReadWrite {

	public static void main(String[] args) {
		
		String readPath = "C:\\Users\\rutel\\Downloads\\sub.vtt";
		String newPath = "C:\\Users\\rutel\\Downloads\\sub.txt";
		String containString = "-->";
		
		//파일 객체 생성
        Path path = Paths.get(readPath);
        // 캐릭터셋 지정
        Charset cs = StandardCharsets.UTF_8;
        //파일 내용담을 리스트
        List<String> list = new ArrayList<String>();
        // 새 파일 내용담을 리스트
        List<String> nlist = new ArrayList<String>();
        try{
            list = Files.readAllLines(path,cs);
        }catch(IOException e){
            e.printStackTrace();
        }
        for(String readLine : list){
            //System.out.println(readLine);
        	if (readLine.contains(containString)) {
        		continue;
        	}
        	else {
        		nlist.add(readLine);
        	}
        }
        // 새 파일 내용쓰기
        try{
            //파일 객체 생성        	
            File file = new File(newPath);
            BufferedWriter bufferedWriter = new BufferedWriter(new FileWriter(file));
            
            if(file.isFile() && file.canWrite()){
            	for(String readLine : nlist){
            		//쓰기
                    bufferedWriter.write(readLine);
                    //개행문자쓰기
                    bufferedWriter.newLine();
            	}
                
                bufferedWriter.close();
            }
        }catch (IOException e) {
            System.out.println(e);
        }
        
        System.out.println("작업 완료");
	}

}

'Study > Java' 카테고리의 다른 글

[JAVA] 다형성 / 다이나믹 바인딩  (0) 2021.03.08
JAVA - getter, setter  (0) 2021.02.09
JAVA에서의 데이터 타입  (0) 2021.01.11
자바 - 식별자  (0) 2021.01.06
자바 NIO 셀렉터  (0) 2017.07.05
728x90

웹서버와의 호환위해 5.7버전 설치 권장

 

1. 다운로드

다운로드 링크 : 

https://dev.mysql.com/downloads/file/?id=500615

 

MySQL :: Begin Your Download

The world's most popular open source database

dev.mysql.com

혹은 아래 사이트에서 

www.mysql.com/downloads/dev.mysql.com/downloads/installer/

Looking for previous GA versions? 를 찾아 누르고  Download를 누른다.

 

Windows (x86, 32-bit), MSI Installer 를 다운로드 받는데 용량이 적은 버전은 인터넷을 통해 추가패키지를 다운로드 받으며 용량이 많은 버전은 설치에 필요한 패키지가 모두 포함되어있다. 원하는 대로 선택

 

풀패키지 버전은

dev.mysql.com/downloads/file/?id=500616dev.mysql.com/get/Downloads/MySQLInstaller/mysql-installer-community-5.7.33.0.msi

 

다운로드 창이 뜨면 No thanks, just start my download. 를 눌러 다운로드

 

2. 설치 과정

Develop 버전을 선택하고 기본적으로 Next를 누르면 된다.

패스워드만 정확히 입력 후 설치 과정을 끝낸다.

 

3. 환경 변수 등록

아래 경로의 환경변수 등록

C:\Program Files\MySQL\MySQL Server 5.7\bin

 

(등록법은 아래 포스트 참고)

rutel.tistory.com/329

 

환경변수에 경로 추가하기 (윈10기준)

1. 윈도우 키 누르고 "고급"으로 검색 후 "고급 시스템 설정 보기" 클릭 2. 아래 쪽에 "환경 변수" 클릭 3. 시스템 변수에서 Path 항목을 찾아 편집 클릭 4. "새로 만들기" 누른 후 경로를 입력하고 확

rutel.tistory.com

4. CMD클라이언트 동작 확인

기본적으로 워크벤치를 쓰는 것이 편하나 커맨드라인 클라이언트를 쓸 일도 있으므로 동작을 확인해본다.

 

cmd창을 열어 아래 명령어 입력

mysql -u root -p

비밀번호를 입력하면 접속이 됨을 확인 할 수 있다

 

5. 서버 기본 캐릭터셋(character-set)을 UTF-8로 변경하기

프로그램 데이터\MySQL밑에 MySQL서버 폴더를 찾아 들어간다. 예) C:\ProgramData\MySQL\MySQL Server 5.7  

(프로그램데이터 폴더가 안보일 시 윈도탐색기 숨긴 항목 체크해제)

 

my.ini파일을 열어 # character-set-server= 항목을 찾아 아래와 같이 변경한다. (#을 제거해 주석처리 해제)

character-set-server=utf8

6. 서비스 재시작

7. 서버가 재시작 완료되면 mysql에서 status 명령어로 서버와 db의 캐릭터셋을 확인한다. 캐릭터셋 변경 이후에는 데이터베이스가 자동으로 utf-8로 생성된다

 

수동으로 서비스 등록하고 초기화하려면 아래와 같이 입력

 

G:\JavaWeb_App\DB>mysqld --install
Service successfully installed.

G:\JavaWeb_App\DB>mysqld --initialize

G:\JavaWeb_App\DB>net start mysql
The MySQL service is starting.
The MySQL service was started successfully.

이니셜라이즈 후 data폴더에 host명.err파일이 생성되며 파일을 열어 초기 비밀번호확인이 가능하다.

이 후 이 임시비밀번호를 본인이 원하는 비밀번호로 변경하면 된다.

 ALTER USER 'root'@'localhost' IDENTIFIED BY '비밀번호';

 

DB관리를 위한 새 유저 추가

create user '[유저명]'@'%' identified by '[비밀번호]';

권한 부여

 grant select, insert, update on [DB테이블명].* to [유저명]@localhost identified by '[비밀번호]';

이클립스 현재 jsp 프로젝트와 연동

 

1. jdbc 다운로드 (5.1.49 zip archive)

https://downloads.mysql.com/archives/c-j/

 

MySQL :: Download MySQL Connector/J (Archived Versions)

Please note that these are old versions. New releases will have recent bug fixes and features! To download the latest release of MySQL Connector/J, please visit MySQL Downloads. MySQL open source software is provided under the GPL License.

downloads.mysql.com

혹은 C:\Program Files (x86)\MySQL\Connector J 5.1 에서 .jar파일을 찾아

 

2. .jar파일을 이클립스 프로젝트에서 WEB-INF\lib 폴더로 복사

728x90

1. 윈도우 키 누르고 "고급"으로 검색 후 "고급 시스템 설정 보기" 클릭

 

2. 아래 쪽에 "환경 변수" 클릭

3. 시스템 변수에서 Path 항목을 찾아 편집 클릭

 

4. "새로 만들기" 누른 후 경로를 입력하고 확인

728x90

DQL(데이터 질의어)

  • 데이터베이스에 데이터를 조회할 때 사용하는 문법

키워드

  • SQL 문법에서 기능이 미리 할당되어 있는 예약어

 

SELECT 조회할 테이블의 컬럼 리스트 작성

FROM 조회할 테이블을 명시

 

키워드 + 요소 -> 절

SELECT + 컬럼리스트 -> SELECT절

FROM + 테이블명 -> FROM절

 

절 + 절 -> 문법

SELECT절 + FROM절 + 옵션절 -> SELECT구문

 

문법 기호

*(Asterisk) SELECT절에 단독으로 사용 시 : 모든 컬럼 출력

 

 

SELECT 구문

- 표현식(expression)

SQL> select last_name, salary, 12*salary+100
  2  from employees;

LAST_NAME                     SALARY 12*SALARY+100
------------------------- ---------- -------------
King                           24000        288100
Kochhar                        17000        204100
De Haan                        17000        204100

위의 구문 중 12*salary+100이 표현식 

서브쿼리 구문으로 테이블 조회

select last_name AS name, -- AS키워드 사용하여 last_name을 name으로 명명하여 조회
commission_pct comm -- AS키워드 사용하지 않고 한칸 띄우고 적어도 위와 동일
from employees;

 

표현식(expression)

컬럼의 값과 숫자를 사칙연산을 사용하여 결과를 연산하는 문법

 

테이블과 연관없는 표현식 조회도 가능

SQL> select department_id, 1+2
  2  from departments;

DEPARTMENT_ID        1+2
------------- ----------
           10          3
           20          3

 

공백,대소문자 구분해 AS 키워드 사용하고 싶을 시 큰 따옴표(" ")로 묶어서 사용

SQL> select last_name as "Name", salary*12 "Annual Salary"
  2  from employees;

Name                      Annual Salary
------------------------- -------------
King                             288000
Kochhar                          204000

NULL값

  • 테이블의 데이터를 입력 시 컬럼에 값을 입력하지 않으면 들어가게되는 값
  • 테이블의 설정에 따라 다른 대체값이 들어갈 수도 있음.
  • 표현식에 사용된 경우 NULL값이 포함된 컬럼의 경우 NULL값이 나온 행에서는 표현식의 내용과는 상관없이 연산결과가 NULL값으로 출력된다.

 

  • 아래의 예문도 commission_pct 컬럼의 값이 NULL값인 경우 표현식 전체의 값이 NULL로 출력
SQL> SELECT last_name, commission_pct, salary*12 + salary*12*commission_pct
  2  FROM employees;

NULL값이 포함되어 있어 조회결과가 NULL

LAST_NAME                 COMMISSION_PCT SALARY*12+SALARY*12*COMMISSION_PCT
------------------------- -------------- ----------------------------------
King
Kochhar
De Haan
Hunold

 

문자열 결합 (  | | )

 

리터럴 문자는 작은 따옴표로 감싼다 ( '  ' )

SQL> select last_name || '___' || job_id as "employees"
  2* from employees

employees
--------------------------------------
Abel___SA_REP
Ande___SA_REP
Atkinson___ST_CLERK

 

DISTINCT 키워드

중복된 값을 제거 후 조회하며 NULL값도 하나의 값이기 때문에 조회 시 나옴

SQL> select distinct department_id
  2  from employees;

DEPARTMENT_ID
-------------
          100
           30

           90

 

'DB' 카테고리의 다른 글

[오라클 DB] DQL 심화학습  (0) 2021.02.19
[오라클 DB] 온라인에서 Oracle SQL 테스트하기  (0) 2021.02.19
MongoDB 기본  (0) 2021.01.30
[오라클 DB] 유저관리, DCL  (0) 2021.01.12
[오라클 DB] DB접속 및 DCL  (0) 2021.01.05
728x90

개요

Humongous (거대한)

몽고DB는 2007년 발표한 NoSQL 모델로 문서 기반 DB중 가장 많이 쓰임 (글작성기준)

NoSQL DB 타입

데이터 모델 설계 방식에 따라 아래 모델로 나뉨

Document / Key-value / Column / Graph

 

 

MongoDB 특징

1. 문서지향 데이터베이스 (내장문서와 배열사용, 복잡한 계층관계를 하나로 표현)

2. 문서 필드값 미리 정의안함 (고정된 스키마 없으므로 필드추가 제거 쉬움)

3.  데이터 분산을 쉽게 함 (문서 자동재분배, 사용자 요청을 적합서버에 라우팅하므로 여러서버에 쉽게 분산가능)

 

관계형 DB와의 비교

관계형 Mongo
테이블 콜렉션
문서
컬럼 필드

MongoDB의 문서

문서의 개념

Document : MongoDB 데이터 기본 단위, 정렬된 필드와 연결된 값의 집합

문서의 특성

동일한 필드명이 필요하지 않으며 동일한 필드명이라도 자료형이 동일하지 않아도 됨

문서의 예

JSON과 유사

{
	name : "dong-su",
    age : 17
}

MongoDB의 콜렉션

콜렉션의 개념

Collection : 문서들의 모음

콜렉션의 특성

동적 스키마를 가짐 (하나의 콜렉션 내 문서들이 모든 다른 구조를 가질 수 있다)

이름으로 식별 가능

콜렉션의 예시

{ 
	name : "dong-su",
    age : 17 
}
{ 
	type : ["user", "admin"]
}

콜렉션 이름 생성 규칙

1. _ 또는 문자로 시작

2. $ 또는 \0 (NULL) 을 포함할 수 없음

3. 빈 문자열 ("")은 사용불가

4. system. 으로 시작 불가 (내부적 예약어)

 

MongoDB의 데이터베이스

데이터베이스 개념 (MongoDB에서의)

Database : 하나 이상의 Collection 포함

데이터베이스 특성

각각의 DB가 자체 권한 가짐, 분리된 파일로 저장

이름으로 식별

데이터베이스 이름 생성 규칙

1. 빈문자 사용불가

2. 특정 문자열 포함불가

윈도우 :   /₩, " $ * < > : | ? 
리눅스 :  /₩, " $

 

설치 실행 및 테스트는

https://www.mongodb.com/try/download/community

에서 설치파일을 받아 full로 설치

 

고급시스템 설정에서 시스템변수 path 에 C:\Program Files\MongoDB\Server\4.4\bin 등록 (버전마다 경로다를수있음)

 

cmd에서 mongo 입력하면 실행가능

 

또는 MongoDB Compass를 이용해 connect하여 gui환경에서 손쉽게 관리가능

'DB' 카테고리의 다른 글

[오라클 DB] 온라인에서 Oracle SQL 테스트하기  (0) 2021.02.19
[오라클 DB] DQL  (0) 2021.02.03
[오라클 DB] 유저관리, DCL  (0) 2021.01.12
[오라클 DB] DB접속 및 DCL  (0) 2021.01.05
[오라클 DB] 설치 및 접속  (0) 2017.07.08

+ Recent posts