사용자 생성
CREATE USER [사용자명]
IDENTIFIED BY [패스워드]
DEFAULT TABLESPACE [테이블 스페이스 명]
TEMPRORARY TABLESPACE [임시 테이블 스페이스 명]
QUOTA n M ON [제약을 둘 테이블 스페이스 명]
PROFILE [프로파일 명];
사용자 변경
ALTER USER [사용자명]
IDENTIFIED BY [패스워드]
DEFAULT TABLESPACE [테이블 스페이스 명]
TEMPRORARY TABLESPACE [임시 테이블 스페이스 명]
QUOTA n M ON [제약을 둘 테이블 스페이스 명]
PROFILE [프로파일 명];
사용자 삭제
DROP USER [사용자명] CASCADE;
사용자 권한부여
GRANT [권한] TO [사용자 명] WITH ADMIN OPTION;
시스템 권한 취소
REVOKE [권한] FROM [사용자 명];
테이블 생성
CREATE TABLE 테이블명
(
컬럼명1 [컬럼타입[(길이[,길이])]]
[NULL | NOT NULL]
[IDENTITY (초기값 , 증가값)]
[PRIMARY KEY | UNIQUE]
[CLUSTERED | NONCLUSTERED]
[CHECK (조건)]
[FOREIGN KEY REFERENCES
[ ON DELETE CASCADE | NO ACTION ]
[ ON UPDATE CASCADE | NO ACTION ]
]
[, 컬럼명n]
);
[ ON 파일그룹 | DEFAULT ]
열 정의
DESC(describe) 테이블명
테이블 변경
ALTER TABLE 테이블명
(
ADD 열-정의
ALTER 열-이름[SET DEFAULT 상수값 |
DROP DEFAULT]
ADD [기본기-정의 |
외래키-정의 |
유일성-제약조건 |
검사-제약조건]
DROP CONSTRAINT 제약조건-이름[CASCADE | RESTRICT]
);
테이블 삭제
DROP TABLE 테이블명 [ CASCADE | RESTRICT ]
CREATE TABLE 테이블명
(
컬럼명1 [컬럼타입[길이]][NULL | NOT NULL]
컬럼명N [컬럼타입[길이]][NULL | NOT NULL]
CONSTRAINT 제약조건명
Primary Key (컬럼명)
);
기본키 정의
외래키 정의
CREATE TABLE 테이블명
(
컬럼명1 [컬럼타입[길이]][NULL | NOT NULL]
컬럼명N [컬럼타입[길이]][NULL | NOT NULL]
CONSTRAINT 외래키 제약조건명
Foreign Key (외래키로 설정할 컬럼명) references
참조할 테이블명(참조할 테이블의 주키
);
유일성 제약조건
CREATE TABLE 테이블명
(
컬럼명1 [컬럼타입[길이]][NULL | NOT NULL]
CONSTRAINT 제약조건명 UNIQUE,
컬럼명N [컬럼타입[길이]][NULL | NOT NULL]
);
INSERT 문장
INSERT INTO 테이블명 [(column1[,column2, ,,,,])]
VALUES (value1[,value2, , , , , ]);
UPDATE 문장
UPDATE 테이블명
SET column_name = expression [, column = exp] … [, column =
exp]
[WHERE condition ]
DELETE 문장
DELETE FROM 테이블 명 [WHERE condition ]
SELECT문을 이용한 데이터검색
- SELECT문은 데이터베이스에서 원하는 정보를 추출할 때 사용하는
질의문이다.
- SELECT문은 6개의 절로 이루어져 있다.
SELECT절 : SELECT문으로 추출할 데이터 항목, 즉 열 이름들을
기술
FROM 절 : 데이터를 검색할 테이블들을 기술한다.
WHERE절 : 질의결과에 포함되는 행들이 만족해야 할 조건을
기술한다.
GROUP BY절 : 그룹질의를 작성할 때 사용한다.
HAVING절 : GROUP BY절에 의해 구성된 그룹들에 대해 적용할 조건을
기술한다.
ORDER BY절 : 기술된 열 값을 기준으로 질의 결과를 정렬할 때
이용
SELECT문 표현식
SELECT [DISTINCT] {*, [컬럼1,… 컬럼N]
FROM 테이블 이름
[WHERE [COLUMN | 표현식| 상수 및 비교 연산자]]
[GROUP [그룹 표현식]]
[HAVING [그룹에 대한 조건 기술]]
[ORDER BY [컬럼 | 표현식] [ASC | DESC]]
중복행의 제거
SELECT 리스트에 기본키(또는 후보키)를 포함하는 경우는 질의
결과의 모든 행이 항상 유일한 값을 가질 것이다.
그러나, 기본키를 포함하지 않는 경우는 질의결과에서 중복행이 발생할
수 있다.
특정 행의 검색
일반적으로 데이터를 검색할 때 테이블에 있는 모든 자료를 조회,
검색하는 것은 아니다.
이렇게 원하는 자료를 조회할 때 사용하는 SQL명령어로 WHERE가
있다.
WHERE절은 수행될 조건 절을 포함하여 FROM 절 다음에 기술된다.
SELECT [DISTINCT] {*, [컬럼1,… 컬럼N]}
FROM 테이블 이름
[WHERE [COLUMN | 표현식| 상수 및 비교 연산자]]
[ORDER BY [컬럼 | 표현식] [ASC | DESC]]
SQL 연산자
NULL 값을 갖지 않는다.
IS NOT NULL
문자 형태와 일치하지 않는다.
NOT LIKE
list의 값과 일치하지 않는다.
NOT IN(list)
a 와 b 사이에 있지 않다.(a, b값 포함 안함)
NOT BETWEEN a AND b
NULL 값을 가진다.
IS NULL
문자 형태와 일치한다.(%,_사용)
LIKE
list의 값 중 어느 하나와 일치한다.
IN(list)
a와 b 사이에 있다.
BETWEEN a AND b
연 산 자
BETWEEN ~ AND 연산자
BETWEEN 연산자는 두 값은 범위에 해당하는 행을 출력하기 위해 사용
IN 연산자
집합원소 검사(IN)는 검사값이 기술된 값의 리스트에 속하는지 여부를
검사한다.
IN 검사는 검사값이 NULL이면, 검사 결과도 NULL이다.
IN 다음에 기술되는 목표 값 리스트의 모든 항목들은 동일한
데이터형이어야 하고, 검사값의 데이터형과도 호환성이 있어야
한다.
집합원소 검사에서 NOT IN구문을 사용하면, 검사값이 주어진 값의
리스트와 대응되지 않는지를 검사할 수 있다.
LIKE 연산자
LIKE 연산자는 문자열에서 패턴을 찾을 때 사용된다. 즉 사용자가
자신이 검색하려는 내용의 정확한 철자를 모를 경우 사용한다.
또 한 패턴에서 찾고자 하는 문자열은 대소문자를 구분한다.
NULL 연산자
관계형 데이터베이스에서 컬럼 값이 NULL인 경우는 그 행에 이 컬럼을
위한 적합한 값이 없을 경우와
아직 그 컬럼에 값이 대입되지 않은 경우에 사용된다.
이후의 조건이 거짓이면 참을 리턴한다.
NOT
한쪽 컴포넌트의 조건만이 참이면 참을 리턴한다.
OR
양쪽 컴포넌트의 조건이 참이면 참을 리턴한다.
AND
관계형 데이터베이스에서 컬럼 값이 NULL인 경우는 그 행에 이 컬럼을
위한 적합한 값이 없을 경우와
아직 그 컬럼에 값이 대입되지 않은 경우에 사용된다.
OR 연산자
OR 연산자는 하나의 탐색조건이라도 참인 경우 결과값을 반환한다.
NOT 연산자
NOT연산자는 탐색조건의 결과가 거짓이면 반환한다.
데이터 정렬
SELECT [DISTINCT] { *, [컬럼1, … 컬럼N]}
FROM 테이블 이름
[WHERE [COLUMN | 표현식| 상수 및 비교 연산자]]
[ORDER BY [컬럼 | 표현식] [ASC | DESC]]
질의 결과를 명시적으로 기술하지 않으면, DBMA는 질의 결과를
어떠한 순서로도 정렬하지 않는다.
그러므로, 필요한 경우 ORDER BY절을 상용 하여 질의 결과를 정렬할 수
있다.
디폴트 정렬은 오름차순이다.
숫자 값은 자장 적은 값이 먼저 출력된다.
날짜 값은 자장 빠른 값이 먼저 출력된다.
문자 값은 알파벳 순서로 출력한다.
NULL값은 오름차순에서는 제일 나중에 그리고 내림차순에서는 가장
먼저 온다.
행의 디스플레이 순서를 바꾸기 위해서는 ORDER BY절에서 열 이름뒤에
DESC 키워드를 명시해준다.
그룹 내장함수
단일 행 함수와는 달리 그룹 함수는 여러 행 또는 테이블 전체에
대해 함수가 적용되어 하나의 결과를 가져오는 함수를 말한다.
그룹 당 하나의 결과가 주어지도록 행의 집합에 대해 연산 할 경우
GROUP BY절을 이용하여 그룹화 할 수 있고,
HAVING를 이용하여 그룹에 대한 조건을 제한할 수도 있다.
그룹함수의 종류
데이터 행의 개수를 계산한다.
COUNT(*)
열에서 데이터 값의 개수를 계산한다.
COUNT()
열 값의 최대값을 계산한다.
MAX()
열 값의 최소값을 계산한다.
MIN()
열 값의 평균을 계산한다.
AVG()
열 값의 합계를 계산한다.
SUM()
GROUP BY절은 어떤 지정된 컬럼들에 대해 서로 다른 레코드들의 값을
그룹화 하는 기능이다.
SELECT [DISTINCT] {*, [컬럼1, … 컬럼N]}
FROM 테이블 이름
[WHERE [COLUMN | 표현식| 상수 및 비교 연산자]]
[ORDER BY [컬럼 | 표현식] [ASC | DESC]]
[HAVING 그룹에 대한 조건 기술]
[ORDER BY 컬럼]
조인질의(JOIN)
하나 이상의 테이블로부터 자료를 검색하기 위하여 조인을
사용한다.
일반적으로 기본키와 외래키를 사용하여 조인하는 경우가
대부분이다.
SELECT 테이블1.컬럼1[,테이블2.컬럼2....]
FROM 테이블1, 테이블2
WHERE 테이블1.컬럼1 = 테이블2.컬럼2
이퀴조인(Equi-Join)
WHERE절에 조인 조건을 주지 않은 Cartesian Product는 모든 가능한
값을 반환하므로
의미 없는 레코드를 제외시키기 위해 Equi-Join을 수행한다.
비이퀴조인(Non-Equijoin)
이퀴조인은 가장 일반적인 조인질의지만, SQL은 “동등 연산자(=)”
외의
다른 비교 연산자(BETWEEN ~ AND ~)를 사용한 조인질의도
허용한다.
이러한 질의를 비이퀴조인이라 한다.
외부조인(Outer Join)
내부조인 질의는 두 테이블에서 조인조건을 만족하는 행들만 질의
결과에
포함시킨다. 외부조인은 정상적인 조인 조건을 만족하지 못하는
행들을
보기 위해 사용되어 진다.
UNION 연산
UNION 명령어는 2개 이상의 SELECT문의 실행결과를 결합할 수 있도록
연산을 지원한다.
UNION ALL 연산
UNION 연산의 최종결과에 중복행들을 유지하고자 할 때는 UNION
ALL을 반드시 기술하여야 한다.
INTERSECT 연산
INTERSECT 연산은 관계대수의 교집합 연산과 동일하다.
이 연산을 적용 하려면 2 개의 피 연산자 테이블이 UNION 연산과 동일한
제약조건을 만족해야 하며,
중복 행은 자동적으로 제거된다. 중복된 행을 제거하지 않으려면 키워드
ALL을 명시적으로 기술해야 한다.
MINUS 연산
MINUS 연산은 관계대수의 차집합 연산과 동일하다. 두 테이블을
MINUS 하면,
최종 질의결과는 첫 번째 테이블에만 나타나는 행들로 구성된다.
이 연산을 적용하려면 2개의 피 연산자 테이블은 UNION 연산과 동일한
제약 조건을 만족해야 하며,
중복행은 자동적으로 제거된다.
중복행을 제거하지 않으려면 키워드 ALL을 명시적으로 기술한다.
|