SQL : 객체(테이블) 정의, 자료를 처리 조작에 필요한 표준언어. 대소문자 구분안함
※ Structured Query Language
- DDL : 데이터 정의(객체생성, 객체구조변경, 객체제거)어
CREATE, ALTER, DROP
- DML : 데이터 조작(데이터추가, 데이터변경, 데이터삭제)어
INSERT, UPDATE, DELETE
- QUERY : 데이터 조회 SELECT
- DCL : 데이터 제어(권한설정, 권한취소)
GRANT, REVOKE,
- DTL : 트랜잭션 관리(완료, 취소)
COMMIT, ROLLBACK
컬럼 이름도 대소문자 구분 안하지만 가독성을 위해 SQL문법은 대문자.
테이블명이나 컬럼명은 소문자로 씀
※ SELECT 구문 처리 순서
SELECTION : 조건에 맞는 행 찾기
PROJECTION: 행의 컬럼을 출력하기
|<----------SELECTION 절차--------------------- ->|<---PROJECTION절차->
FROM → WHERE →GRUOP By→HAVING→SELECT→ORDER BY
컬럼의 순서는 내가 작성한 순서
-- 컬럼 별칭주기
SELECT region_id 대륙 번호, region_name 대륙 이름
FROM regions; (x)
SELECT region_id 대륙번호, region_name 대륙명
FROM regions;
별칭에 공백,특수문자 쓸 때만 큰따옴표
SELECT region_id "대륙 번호", region_name "대륙 이름" // 별칭 안주면 헤딩의 이름 대문자
FROM regions;
SELECT region_id "Region_ID", region_name // 별칭 안주면 헤딩의 이름 대문자
FROM regions;
SELECT region_id "Region_ID", region_name AS 대륙명 // as 생략가능
FROM regions;
--컬럽값 결합하기||
SELECT region_id || '--' || region_name // 오라클에서 문자열 ''
FROM regions;
SELECT region_id || '--' || region_name "대륙번호--명"
FROM regions;
※ 연산자
--산술연산자 : +, -, *, / cf) 나머지값 구하려면 연산자는 없고 mod() 함수
--비교연산자 : >, >=, <, <=, =, <> // 같다는 = 같지않다 <>
sql은 변수가 없고 대입이 없어서 = 가 비교로 쓰임,
단, 대입이 쓰일때는 update
SELECT 절에서 사용못함.
WHERE 절에서 사용
--논리연산자 : AND, OR, NOT
--대입연산자X, 증감연산자++ X, 삼항연산자 X 없음
--대륙번호가 2번 이상인 대륙번호와 대륙명을 출력하시오
SELECT *
FROM regions
WHERE regions_id>= 2;
--대륙번호가 2번 이상이고 홀수인 대륙번호와 대륙명을 출력하시오
SELECT *// 출력할 컬럼 찾아냄
FROM regions
WHERE regions_id>= 2 AND MOD(region_id, 2)=1;
※ 스키마의 중앙에 있다, 선이 많이 이어져있다 = 핵심테이블
--NULL : 아무값도 아니다. 산술연산에 참여하면 결과가 무조건 NULL
--NULL 관련 함수 : NVL(컬럼명, 값)-컬럼명에 해당값이 NULL이면 두번째 인자값을 반환
- 대소문자 구분 X NULL이 아니면 컬럼값을 반환
DB에서의 null은 대,소문자 구분 X, 아무것도 아니다라는 예약어
java에서는 null 소문자로 예약어 있음
--사원의 사번, 이름, 입사일자, 급여, 수당률을 출력하시오
SELECT employee_id, first_name, hire_date, salary, commission_pct
FROM employees;
--사원의 사번, 이름, 급여, 수당률, 실급여을 출력하시오
--실급여: 급여+(급여*수당률)
SELECT employee_id, first_name, salary, commission_pct
,salary+(salary*NVL(commission_pct,0)) "실급여"
FROM employees;
--날짜 os따라 다르게 표기될 수 있음 ex) 23-08-14, 02/06/07
date타입 시분초 정보가 있지만 기본보여줄때만 년 월 일
※ WHERE 절에 조건으로 사용할 수 있는 술어
술어 | 연산자 | 사용 예 |
비교 | =, <>, <, <=, >, >= | price < 20000 |
범위 | BETWEEN | price BETWEEN 10000 AND 20000 |
집합 | IN, NOT IN | price IN (10000, 20000, 30000) |
패턴 | LIKE | bookname LIKE '축구의 역사' |
NULL | IS NULL, IS NOT NULL | price IS NULL |
복합조건 | AND, OR, NOT | (price < 20000) AND (bookname LIKE '축구의 역사') |
'데이터베이스 > Oracle' 카테고리의 다른 글
방화벽 오라클만 풀기 (0) | 2023.08.21 |
---|---|
SQL 기본 예제 1 (0) | 2023.08.21 |
SQL Developer 시작하기 (0) | 2023.08.21 |
객체의 종류, 스키마, 모델링, 엔티티 (0) | 2023.08.20 |
Oracle 설치 (0) | 2023.08.17 |