Any, All
ANY : 최솟값과 최댓값 사이의 범위가 포함
ALL : 범위값 포함하지 않음
가령, 120 ~ 180 인 범위가 있다면
< ANY : 180보다 작은 데이터 (=최댓값보다 작은)
ANY < : 120보다 큰 데이터
< ALL : 120보다 작은 데이터 (=최솟값보다 작은)
ALL < : 180보다 큰 데이터
UPDATE
UPDATE 컬럼명 SET 변결할내용 WHERE 변경조건;
(변경조건을 주지 않으면 컬럼 전체가 변경되니 주의해야 한다!)
상관커리 (EXIST)
바깥테이블과 안의 테이블이 다르다.
SELECT USERID,USERNAME,ADDR1,SCHOL FROM CUSTOM
WHERE EXISTS
(SELECT * FROM COMPANY
WHERE USERID=CUSTOM.USERID AND COMPANY LIKE '삼성%');
바깥 = CUSTOM 테이블
안 = COMPANY 테이블
COMPANY 테이블에서 WHERE 조건문과 일치하면 'EXISTS'를 통해 가져오고 일치하지 않으면 가져오지 않는다.
또는
중간에 'WHERE NOT EXISTS'를 입력하면 그 반대가 된다.
INSERT
INSERT는 값을 삽입할 수 있다.
INSERT INTO DIVISION VALUES (50,'OPERATION','031-111-2222','DAEGU');
INSERT INTO DIVISION (DNAME,POSITION) VALUES ('ACCOUNT','DAEJUN');
첫번째 줄은 DIVISION 테이블의 모든 컬럼에 들어갈 값을 '순서대로' 입력하여 값을 넣어준다.
두번째 줄은 특정 열을 선택하여 넣는다. 여기에서 주의해야 할 점은 컬럼이 NOT NULL인 경우,
해당 컬럼을 선택하여 값을 넣지 않으면 에러가 난다는 것이다.
- 암시적/명시적 널삽입
INSERT INTO PERSONNEL (PNO,PNAME,PAY,DNO)
VALUES (7711,'YOUNG',4000,20);
INSERT INTO DIVISION VALUES(70,'PLANNING','012-333-444',NULL);
위의 2줄은 암시적 널삽입의 예이다.
암시적 널삽입은 컬럼에 값을 주지 않으면 자동으로 데이터 값이 NULL로 처리가 된다는 것이다.
명시적 널삽입은 아래의 줄처럼 직접 널을 삽입한다.
NULL 혹은 ''를 입력하여 특정 컬럼에 NULL을 직접 넣는다.
- SUBQUERY
INSERT INTO MANAGER(PNO,PNAME,PAY,STARTDATE)
SELECT PNO,PNAME,PAY,STARTDATE FROM PERSONNEL
WHERE JOB='MANAGER';
MANAGER 테이블의 (괄호)속 컬럼에다 값을 넣어주는 것이며
하위쿼리인 SELECT문에서 조건에 맞는 PERSONNEL테이블의 값을 넣는다.
컬럼명들은 모두 같아야 한다.
테이블 만들기
테이블 데이터 타입
CHAR : 문자 (고정길이)
VARCHAR2 : 문자 (가변길이) --1도 2로 인식됌(현재 2밖에 안씀)
NUMBER(P,S) : 숫자
DATE : 날짜 (고정길이)
LONG : 문자(가변길이, 2GB)
CREATE TABLE BUSEO1
(DNO NUMBER(2),
DNAME VARCHAR(14),
ZIPCODE CHAR(7));
CREATE을 통해 테이블을 만든다.
()속에서 컬럼명과 데이터 타입을 주어 컬럼을 만든다.
VARCHAR의 경우, 굳이 VARCHAR2가 아닌 VARCHAR만 입력해도 자동으로 2가 인식된다.
데이터타입 옆 ()는 데이터 길이이다.
Cf) 테이블을 생성하는 또 다른 방법
데이터 타입을 사용하지 않고 다른 테이블에서 값을 가져오는 것이다.
CREATE TABLE SALESMAN1
AS
SELECT PNO,PNAME,JOB,PAY FROM PERSONNEL
WHERE JOB='SALESMAN';
생성할 테이블명을 먼저 입력해주고
'AS' 를 입력한다. (INSERT INTO는 이미 있는 곳에 값을 넣는 것이기에 'AS' 입력 x)
그리고 값을 가져올 테이블에 조건과 컬럼을 입력하면 된다.
테이블 명
- 영문자로 시작하며 공백은 허용하지 않는다.
- 특수문자는 _,$,#만 사용 가능하며 맨 앞에는 올 수 없다.
- SELECT와 ALTER같은 예약어는 불가능하다.
- 컬럼명은 중복을 허용하지 않는다.
테이블 삭제
DROP TABLE BUSEO1;
DROP을 통해 제거할 테이블을 입력해준다.
#국비37일차
'개발 교육 TIL > back-end' 카테고리의 다른 글
[오라클] GRANK/REVOKE, VIEW, COMPLEX VIEW (0) | 2022.02.02 |
---|---|
[오라클] 제약 조건 생성, ALTER, DROP, MODIFY, UNUSED, TRUNCATE (0) | 2022.02.01 |
[오라클] JOIN문 (EQUI,INNER,OUTER,CROSS,SELF) (0) | 2022.01.27 |
[오라클] 숫자함수, 문자함수, 날짜함수 (2) | 2022.01.25 |
[오라클] NULL, WHERE조건, 연산자/논리연산자 등 (0) | 2022.01.23 |