SQL 쿼리문 1

DB/Oracle 2011. 8. 16. 16:56
오라클 / MS SQL

DESC 테이블명; 테의블 정의 보기

SELECT

SELECT * FROM 테이블명 WHERE 필드='조건' AND 필드2='조건2'
SELECT 필드1, 필드2, 필드3 FROM 테이블명
SELECT * FROM TAB; 존재하는 모든 테이블 보기
SELECT DISTINCT 필드1 FROM 테이블명; 중복제거하기
SELECT 필드1 FROM 테이블 WHERE 필드2 BETWEEN 00 AND 00; //00부터 00사이에서
SELECT 필드1 FROM 테이블 WHERE 필드2 IN (00, 00); //00과 00중에서
SELECT 필드1 FROM 테이블 WHERE 필드2 LIKE '%단어%';
SELECT 필드1 FROM 테이블 WHERE 필드2 IS NULL; or NoT IS NULL
SELECT 필드1 FROM 테이블 WHERE 필드2 < 값;
 


UPDATE

UPDATE 테이블명 SET 필드='값', 필드2='값', 필드3='값' WHERE 필드 LIKE '조건'

INSERT

INSERT INTO 테이블명(필드1, 필드2) VALUES ('값', '값' );

비교연산자 : >, >=, <, <=, =, <>(not equal)

DROP TABLE 테이블명;

CREATE TABLE 테이블명 (
      필드명 타입 조건,
      id varchar2(15) primary key,
      pass varchar(15) not null,
      no number(5)
)

시퀀스 생성 : CREATE SEQUENCE 시퀀스이름
                   increment by 1
                   start with 1
                   nomaxvalue
                   nocycle
                   nocache;

외래키 생성 : ALTER TABLE 테이블명 ADD ( FOREIGN KEY (필드) REFERENCES 테이블명2);

칼럼 수정 : ALTER TABLE 테이블명 MODIFY (필드 타입);

컬럼 추가 : ALTER TABLE 테이블명 ADD ( 필드이름 필드타입 );

칼럼 리네임 : ALTER TABLE 테이블명 RENAME COLUMN 컬럼이름 TO 새이름;

Null값 처리하기 : SELECT isNULL(필드, '0') FROM 테이블

방금 인서트한 자동증가값 ID 가져오기 : SELECT @@IDENTITY (현재 세션에서만 사용가능)
현재 테이블의 가장큰 큰큰값 가져오기 : SELECT IDENT_CURRENT('테이블명')
수행된 SQL문에 의해 영향받은 행의 수 : SELECT @@ROWCOUNT

날짜 계산하기 : SELECT * FROM 테이블명 WHERE DATEADD(DAY, CONVERT(INT, 컬럼명), 날짜컬럼) > getdate()

테이블 정보보기 : EXEC sp_help 테이블
컬럼 정보보기 : EXEC sp_columns 테이블

앨리어스 사용 : SELECT 필드 AS A FROM 테이블 (별칭에 특수문자 있으면 [] 사용]

주석 : -- or /* */

변수의 선언 : DECLARE @변수명 자료형, @변수명 자료형
변수 할당 : SET @변수명 = 값
변수값 가져오기 : SELECT @변수명

일부분만 가져오기 : SELETC TOP 5 컬럼 FROM 테이블

범위정하기 SELECT 컬럼 FROM 테이블 WHERE 컬럼 BETWEEN 10 AND 20
                SELECT 컬럼 FROM 테이블 WHERE 컬럼 IN ('aaa', 'bbb', 'ccc')

패턴매칭 : SELECT 컬럼 FROM 테이블 WHERE 컬럼 LIKE '%제목%"
               _ : 어떤것이든 한 문자
               % : 없거나 아무 글자오거나
               [] : []안에 있는 글자들 - [b-f]
               [^] : ^다름에 있는 글자를 제외한 다른 것

중복제거 : SELECT DISTINCT 컬럼 FROM 테이블

GROUP BY : SELECT 컬럼1, sum(컬럼2) FROM 테이블 WHERE 조건 GROUP BY 컬럼1 HAVING sum(컬럼2) >= 30
(계산함수가 반드시 있어야 한다, GROUP BY ALL을 사용하면 WHERE제외된것 도 포함)

이너조인 : SELECT 컬럼 FROM 테이블 INNER JOIN 테이블 ON 컬럼=컬럼
아웃터조인 : SELECT 컬럼 FROM 테이블 LEFT OUTER JOIN 테이블 ON 컬럼=컬럼
                  (어느한쪽의 데이터를 모두 가져온다.)

IN : SELECT 컬럼 FROM 테이블 WHERE 컬럼2 IN ( SELECT 컬럼2 FROM 테이블 )
     (IN안의 하위질의는 DISTINCT가 붙은 것으로 동작)
EXISTS : SELECT 컬럼1 FROM 테이블  WHERE EXISTS ( SELECT * FROM 테이블 WHERE 조건 )
              (EXISTS는 하위쿼리가 어떤 결과라도 돌려지면 참)

임시테이블 만들기 : SELECT INTO SELECT * INTO 새테이블명 FROM 테이블 (다른세션에서도 가능, DROP해야 삭제됨)
                            SELECT INTO SELECT * INTO #새테이블명 FROM 테이블 (해당세션에서만 가능, 세션끊어지면 삭제됨)
                            SELECT INTO SELECT * INTO ##새테이블명 FROM 테이블 (다른세션에서도 가능, 세션끊어지면 삭제됨)

UNION : SELECT 컬럼1, 컬럼2 FROM 테이블
            UNION
            SELECT 컬럼1, 컬럼2 FROM 테이블
            (UNION은 컬럼의 자료형과 순서가 맞아야 한다. 중복데이터는 제거되며 UNION ALL을 하면 중복데이터도 가져온다.)

컬럼 추가 : ALTER TABLE 테이블명 ADD 새컬럼 VARCHAR(10) NULL
컬럼 변경 : ALTER TABLE 테이블명 ALTER COLUMN 컬럼 VARCHAR(10) NULL
컬럼 삭제 : ALTER TABLE 테이블병 DROP COLUMN 컬럼

삭제 : DELETE FROM 테이블명 WHERE 조건

업데이트 : UPDATE 테이블 SET 컬럼 = 값 WHRER 조건

트랜잭션 : BEGIN TRAN
               ROLLBACK
               COMMIT




덧) SELECT에 왠만하면 * 는 사용하지 않는다.

덧) WHERE절에서 연산자의 왼쪽은 가동하지 않는다. 컬럼을 가공하면 색인을 사용할 수 없다. WHERE 컬럼 * 3 < 10 말고 WHERE 컬럼 < 10 / 3 을 사용하자.

출처 - http://blog.outsider.ne.kr/22 

'DB > Oracle' 카테고리의 다른 글

오라클, 범용 엔지니어드시스템 '스팍 슈퍼클러스터 T4-4' 출시  (0) 2011.11.17
오라클 엔지니어드 시스템  (0) 2011.11.17
ORACLE Data Guard Architecture  (0) 2011.11.02
SQL 쿼리문 2  (0) 2011.08.16
Oracle - COMMIT  (0) 2010.11.27
Posted by linuxism
,

1. run level

런 레벨

내용

0

PROM or OK 모드

S, s

싱글유저모드(로컬파일시스템 마운트 안됨)

1

싱글유저모드(로컬파일시스템 마운트 됨)

2

멀티유저모드(NFS 클라이언트 모드)

3

멀티유저모드(NFS 서버 모드)

4

사용안함

5

Power off

6

reboot

 
2. run level별 쓰임
1) 싱글유저 모드
시스템 패치나 OBP 펌웨어 업그레이드시 사용됨
 
2) 멀티유저 모드
시스템이 정상적으로 부팅되어 root나 일반 관리자들도 접속가능.

          Solaris                                                 Linux
0      PROM모드                                             전원 끔
s      단일사용자                                      X (SUSE: 단일사용자)
1      단일사용자+파일시스템                          단일사용자
2      다중사용자                                       다중사용자(TUI)
3      다중사용자+네트워크                   다중사용자+네트워크(TUI)
4      X                                                               X
5      전원 끔                                       다중사용자+네트워크(GUI)
6      재부팅                                                      재부팅

런레벨
init명령어
시스템 런 레벨을 변경하거나 시스템을 끄거나 재부팅 할 수 있음.
svc.startd 데몬에게 변경할 런 레벨을 알려줌.
Ex. init 0 , init 1 , init 3   .........

SMF에 의한 런 레벨 변경
# svcadm milestone single-user (런 레벨 s)
# svcadm milestone multi-uiser (런 레벨 2)
# svcadm mileston multi-user-server (런 레벨 3)

halt / poweroff 명령어
시스템 즉시 종료
rc0 스크립트를 실행하지 않고 종료
접속한 사용자에게 종료를 통보하지 않고 종료

shutdown 명령어
rc0 스크립트를 실행하고 정상적으로 종료
접속한 사용자에게 종료를 통보함
# shutdown -y -g0 -i5 systemoff!
                  -y : 시스템을 끌 것인지 물음에 무조껀 YES
                  -gn : 몇초후에 시스템을 종료할 것인지 (기본값 : 60초)
                  -in : 변경할 런 레벨
                   사용자에게 전송할 메세지
 
Posted by linuxism
,
grep, egrep, fgrep

grep(egrep, fgrep) [option] “pattern” filename



-i : 대소문자 구별을 하지 않는다. 
-v : pattern 을 포함하지 않는 행만 출력한다. 
-n : 행번호를 출력한다. 
-l : 파일명만 출력한다. 
-c : 패턴과 일치하는 라인의 갯수만 보여준다.



grep : 강력한 패턴 매칭 템플릿을 정의하기 위해 "정규 표현식"을 사용할 수 있다. 
egrep [옵션] "패턴|패턴|..." [대상파일들] : 확장된 정규 표현식을 사용하며, 찾아낼 패턴을 여러개 지정할 수 있다. '|'기호는 불린 연산자 "OR"에 해당하므로, 정해진 패턴들에 포함되는 모든 라인을 보여준다. 

fgrep [옵션] 패턴 [대상파일들] : 패턴과 정확히 일치하는 것만을 찾아 준다. 



많은 시스템 관리 명령들과 파이프(pipe)를 이용해서 사용할 수 있다. 흔히 사용하는 것은 프로세스 확인이다. 
$ ps aux | grep httpd 
위와 같이 현재 시스템의 프로세스중 httpd 만 검색해 낸다. 
만일 pipe 를 이용하여 검색할경우 검색 패턴이 한개 이상일 경우엔 egrep을 이용하여 검색할수 있다.

$ ps aux | egrep 'httpd|mysql' 


$ grep -v "^[ ^I]*$" 파일명 //공백을 제거한 파일 내용 살펴보기 
$ grep -v "^#*$" 파일명 //주석을 제거한 파일 내용 살펴보기 

만일 현재 디렉토리와 그 하위 디렉토리까지 grep 패턴 검색을 하고자 할땐 find 명령을 이용하면 된다. 
$ find . -exec grep "pattern" {} \;

출처 - http://knamhun.blogspot.com/2009/05/grep-egrep-fgrep.html 







Question: Can you explain how to use OR, AND and NOT operators in Unix grep command with some examples?

Answer: In grep, we have options equivalent to OR and NOT operators. There is no grep AND opearator. But, you can simulate AND using patterns. The examples mentioned below will help you to understand how to use OR, AND and NOT in Linux grep command.

The following employee.txt file is used in the following examples.

$ cat employee.txt
100  Thomas  Manager    Sales       $5,000
200  Jason   Developer  Technology  $5,500
300  Raj     Sysadmin   Technology  $7,000
400  Nisha   Manager    Marketing   $9,500
500  Randy   Manager    Sales       $6,000

You already knew that grep is extremely powerful based on these grep command examples.

Grep OR Operator

Use any one of the following 4 methods for grep OR. I prefer method number 3 mentioned below for grep OR operator.

1. Grep OR Using \|

If you use the grep command without any option, you need to use \| to separate multiple patterns for the or condition.

grep 'pattern1\|pattern2' filename

For example, grep either Tech or Sales from the employee.txt file. Without the back slash in front of the pipe, the following will not work.

$ grep 'Tech\|Sales' employee.txt
100  Thomas  Manager    Sales       $5,000
200  Jason   Developer  Technology  $5,500
300  Raj     Sysadmin   Technology  $7,000
500  Randy   Manager    Sales       $6,000

2. Grep OR Using -E

grep -E option is for extended regexp. If you use the grep command with -E option, you just need to use | to separate multiple patterns for the or condition.

grep -E 'pattern1|pattern2' filename

For example, grep either Tech or Sales from the employee.txt file. Just use the | to separate multiple OR patterns.

$ grep -E 'Tech|Sales' employee.txt
100  Thomas  Manager    Sales       $5,000
200  Jason   Developer  Technology  $5,500
300  Raj     Sysadmin   Technology  $7,000
500  Randy   Manager    Sales       $6,000

3. Grep OR Using egrep

egrep is exactly same as ‘grep -E’. So, use egrep (without any option) and separate multiple patterns for the or condition.

egrep 'pattern1|pattern2' filename

For example, grep either Tech or Sales from the employee.txt file. Just use the | to separate multiple OR patterns.

$ egrep 'Tech|Sales' employee.txt
100  Thomas  Manager    Sales       $5,000
200  Jason   Developer  Technology  $5,500
300  Raj     Sysadmin   Technology  $7,000
500  Randy   Manager    Sales       $6,000

4. Grep OR Using grep -e

Using grep -e option you can pass only one parameter. Use multiple -e option in a single command to use multiple patterns for the or condition.

grep -e pattern1 -e pattern2 filename

For example, grep either Tech or Sales from the employee.txt file. Use multiple -e option with grep for the multiple OR patterns.

$ grep -e Tech -e Sales employee.txt
100  Thomas  Manager    Sales       $5,000
200  Jason   Developer  Technology  $5,500
300  Raj     Sysadmin   Technology  $7,000
500  Randy   Manager    Sales       $6,000

Grep AND

5. Grep AND using -E ‘pattern1.*pattern2′

There is no AND operator in grep. But, you can simulate AND using grep -E option.

grep -E 'pattern1.*pattern2' filename
grep -E 'pattern1.*pattern2|pattern2.*pattern1' filename

The following example will grep all the lines that contain both “Dev” and “Tech” in it (in the same order).

$ grep -E 'Dev.*Tech' employee.txt
200  Jason   Developer  Technology  $5,500

The following example will grep all the lines that contain both “Manager” and “Sales” in it (in any order).

$ grep -E 'Manager.*Sales|Sales.*Manager' employee.txt

Note: Using regular expressions in grep is very powerful if you know how to use it effectively.

6. Grep AND using Multiple grep command

You can also use multiple grep command separated by pipe to simulate AND scenario.

grep -E 'pattern1' filename | grep -E 'pattern2'

The following example will grep all the lines that contain both “Manager” and “Sales” in the same line.

$ grep Manager employee.txt | grep Sales
100  Thomas  Manager    Sales       $5,000
500  Randy   Manager    Sales       $6,000

Grep NOT

7. Grep NOT using grep -v

Using grep -v you can simulate the NOT conditions. -v option is for invert match. i.e It matches all the lines except the given pattern.

grep -v 'pattern1' filename

For example, display all the lines except those that contains the keyword “Sales”.

$ grep -v Sales employee.txt
200  Jason   Developer  Technology  $5,500
300  Raj     Sysadmin   Technology  $7,000
400  Nisha   Manager    Marketing   $9,500

You can also combine NOT with other operator to get some powerful combinations.

For example, the following will display either Manager or Developer (bot ignore Sales).

$ egrep 'Manager|Developer' employee.txt | grep -v Sales
200  Jason   Developer  Technology  $5,500
400  Nisha   Manager    Marketing   $9,500


Linux Sysadmin CourseLinux provides several powerful administrative tools and utilities which will help you to manage your systems effectively. If you don’t know what these tools are and how to use them, you could be spending lot of time trying to perform even the basic administrative tasks. The focus of this course is to help you understand system administration tools, which will help you to become an effective Linux system administrator.
Get the Linux Sysadmin Course Now!


출처 - http://www.thegeekstuff.com/2011/10/grep-or-and-not-operators/











Posted by linuxism
,