본문 바로가기

DB

8/17 DB - Order by 절 ~ Oracle , MobaXterm

728x90
반응형

ORDER BY절

출력 결과를 사용자의 기준으로 정렬하여 출력하는 옵션절

ORDER BY 정렬기준 [정렬방식]

ORDER BY절의 정렬기준은 SELECT절에 사용하지 않은 컬럼이나 표현식들도 사용가능하다.

정렬방식을 명시하지 않는 경우 기본값으로 오름차순(ASC)가 적용된다.

 

 

  숫자 문자 날짜
오름차순, 사전순
(작은 값 → 큰 값)
1 → 9 'A' → 'Z' 이전 → 이후
내림차순
(큰 값 → 작은 값)
9 → 1 'Z' → 'A' 이후 → 이전

 

hire_date컬럼을 기준으로 내림차순 정렬한 결과 출력
hire_date컬럼은 날짜데이터 컬럼으로 내림차순으로는 이후 날짜값이 먼저 출력되고 그 밑으로 이후 날짜의 값들이 정렬되어 출력된다.

 

 

 

mysql> SELECT last_name, job_id, department_id, hire_date
    -> FROM employees
    -> ORDER BY hire_date DESC;

+-------------+------------+---------------+------------+

| last_name   | job_id     | department_id | hire_date  |

+-------------+------------+---------------+------------+

| Banda       | SA_REP     |            80 | 2000-04-21 |

| Kumar       | SA_REP     |            80 | 2000-04-21 |

| Ande        | SA_REP     |            80 | 2000-03-24 |

| Markle      | ST_CLERK   |            50 | 2000-03-08 |

| Kochhar     | AD_VP      |            90 | 1989-09-21 |

| Whalen      | AD_ASST    |            10 | 1987-09-17 |

| King        | AD_PRES    |            90 | 1987-06-17 |

+-------------+------------+---------------+------------+

107 rows in set (0.00 sec)



column alias를 정렬에 사용할 수 있음

정렬방식을 생략한 경우 기본 값은 ASC(오름차순)이 적용된다.

 

 

 

mysql> SELECT employee_id, last_name, salary*12 annsal
    -> FROM employees
    -> ORDER BY annsal;

+-------------+-------------+-----------+

| employee_id | last_name   | annsal    |

+-------------+-------------+-----------+

|         132 | Olson       |  25200.00 |

|         128 | Markle      |  26400.00 |

|         136 | Philtanker  |  26400.00 |

|         127 | Landry      |  28800.00 |

|         135 | Gee         |  28800.00 |

|         119 | Colmenares  |  30000.00 |

|         131 | Marlow      |  30000.00 |

|         140 | Patel       |  30000.00 |

|         144 | Vargas      |  30000.00 |

|         182 | Sullivan    |  30000.00 |

|         191 | Perkins     |  30000.00 |

|         118 | Himuro      |  31200.00 |

|         143 | Matos       |  31200.00 |

|         198 | OConnell    |  31200.00 |

|         199 | Grant       |  31200.00 |

 

 

 

정렬 기준으로 숫자가 사용된 경우 SELECT절의 컬럼의 순서를 숫자로 표현해서 정렬기준을 설정한 것.

아래의 예제에서는 3은 SELECT절의 department_id를 정렬기준으로, 정렬방식은 생략해서 오름차순이 적용되었음.

 

 

mysql> SELECT last_name, job_id, department_id, hire_date
    -> FROM employees
    -> ORDER BY 3;

+-------------+------------+---------------+------------+

| last_name   | job_id     | department_id | hire_date  |

+-------------+------------+---------------+------------+

| Grant       | SA_REP     |          NULL | 1999-05-24 |

| Whalen      | AD_ASST    |            10 | 1987-09-17 |

| Hartstein   | MK_MAN     |            20 | 1996-02-17 |

| Fay         | MK_REP     |            20 | 1997-08-17 |

| Raphaely    | PU_MAN     |            30 | 1994-12-07 |

| Khoo        | PU_CLERK   |            30 | 1995-05-18 |

 


 

다중 컬럼 정렬

ORDER BY절에 정렬기준으로 여러개의 컬럼이 입력되는 경우
왼쪽 순서의 기준부터 우선 적용되며 이후의 정렬 기준은 정렬결과가 동일한 값을 가지는 행이 있을 경우에 추가 적용된다.

정렬 기준 별로 정렬 방식은 따로 적용

 

mysql> SELECT last_name, department_id, salary
    -> FROM employees
    -> ORDER BY department_id, salary DESC;

 


 

Oracle Datebase 설치하기 (리눅스)

 

 

 

 

가상머신 실행 후 아래 항목 키보드로 선택 후 실행

 



원격접속하기

가상머신에서 IP주소 확인하기!

 

윈도우 커멘드 창 실행 (윈도우+r → cmd)

첫 접속 시 아래 명령어 입력하고 yes 입력 후 진행

C:\Users\ITWILL>ssh root@192.168.7.177

root@192.168.7.177's password: oracle01



[root@Oracle ~]# yum update -y

 

오라클 데이터베이스 설치용 계정 생성

 

커널 설정 변경하기

[root@Oracle ~]# MEMTOTAL=$(free -b | sed -n '2p' | awk '{print $2}')

 

[root@Oracle ~]# SHMMAX=$(expr $MEMTOTAL / 2)

 

[root@Oracle ~]# SHMMNI=4096

 

[root@Oracle ~]# PAGESIZE=$(getconf PAGE_SIZE)

 

  • 아래 형광색 하이라이트 부분은 한번에 복사해서 붙여넣기! 한줄씩 아님!!
[root@Oracle ~]# cat >> /etc/sysctl.conf << EOF
fs.aio-max-nr = 1048576
fs.file-max = 6815744
kernel.shmmax = $SHMMAX
kernel.shmall = $(expr \( $SHMMAX / $PAGESIZE \) \* \( $SHMMNI / 16 \))
kernel.shmmni = $SHMMNI
kernel.sem = 250 32000 100 128
net.ipv4.ip_local_port_range = 9000 65500
net.core.rmem_default = 262144
net.core.rmem_max = 4194304
net.core.wmem_default = 262144
net.core.wmem_max = 1048576
EOF

 

[root@Oracle ~]# sysctl -p

fs.aio-max-nr = 1048576

fs.file-max = 6815744

kernel.shmmax = 1986531328

kernel.shmall = 124158208

kernel.shmmni = 4096

kernel.sem = 250 32000 100 128

net.ipv4.ip_local_port_range = 9000 65500

net.core.rmem_default = 262144

net.core.rmem_max = 4194304

net.core.wmem_default = 262144

net.core.wmem_max = 1048576

 

오라클 관리 그룹 생성

  • 하이라이트 부분은 한번에 복사해서 붙여넣기!
[root@Oracle ~]# i=54321; for group in oinstall dba backupdba oper dgdba kmdba; do
groupadd -g $i $group; i=$(expr $i + 1)
done

 

관리 계정 생성

[root@Oracle ~]# useradd -u 1200 -g oinstall -G dba,oper,backupdba,dgdba,kmdba -d /home/oracle oracle


계정 패스워드 지정

  • 패스워드는 입력해도 보이지 않음
[root@Oracle ~]# passwd oracle

Changing password for user oracle.

New password: oracle

BAD PASSWORD: The password is shorter than 8 characters

Retype new password: oracle

passwd: all authentication tokens updated successfully.

 

oracle DB 설치 경로 생성

  • 설치 경로를 root계정으로 만들었으므로 소유권은 root가 가지고 있음
[root@Oracle ~]# mkdir -p /u01/app/oracle
  • 설치 경로의 소유권을 oracle로 이전
[root@Oracle ~]# chown -R oracle:oinstall /u01/app

 

[root@Oracle ~]# chmod -R 775 /u01

 

[root@Oracle ~]# vi /etc/pam.d/login

 

# 내용에서 아랫부분을 찾은 뒤 키보드 i 입력 후 하이라이트 부분을 추가해준다.

# 터미널에서는 기본적으로 마우스는 사용이 안됨. 키보드만 사용하기

session    required     pam_selinux.so open

session    required     pam_namespace.so

session    required     pam_limits.so

session    optional     pam_keyinit.so force revoke

session    include      system-auth

session    include      postlogin

# esc 입력 후 :wq 로 저장 후 종료

 

[root@Oracle ~]# vi /etc/security/limits.d/50-oracle.conf

 

# 키보드 i 입력 후 아래 내용 전부 추가하기!

 

oracle   soft   nofile   1024

oracle   hard   nofile   65536

oracle   soft   nproc    2047

oracle   hard   nproc    16384

oracle   soft   stack    10240

oracle   hard   stack    32768

 

# esc키 입력 후 :wq 저장 후 종료

 

GUI 환경 설치하기

Oracle 설치 도구는 GUI 환경을 필수로 요구한다.

CLI 설치 시에는 필요 없음.

[root@Oracle ~]# yum group install "GNOME Desktop" -y







Oracle software 파일 다운로드

파일은 무료로 받을 수 있으나 오라클 계정이 필요하다.

https://www.oracle.com/database/technologies/oracle-database-software-downloads.html

사용할 운영체제와 버전을 적절하게 선택하여 다운로드!




 


(부록) 가상머신 이미지 가져오기 / 내보내기

내보내기

 

MAC 주소는 하드웨어에 기록되어 있는 장치의 주소값으로 각 장치마다 고유한 값이 공장 출고시에 기록되어져 나온다.

가상 시스템 내보내기와 같이 가상의 장치를 복사해서 만드는 경우 동일 네트워크 상에서 이 MAC주소가 겹치는 장치가 여럿 있다면 네트워크 에러가 발생하므로 이를 랜덤하게 생성해주는 아래의 항목을 수정해줘야한다.

가져오기


 

 

 

 

mobaxterm

https://mobaxterm.mobatek.net/download-home-edition.html 

 

 

 

 

 

환경 변수 설정하기

[oracle@Oracle ~]$ vi ~/.bash_profile

# 키보드 i 입력 후 파일 제일 하단에 다음 내용을 추가 입력한다.

 

PATH=$PATH:$HOME/.local/bin:$HOME/bin

 

export PATH

 

umask 022

export ORACLE_BASE=/u01/app/oracle

 

# esc 입력 후 :wq로 저장 후 종료

 

설치 파일 옮기기

[oracle@Oracle ~]$ mkdir tmp

 

 

728x90
반응형

'DB' 카테고리의 다른 글

7월 DB Data retrieval, Select  (0) 2022.08.23
0823 JSP - ((SELECT))DB 정보 조회, 레코드셋, ~ ((UPDATE))  (0) 2022.08.23
8/10 DB - 연산자, 다중컬럼  (0) 2022.08.10
8/9 DB - 연산자  (0) 2022.08.09
7/28 DB - 네트워크 기초  (0) 2022.07.28