학습 기록/DataBase 10

DataBase 연습문제

-- 실습.1 -- 연봉이 120000 이상되는 사원들의 이름 및 연봉을 출력 SELECT FIRST_NAME, SALARY*12 FROM EMPLOYEES WHERE SALARY*12 >= 120000; -- 실습.2 -- 사원번호가 176 인 사원의 이름과 부서 번호를 출력 SELECT FIRST_NAME, DEPARTMENT_ID FROM EMPLOYEES WHERE EMPLOYEE_ID = 176; -- 실습.3 -- 연봉이 150,000 에서 200,000의 범위 이외인 사원들의 이름 및 -- 연봉을 출력하시오 (연봉 별칭 AnnSal) SELECT FIRST_NAME, SALARY*12 AS AnnSal FROM EMPLOYEES WHERE SALARY*12 NOT BETWEEN 150000 ..

23.05.16 / DataBase / TCL, DCL

TCL 트랜잭션 제어어 (COMMIT, ROLLBACK, , ) 트랜잭션 : 데이터베이스의 상태를 변화시키기 위해서 수행하는 최소 수행 단위 *트랜잭션의 4가지 특성 1. 원자성(Automicity) : 모두 실행되거나 실행 안되거나 2. 일관성(Consistency) 3. 고립성(Isolation) 4. 지속성(Durability) COMMIT DB에 영구적으로 저장, 마지막 COMMIT 시점 이후의 트랜잭션 결과 저장 ROLLBACK 트랜잭션을 취소, 마지막 COMMIT 시점까지만 복구 DCL 데이터 제어어 (GRANT, REVOKE, ROLE) GRANT 권한 부여 GRANT CREATE SESSION TO DCLTEST; REVOKE 권한 회수 REVOKE CREATE SESSION FROM DC..

23.05.15 / DataBase / DML

DML 데이터 조작어 -> 데이터에 변형을 가함 INSERT, UPDATE, DELETE, , , INSERT 테이블에 새로운 데이터를 튜플(행) 단위로 입력 오류문장 확인! UPDATE 테이블에 저장된 데이터를 변경 UPDATE 직원 SET 직업ID = 'JAVA' WHERE 직원ID = 4; * WHERE로 조건 안걸어주면 모든 행의 ID가 JAVA로 바 DELETE 테이블의 데이터 삭제 DELETE FROM 직원 WHERE 직원ID = 1; 서브쿼리 * 이름이 Shelli인 직원보다 급여가 낮은 직원들 출력 SELECT FIRST_NAME, SALARY FROM EMPLOYEES WHERE SALARY < (SELECT SALARY FROM EMPLOYEES WHERE FIRST_NAME = 'Sh..

23.05.10 / DataBase / DML

CREATE : 새로운 객체 생성 CREATE TABLE 테이블 생성 USER 계정 SEQUENCE 시퀀스 VIEW 뷰 * 테이블 생성 규칙 - 대소문자 구분X - 테이블명 중복X - 같은 테이블 내 컬럼명 중복X - 문자로 시작해야함, 예약어 사용 불가 TABLE CREATE TABLE 테이블명 ( 컬럼명 자료형(크기) 기본값 NULL여부 --기본값, NULL여부는 없을 시 안적음 CREATE TABLE 부서( 부서ID NUMBER(4) NOT NULL, 부서이름 VARCHAR2(30) NOT NULL, 매니저ID NUMBER(6), 지역ID NUMBER(4) ); 제약조건 * PK 식별자를 물리적 모델링한것 NOT NULL + UNIQUE = NULL 불가, 중복 불가 * UNIQUE KEY PK와 ..

23.05.09 / DataBase / ORDER BY, JOIN

ORDER BY ORDER BY + 정렬(오름/내림차순) *오름차순, 내림차순 오름차순(ASC), 내림차순 (DESC) *출력엔 EMPLOYEE_ID 없이 SALARY만 나오지만 EMPLOYEE_ID 기준으로 정렬 된 상태 * GROUP BY로 그룹화 된경우 GROUP BY 컬럼으로만 정렬 가능 * 실행순서 GROUP BY -> SELECT -> ORDER BY * ORDER BY가 더 느리게 실행되기 때문에 먼저 GROUP BY로 묶어버린 다음엔 다른 칼럼으로 정렬 불가 별칭이나 숫자로도 정렬 가능 JOIN 필요한 데이터가 두 개 이상의 테이블에 나눠져 있을때 데이터를 합쳐서 가져올 때 사용 =FROM= SELECT 컬럼 FROM 테이블A 별칭, 테이블B 별칭 *별칭 사용 후 실행되는 절은 모두 별칭...

23.05.08 / DataBase / GROUP BY, HAVING

1. GROUP BY 특정 칼럼을 기준으로 그룹화 할때 * 실제 출력되는 행의 개수가 감소 GROUP BY 보다 늦게 실행되는 (HAVING, OREDER BY, SELECT)절에서는 출력할수 있는 행 제한 but) 집계함수 (avg, max, min ,,)는 사용가능 * 다중행 함수 (집계함수) : 함수에 적용되는 행은 여러개, 결과값은 1개 ex) SUM(SALARY) : 1행 -> SALARY는 108행 단일행 함수(문자, 숫자, 날짜, , ,) : 함수에 적용되는 행 1개, 결과값 각 행에 대해 ex) UPPER, LOWER (예제) 성적표 테이블에서 학생별로 평균점수 출력 단, 소수점 1자리까지만 출력 * COUNT(컬럼), COUNT(*) COUNT(*) : NULL 포함해서 COUNT (예제..

23.05.04 / DataBase / 함수

내장함수 =문자함수= 1. UPPER 대문자로 변환 2. LOWER 소문자로 변환 3. INITCAP 첫글자 대문자, 나머지 소문자 *SELECT UPPER(칼럼) 4. LENGTH 문자열 길이 *SELECT LENGTH(칼럼), WHERE LENGTH(칼럼) 조건 5. SUBSTR 문자열 추출 * SUBSTR(데이터, 시작위치) -> 시작위치부터 끝까지 추출 SUBSTR(데이터, 시작위치, 추출길이) -> 시작위치부터 추출할 길이만큼 추출 6. REPLACE 문자열 대체 * REPLACE(데이터, 찾을 문자, 대체할 문자) -> 대체할 문자 안적으면 제거 7. CONCAT 문자열 합침 * CONCAT(문자열1, 문자열2) * || 연산자 - 문자열 연결 8. TRIM 특정 문자열 지움 *TRIM(삭제옵..

23.05.03 / DataBase / WHERE

WHERE SELECT 컬럼 FROM 테이블 WHERE 조건 SELECT * FROM EMPLOYEES WHERE JOB_ID = 'IT_PROG'; *산술연산자 (-, +, *, /) 비교연산자 (=, >, >=, IS NULL이 맞는 연산이라 틀린 연산식이지만 OR 연산이라 맞는부분만 연산 SELECT * FROM EMPLOYEES WHERE DEPARTMENT_ID = 30 OR DEPARTMENT_ID = 50 OR DEPARTMENT_ID = 90; 이문장을 SELECT * FROM EMPLOYEES WHERE DEPARTMENT_ID IN (30, 50, 90); 이렇게 =NOT IN= + AND ex) NOT IN (A, B, C) == A AND B AND C *NULL 포함되면 ERROR..

23.05.02 / DataBase / SELECT, DISTINCT

SQL S(Structured) Q(Query) L(Language) 구조화된 질의 언어 문법 종류 QUERY / 검색, 조회 / SELECT DDL / 정의어 / CREATE, ALTER, DROP DML / 조작어 / INSERT, UPDATE DCL / 제어어 / GRANT, REVOKE TCL / 트랜젝션 제어어 / COMMIT, ROLLBACK 자료형 문자형 - CHAR(길이) - 2000byte 고정 길이 문자열 - VARCHAR2(길이) - 4000byte 가변 길이 문자열 숫자형 - NUMBER(p,s) 날짜형 - DATE - TIMESTAMP *실행 순서 SELECT SELECT + 원하는 Column FROM + 원하는 Table SELECT * FROM EMPLOYEES; * = As..

23.05.01 / DataBase / 데이터 모델링

데이터 모델링 현실 대상을 데이터베이스로 저장 할 수 있도록 설계 및 구축하는 과장 요구사항 분석 -> 개념적 모델링 -> 논리적 모델링-> 물리적 모델링-> 데이터 베이스 * 개체 (Entity) * 속성 (Attribute) * 인스턴스 (Instance) * 관계 (Relationship) =개념적 모델링= ERD 개체 ('E'ntity) 와 관계 ('R'elationship)를 그림 ('D'iagram)으로 표현 *표기법 =논리적 모델링= * 식별자 (Primary Key) * 관계 설정(Foreign Key) * 정규화