- 윈도우 검색-서비스-oracle 중지 가능
* 오라클 오류일 때(노란창 뜰 때)
C:\Users\사용자명\AppData\Roaming\SQL Developer 삭제 후 다시 들어가기
* 암기
DML
SELECT-데이터베이스로부터 데이터를 검색(조회)합니다.
INSERT UPDATE DELETE
DML(Data Manipulation Language)입니다.
개별적으로 데이터베이스 테이블에서 새로운 행을 입력(INSERT)하고, 기존의 행을 변경(UPDATE)하고, 기존의 행을 제거(DELETE)합니다.
DDL
CREATE ALTER DROP RENAME TRUNCATE
DDL(Data Definition Language)입니다. 테이블로부터 데이터 구조를 생성(CREATE), 변경(ALTER), 제거(DROP)합니다. 또는 이름을 변경(RENAME)하거나 구조만 남기고 모든 데이터를 삭제(TRUNCATE)합니다.
TCL
COMMIT ROLLBACK SAVEPOINT
TCL(Transaction Control Language)입니다. DML 명령문으로 만든 변경을 관리합니다. 데이터 변경은 논리적 트랜잭션으로 함께 그룹화 될 수 있습니다.
DCL
GRANT REVOKE
DCL(Data Control Language)입니다. 데이터베이스에 접근하고 객체들을 사용할 수 있도록 권한을 주거나 회수합니다. (권한 부여)
- employee에 department → department에서 pk
* SELECT [DISTINCT] { * | column [[AS] alias], ... } FROM table; (from~ 조회하고 싶은 테이블)
- SELECT : 하나 이상의 열을 나열합니다.
- DISTINCT : 키워드를 사용하여 중복되는 행을 제거합니다.
- * : 모든 열을 선택합니다.
- column : 명명된 열을 선택합니다.
- AS : 열 별칭(alias)을 지정합니다. (오라클 한정 생략 가능)
- alias : 선택된 열을 다른 이름으로 변경합니다.
- FROM table : 열을 포함하는 테이블을 명시합니다.
* 문장 특징
- SQL 문장은 대/소문자를 구별하지 않습니다.
- SQL 문장은 한 줄 이상일 수 있습니다.
- 키워드는 단축하거나 줄을 나누어 쓸 수 없습니다.
- 절은 대개 줄을 나누어서 씁니다.
- 탭과 들여쓰기(indent)는 읽기 쉽게 하기 위해 사용됩니다.
- 디폴트 데이터 자리맞춤을 지정합니다.
- 날짜와 문자 데이터는 왼쪽 정렬됩니다.
- 숫자 데이터는 오른쪽 정렬됩니다.
- 디폴트 열은 대문자로 출력됩니다.
- Null은 이용할 수 없거나, 지정되지 않았거나, 알 수 없거나 또는 적용할 수 없는 값입니다.
- Null은 숫자 0이나 공백과는 다릅니다
* ROWNUM, ROWID
- ROWID : 데이터베이스에서 행의 주소를 반환합니다.
- ROWNUM : 쿼리에 의해 반환되는 행의 번호를 출력합니다. (아주 중요) <조회되는 행번호를 붙여줌=순서>
* 실습
* 연산자
1. 선택된 행 제한
- 질의에 의해 검색되는 행을 제한할 수 있습니다.
- where
1) WHERE 절을 사용하여 리턴되는 행을 제한합니다.
2) WHERE 절은 FROM 절 다음에 옵니다.
3) WHERE 절은 열 이름, 비교 연산자, 그리고 비교할 열 이름 또는 값의 목록으로 구성됩니다
구문형식에서...
- WHERE : 조건을 만족하는 행으로 질의를 제한합니다.
- condition(s) : 열 이름, 표현식, 상수 그리고 비교 연산자로 구성됩니다.
(문자열 = 값(원자값, 도메인)은 대소문자 구별 및 띄어쓰기)
2. 문자스트링과 날짜
- 문자 스트링과 날짜 값은 단일 인용부호(‘ ’)로 둘러싸여 있습니다.
- 문자 값은 대/소문자를 구분하고, 날짜 값은 날짜 형식을 구분합니다.
- 디폴트 날짜 형식은 'DD-MON-YY' 입니다.
- <> 같지 않다
3. Between a and b
- 값의 범위에 해당하는 행을 출력하기 위해 BETWEEN A AND B연산자(이상, 이하)를 사용합니다. (숫자의 범위 지정할 때 편리)
- 하한 값을 먼저 명시해야 합니다.
- 하한 값과 상한 값을 모두 포함합니다.
4. IN
- 목록에 있는 값들과 비교하기 위해서 IN 연산자를 사용합니다.
5. Like(포함된 거 찾아줄 때)
- 검색 스트링 값에 대한 와일드카드 검색을 위해서 LIKE 연산자를 사용합니다.
- 검색 조건은 리터럴 문자나 숫자를 포함할 수 있습니다.
- %(percent)는 문자가 없거나 또는 하나 이상을 나타냅니다.
'IT%' - it로 시작되는 거 다 찾아줌, '%IT' - it로 끝나는 거 다 찾아줌, '%IT%' - 어디에 있던지 다 찾아줌
- _(under score)는 하나의 문자를 나타냅니다. (위치)
- LIKE 연산자는 BETWEEN 비교에 대한 단축키로 사용될 수 있습니다. 다음 예는, 2003년 1월 1일과 12월 31일 사이에 입사한 모든 사원의 이름과 입사일을 출력 합니다.
- “%” 와 “_” 기호는 리터럴 문자의 결합하여 사용될 수 있습니다. 위의 예는 이메일의 두 번째 문자가 “A”인 모 든 사원의 이름과 이메일을 출력 합니다.
6. is null, is not null
- is null 연산자는 null인 값에 대해서 테스트 합니다.
- null 값은 값이 없거나, 알 수 없거나, 또는 적용할 수 없음을 의미합니다.
- 그러므로 null 값은 어떤 값과 같거나 또는 다를 수 없으므로 =로는 테스트 할 수가 없습니다.
7. and, or, not
- AND는 양쪽의 조건이 참이어야 TRUE를 리턴합니다.
- OR는 한쪽의 조건이 참이면 TRUE를 리턴합니다.
- NOT 연산자는 뒤의 조건에 반대되는 결과를 리턴합니다
- and가 or 연산자보다 우선순위가 높습니다. or을 먼저 쓰려면 소괄호
* 데이터 정렬(모든 컬럼에 적용 가능)
- 질의에 의해 검색되는 행을 정렬할 수 있습니다.
- ORDER BY 절은 SELECT 문장의 가장 뒤에 옵니다.
- ASC : 오름차순으로 정렬합니다. 기본값입니다.
- DESC : 내림차순으로 정렬합니다.
- ORDER BY 절에 열 별칭을 사용할 수 있습니다.
* 실습
* 예제
* 함수
- 함수는 SQL의 아주 강력한 특징이며 다음을 위해서 사용할 수 있습니다.
- 데이터 계산 수행
- 개별적인 데이터 항목 수정
- 행의 그룹에 대해 결과 조작
- 출력을 위한 날짜와 숫자 형식 설정
- 열의 데이터타입 변환
1. 단일 행 함수
- 이러한 함수는 오직 단일 행에서만 적용 가능하고 행별로 하나의 결과를 리턴합니다.
- 단일 행 함수에는 여러 유형들이 있습니다. 본 과정은 아래에 나열된 것들을 다룹니다:
- 문자 • 숫자 • 날짜 • 변환
- 데이터 값을 조작합니다.
- 인수(argument)를 받고 하나의 결과를 리턴합니다.
- 리턴될 각각의 행에 적용됩니다.
- 행별로 하나의 결과를 리턴합니다.
- 데이터타입을 수정할 수 있습니다.
- 중첩(nested)될 수 있습니다
단일 행 함수 종류에는 문자 함수, 숫자 함수, 날짜 함수, 변환 함수 등이 있습니다.
문자 함수는 문자 입력을 받고 문자와 숫자 값 모두를 리턴할 수 있습니다.
숫자 함수는 숫자 입력을 받고 숫자 값을 리턴합니다.
날짜 함수는 날짜 데이터타입의 값에 대해 수행합니다.
숫자를 리턴하는 MONTHS_BETWEEN 함수를 제외한 모든 날짜 함수는 날짜 데이터타입의 값을 리턴합니다.
변환 함수는 어떤 데이터타입의 값을 다른 데이터타입의 값으로 변환합니다.
그 외 함수에는 NVL, NVL2, LNNVL, NULLIF, COALESCE, DECODE 등이 있습니다.
* 문자열 함수 실습
'TIL > SQL' 카테고리의 다른 글
day31-DB: sql (0) | 2022.11.14 |
---|---|
day30-DB: sql (0) | 2022.11.11 |
day29-DB: sql (0) | 2022.11.10 |
day28-DB: sql (0) | 2022.11.09 |
day26-DB: sql (0) | 2022.11.07 |