1. 테이블 컬럼 추가하기(ALTER TABLE ADD)

[문법] ALTER TABLE 테이블명 ADD 컬럼명 데이타타입(사이즈);

( EX ) USER라는 테이블에 USER_NAME이라는 컬럼을 VARCHAR2(13) 타입으로 추가할 때

-> ALTER TABLE USER ADD USER_NAME VARCHAR2(13); 

 

2. 테이블 컬럼 수정하기(ALTER TABLE ALTER COLUMN)

[문법] ALTER TABLE 테이블명 ALTER COLUMN 컬럼명 테이타타입(사이즈);

( EX ) USER라는 테이블에 USER_AGE 라는 컬럼을 NUMBER(3) 타입으로 수정할 때

-> ALTER TABLE USER ALTER COLUMN USER_AGE NUMBER(3);

 

3. 테이블 컬럼 삭제하기(ALTER TABLE DROP COLUMN)

[문법] ALTER TABLE 테이블명 DROP COLUMN 컬럼명

( EX ) USER라는 테이블에 USER_NAME 라는 컬럼을 삭제할 때

-> ALTER TABLE USER DROP COLUMN USER_NAME;

 

4. 테이블 컬럼 이름 변경하기(SP_RENAME)

[문법] SP_NAME '테이블명.원래컬럼명' '바꿀컬럼명';

( EX ) USER라는 테이블에 USER_NAME 이라는 컬럼을 USER_FIRST_NAME으로 변경할 때

-> SP_NAME 'USER.USER_NAME' 'USER_FIRST_NAME';

 

 

컬럼 수정 작업은 테이터가 별로 없는 테이블이나 시작 단계에서 작업을 하는 것을 추천합니다.

1. 데이터가 많으면 수정하는데 시간이 많이 걸릴 것입니다.

2. 컬럼 수정으로 인해 컬럼명이 매칭이 되지 않아서 프로그램 오류가 발생할 수도 있습니다.

1. 테이블 조회하기


  - 테이블 목록 조회

     SELECT * FROM all_all_tables

     SELECT * FROM dba_tables

     SELECT * FROM ALL_OBJECTS WHERE OBJECT_TYPE = 'TABLE'


  - 테이블 목록 조회 (접속한 계정)

     SELECT * FROM tabs

     SELECT * FROM USER_OBJECTS WHERE OBJECT_TYPE = 'TABLE'

     SELECT * FROM USER_TABLES


  - 테이블 코멘트 조회

     SELECT * FROM ALL_TAB_COMMENTS WHERE TABLE_NAME = '테이블명'

     SELECT * FROM USER_TAB_COMMENTS

 

2. 컬럼 조회하기

  - 컬럼 조회

     SELECT * FROM COLS WHERE TABLE_NAME = '테이블명'

     SELECT * FROM ALL_TAB_COLUMNS WHERE TABLE_NAME = '테이블명'

     SELECT * FROM USER_TAB_COLUMNS


  - 컬럼 코멘트 조회

     SELECT * FROM USER_COL_COMMENTS

YUM이란?  rpm 명령어의 패키지 의존성 문제 해결를 해결한 'rpm 패키지를 설치하는 편리한 도구'라고 보면 된다.


1. 기본 설치 방법

  - yum install [패키지이름]

    ^

   -y 를 넣어주면 yes/no를 묻지 않는다.


2. rpm만 설치 방법

  - yum localinstall [rpm파일명].rpm


3. 업데이트 가능한 목록 보는 방법

  - yum check-update


4. 업데이트 방법 (패키지명을 생략 시 전체를 업뎃하므로 많은 시간이 걸리므로 피하는 것이 좋다.)

  : 설치 되어 있으면 업데이트를 진행하는데 업데이트가 없으면 그냥 종료. 그리고 미설치 되어 있으면 설치를 진행.

  - yum update ([패키지명])


5. 삭제 방법

  - yum remove [패키지명]


6. 정보 확인 방법

  - yum info [패키지명] 




7. 패키지 그룹 설치 (패키지 그룹에 포함되는 패키지들을 통째로 설치할 때 사용, java 패키지 같은..)

  - yum groupinstall "패키지그룹명"

^ 패키지 그룹명은 띄어써져 있는 경우가 많으므로 "" 안에 넣는것을 추천!


8. 패키지 리스트 확인

  - yum list [패키지명]

  - yum list all : 전체   //   yum list available : 설치 가능한 목록


9. 특정 파일이 속한 패키지명 확인

  - yum provides [파일명]


10. GPG 키 검사 생략 (CentosOS 7에서 인증되지 않은 rpm파일 설치 하는데 설치가 안될 때)

  - yum install --nogpgcheck [rpm파일명].rpm


11. 기존 저장소 목록 지우기 (yum 문제 있을 시에)

  - yum clean all


'OS > LINUX' 카테고리의 다른 글

파일과 디렉터리  (0) 2017.11.02
사용자 및 그룹 관련 명령어  (0) 2017.11.01
기본 명령어 정리  (0) 2017.11.01



1. 파일 속성

  [ ls -l ] 을 실행하면 보이는 화면 설명

1 : 파일 유형                2 : 파일 허가권            3 : 링크 수                          4 : 파일 소유자 이름

5 : 파일 소유자 그룹      6 : 파일 크기(byte)        7 : 마지막 변경 날짜/ 시간      8 : 파일 이름


2. 파일 유형

  (1) d : 디렉터리

  (2) - : 일반적인 경우

  (3) b : 블록 디바이스 (HDD, Floppy, CD/DVD 등 저장장치)

  (4) c : 문자 디바이스 (Mouse, Keyboard, Print 등 입출력장치)

  (5) l : 링크 (Windows의 바로가기 개념)


3. 파일 허가권 : 3개씩 끊어서 인식

             r : read   //   w : write   //   x : execute

  (2진수)      4                  2                  1

          -> rwx = 7 , rw = 6 , r-x = 5 ...

  - 첫번째 rwx : 소유자(User)

  - 두번째 rwx : 그룹(Group)

  - 세번째 rwx : 그 외 사용자(Other)


4. 파일 허가권 변경 (위에 상태는 chmod 777 sample.txt 를 실행한 상태)

  (1) chmod [User권한][Group권한][Other권한] [파일명]

  (2) chmod u+x [파일명] : User에게 실행 권한을 부여(+)한다는 의미

  (3) chmod u-rw [파일명] : User에게 읽기와 쓰기 권한을 제거(-)한다는 의미


5. 파일 소유권 변경

  chown 새로운사용자이름(.새로운그룹이름) 파일이름

  ex) -소유자 변경 : chown centos sample.txt

       - 그룹도 변경 : chown centos.centos sample.txt

       - 그룹만 변경 : chgrp centos sample.txt

  



'OS > LINUX' 카테고리의 다른 글

YUM 기본적인 부분  (0) 2017.11.02
사용자 및 그룹 관련 명령어  (0) 2017.11.01
기본 명령어 정리  (0) 2017.11.01

- [ useradd or adduser ] : 새로운 사용자 추가(/etc/passwd, /etc/shadow, /etc/group에 새로운 행 추가됨)

     (1) useradd newuser : newuser 생성

     (2) useradd -u 1111 newuser : newuser의 id를 111로 생성

     (3) useradd -g mygroup newuser : mygroup이라는 그룹에 newuser를 생성(mygroup이라는 그룹이 먼저 존재해야한다.)

     (4) useradd -d /newhome newuser : 홈디렉터리를 /newhome으로 지정

     (5) useradd -s /bin/csh newuser : 기본 셸을 /bin/csh 로 지정

※ 그룹을 먼저 만들고 사용자를 만드는 것이 좋다 ※


- [ passwd ] : 사용자 비밀번호 지정/변경


- [ usermod ] : 사용자 속성 변경 (옵션은 useradd와 동일)

     (1) usermod -g root newuser : newuser의 그룹을 root그룹으로 변경


- [ userdel ] : 사용자 삭제

     (1) userdel newuser : newuser 삭제

     (2) userdel -r newuser : newuser의 홈디렉터리까지 삭제


- [ chage ] : 사용자의 암호를 주기적으로 변경하도록 설정

     (1) change -l newuser : newuser에 설정된 사항 확인

     (2) change -m 2 newuser : newuser에 설정한 암호를 최소 2일은 사용해야 한다.

     (3) change -M 30 newuser : newuser에 설정한 암호를 최대 30일까지 사용 가능

     (4) change -E 2019/12/12 newuser : newuser에 설정한 암호가 2019/12/12 에 만료됨

     (5) change -W 10 newuser : 암호 만료 10일 전에 알려줌 (default : 7일)


- [ groups ] : 사용자가 소속된 그룹을 보여줌

     (1) groups : 현재 사용자가 소속된 그룹을 보여줌

     (2) groups newuser : newuser가 소속된 그룹을 보여줌


- [ groupadd ] : 새그룹 생성

     (1) groupadd newgroup : 그룹 생성

     (2) groupadd -g 2222 newgroup : 그룹 id를 2222로 생성


- [ groupmod ] : 그룹 속성 변경

     (1) groupmod -n newgroup mygroup : newgroup -> mygroup


- [ groupdel ] : 그룹 삭제

     (1) groupdel newgroup : 그룹 삭제 (삭제하는 그룹을 주요 그룹으로 지정한 사용자가 없어야함)


- [ gpasswd ] : 그룹의 암호 설정하거나 그룹관리

     (1) gpasswd newgroup : 그룹의 암호 설정

     (2) gpasswd -A newuser newgroup : newuser를 그룹의 관리자로 설정

     (3) gpasswd -a user1 newgroup : user1을 newgroup의 사용자로 추가

     (4) gpasswd -d user1 newgroup : user1을 newgroup에서 제거

'OS > LINUX' 카테고리의 다른 글

YUM 기본적인 부분  (0) 2017.11.02
파일과 디렉터리  (0) 2017.11.02
기본 명령어 정리  (0) 2017.11.01

- [ ls ] : LiSt의 약자, Windows의 'dir' 역할

     (1) ls + [폴더 주소] : 해당 폴더의 목록

     (2) ls -a : 숨김파일도 표시

     (3) ls -l : 자세히 보기


 - [ cd ] : Change Directory의 약자, 디렉터리 이동

     (1) cd ~centos : centos 사용자의 홈 디렉터리로 이동

     (2) cd .. : 상위 디렉터리로 이동 

     (3) cd + [절대주소] : 절대주소로 이동


 - [ pwd ] : Print Working Directory의 약자, 디렉터리 전체 경로 출력


 - [ rm ] : ReMove의 약자, 파일이나 디렉터리 삭제(해당 파일이나 디렉터리에 대한 권한을 가져야함.)

     (1) rm abc.txt : 한번 더 묻고 삭제

     (2) rm -f abc.txt : 바로 삭제

     (3) rm -r abc : 해당 디렉터리 삭제

     (4) rm -rf abc : r옵션과 f옵션 합친 것


 - [ cp ] : CoPy의 약자, 복사

     (1) cp abc.txt efg.txt : abc.txt파일을 efg.txt파일로 바꿔서 복사

     (2) cp -r abc efg : 디렉터리 복사


 - [ touch ] : 크기가 0인 새파일 생성, 존재하는 파일이면 최종수정시간을 현재시간으로 변경


 - [ mv ] : MoVe의 약자

     (1) mv abc.txt + [디렉터리 주소] : 해당 디렉터리로 abc.txt를 이동

     (2) mv aa bb cc dd : /dd 디렉터리로 이동

     (3) mv abc.txt www.txt : 이름 변경


 - [ mkdir ] : MaKe DIRectory의 약자, 디렉터리 생성

     (1) mkdir abc : 현재 디렉터리 아래에 abc 디렉터리 생성

     (2) mkdir -p /abc/def : abc 디렉터리가 없으면 abc 생성하고 def도 생성


 - [ rmdir ] : ReMove DIRectory의 약자, 디렉터리 삭제(삭제권한 필요, 디렉터리가 비어 있어야 삭제 가능)


 - [ cat ] : conCATenate의 약자, 파일을 연결해서 출력

     (1) cat a.txt b.txt : a.txt와 b.txt를 연결해서 화면에 출력


 - [ head ], [ tail ] : 시작(마지막)부터 10행을 출력

     (1) head anaconda-ks.cfg

     (2) head -3 anaconda-ks.cfg : 앞 3행만 출력


 - [ more ] : 페이지 단위로 출력, space 다음페이지, B 앞페이지, Q 종료

     (1) more anaconda-ks.cfg

     (2) more +100 anaconda-ks.cfg : 100행부터 출력


 - [ less ] : more의 확장판, Page Up/Page Down 키를 활용 가능해짐


 - [ file ] : 파일이 어떤 종류의 파일인지 표시

     (1) file anaconda-ks.cfg : 텍스트 파일이므로 아스키(ASCII) 파일로 표시됨

     (2) file /usr/bin/gzip : 실행파일이므로 Executable파일로 표시됨


 - [ clear ] : 현재 작성 중인 터미널의 화면을 깨끗하게 지워준다. (앞에 썼던 명령들은 스크롤을 올리면 다시 볼 수 있음)


 - [ whoami ] : 현재 사용자를 알려줌

'OS > LINUX' 카테고리의 다른 글

YUM 기본적인 부분  (0) 2017.11.02
파일과 디렉터리  (0) 2017.11.02
사용자 및 그룹 관련 명령어  (0) 2017.11.01

** 참고 사이트 **

PhoneGap 사이트의 API : http://docs.phonegap.com/plugin-apis/

튜토리얼 사이트 : http://www.w3ii.com/cordova/default.html




두가지 파일(index.html, index.js)만 수정하면 된다. 

  : index.html은 프로젝트 디렉터리로 이동해서 www 폴더를 열면 존재하고

  : index.js는 .js가 붙은거 보면 알겠지만 www폴더 밑에 js폴더 내에 존재한다.


작업은 html 만드는 것처럼 하면 된다.




[ Example ] 배터리 사용하기(안드로이드)


1. plugin 추가

  >cordova plugin add cordova-plugin-battery-status


2. index.html 문서 수정 X


3. index.js 문서에 이벤트 걸기

  onDeviceReady: function() {

        // 충전기 연결했을 때 메시지 띄우기

        window.addEventListener("batterystatus", onBatteryStatus, false);

        // 배터리 15% 이하일때

        window.addEventListener("batterylow", onBatteryLow, false);

        // 5% 이하일때

        window.addEventListener("batterycritical", onBatteryCritical, false);

        this.receivedEvent('deviceready');        // 얘 보다 위에 이벤트를 걸어줘야 구동

    }


4.  index.js 문서에서 이벤트 함수 구현 (제일 끝에 추가)

function onBatteryStatus(info) {

   alert("BATTERY STATUS:  Level: " + info.level + " isPlugged: " + info.isPlugged);

}

function onBatteryLow(status) {

    alert("Battery Level Low " + status.level + "%");

}

function onBatteryCritical(status) {

    alert("Battery Level Critical " + status.level + "%\nRecharge Soon!");

}


** 참고 사이트 **

PhoneGap 사이트의 API : http://docs.phonegap.com/plugin-apis/

튜토리얼 사이트 : http://www.w3ii.com/cordova/default.html




두가지 파일(index.html, index.js)만 수정하면 된다. 

  : index.html은 프로젝트 디렉터리로 이동해서 www 폴더를 열면 존재하고

  : index.js는 .js가 붙은거 보면 알겠지만 www폴더 밑에 js폴더 내에 존재한다.


작업은 html 만드는 것처럼 하면 된다.




[ Example ] 주소록 사용하기(안드로이드)


1. plugin 추가

  >>cordova plugin add cordova-plugin-contacts


2. index.html 문서에 버튼 두개 추가

  <button id = "createContact">주소록에 추가</button><br>

  <button id = "findContact">주소록에서 찾기</button><br>

  <button id = "deleteContact">주소록에서 삭제</button><br>


3. index.js 문서에서 버튼값 찾아서 이벤트 걸기(onDeviceReady: function() { (여기에 주든지) }

  initialize: function() {

document.getElementById("createContact").addEventListener("click", createContact);

      document.getElementById("findContact").addEventListener("click", findContact);

      document.getElementById("deleteContact").addEventListener("click", deleteContact);

    }


4.  index.js 문서에서 이벤트 함수 구현 (제일 끝에 추가)

// 추가 함수

function createContact() {

   var myContact = navigator.contacts.create({"displayName": "Test User"});

   myContact.save(contactSuccess, contactError);    

   function contactSuccess() { alert("Contact is saved!"); }

   function contactError(message) { alert('Failed because: ' + message); }

}


// 찾기 함수

function findContact() {

   var options = new ContactFindOptions();

   options.filter = "";            // ""은 전체 출력

   options.multiple = true;

   fields = ["displayName"];

    

   navigator.contacts.find(fields, contactfindSuccess, contactfindError, options);

    

   function contactfindSuccess(contacts) {    

      for (var i = 0; i < contacts.length; i++) { alert("Display Name = " + contacts[i].displayName); }

   }

   function contactfindError(message) { alert('Failed because: ' + message); }

}


// 삭제 함수

function deleteContact() {

   var options = new ContactFindOptions();

   options.filter = "Test User";

   options.multiple = false;

   fields = ["displayName"];


   navigator.contacts.find(fields, contactfindSuccess, contactfindError, options);


   function contactfindSuccess(contacts) {

      var contact = contacts[0];

      contact.remove(contactRemoveSuccess, contactRemoveError);

      function contactRemoveSuccess(contact) { alert("Contact Deleted"); }

      function contactRemoveError(message) { alert('Failed because: ' + message); }

   }

   function contactfindError(message) { alert('Failed because: ' + message); }

}


야구 잘못하는데 사진은 잘나왔군 ㅋㅋ


액자에 걸린 사격폼!

'친목' 카테고리의 다른 글

몸으로 욕하는 형여리  (0) 2017.10.24
게임에 졌으면 입수지~!!ㅋㅋ  (0) 2017.10.24
닭싸움... 스치면 간다!!! ㅋㅋㅋ  (0) 2017.10.24
준포햄인듯ㅋ  (0) 2017.10.13

+ Recent posts