back-end&DB/SQL(Oracle)
-
SQL 연습 문제back-end&DB/SQL(Oracle) 2023. 5. 18. 10:26
문제1. 연봉이 120,000 이상되는 사원들의 이름 및 연봉을 출력하시오 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 >= 150000 AND sal..
-
SQL TCL, DCL과 객체back-end&DB/SQL(Oracle) 2023. 5. 16. 12:54
1. TCL : 트랜잭션 제어어 - 트랜잭션 업무를 수행하기 위한 최소 수행 단위 ex) 샤워를 하나의 업무로 볼 때 1. 샴푸 2. 트리트먼트 바르고 5분 방치 3. 양치하기 4. 세수하기 5. 바디샤워 1.1 트랜잭션의 필요성 - 송금 트랜잭션 1. LLL의 계좌 잔액 1000원 이상인지 확인하기 2. LLL 계좌에 1000원 차감하기 3. AAA 계좌에 1000원 추가하기 4. 송금 완료 COMMIT - 계좌 생성하기 CREATE TABLE 카카오뱅크( 계좌번호 VARCHAR2(50), 이름 VARCHAR2(12), 잔액 NUMBER ); INSERT INTO 카카오뱅크 VALUES('1234-123-1234', 'LLL', 5000); INSERT INTO 카카오뱅크 VALUES('2222-222..
-
SQL DML와 서브쿼리back-end&DB/SQL(Oracle) 2023. 5. 15. 12:49
1. DML 테이블에 원하는 데이터를 입력/수정/삭제 테이블에 들어 있는 데이터에 변형을 가하는 명령어 데이터 조작어 INSERT UPDATE DELETE .... 1.2 INSERT 테이블에 새로운 데이터를 튜플(행)단위로 입력 INSERT INTO 테이블(컬럼 리스트) VALUES (컬럼 리스트에 입력 할 값들); - 회원 테이블 추가 CREATE TABLE 네이버회원( 회원ID VARCHAR2(15), 이름 VARCHAR2 (12) NOT NULL, 비밀번호 VARCHAR2(16), 생년월일 DATE, 성별 VARCHAR2(3), -- 제약조건 추가 CONSTRAINT 회원_ID_PK PRIMARY KEY(회원ID), CONSTRAINT 회원_성별_CK CHECK(성별 in ('남', '여')) )..
-
SQL CREATE와 ALTER 그리고 제약 조건back-end&DB/SQL(Oracle) 2023. 5. 10. 12:21
1. DDL - DDL : data definition language 데이터 정의어 - CREATE : 새로운 객체를 생성할 때 사용하는 명령어 - CREATE TABLE, USER, VIEW, SEQUENCE,TABLE - 기존의 EMPLOYEES 테이블을 한글 버전으로 생성 - 테이블 정보 조회 : 테이블명 작성 -> 드래그 쉬프트 F4 - 실행화면 CREATE TABLE 테이블 생성 CREATE USER 계정 생성 CREATE SEQUENCE 시퀀스 생성 CREATE VIEW 뷰 생성 1.1 테이블 생성 CREATE TABLE 테이블명( 컬럼명 자료형(크기) [기본값] [NULL여부], -- []는 선택 사항 기본값은 둘 다 NULL ... 컬럼명 자료형(크기) [기본값] [NULL여부] ); C..
-
SQL JOINback-end&DB/SQL(Oracle) 2023. 5. 9. 12:49
1. JOIN 필요한 데이터가 두 개 이상의 테이블에 나눠져 있을 때 데이터를 합쳐서 가져오고자 할 때 사용 - 직원 ID가 100번인 직원의 부서 이름을 출력 - 직원 ID : 직원테이블 - 부서 이름 부서테이블 - 1. 100번의 부서ID 찾기 SELECT employee_id, department_id FROM employees WHERE employee_id = 100; - 2. 부서 ID가 90인 부서의 이름찾기 SELECT department_id, department_name FROM departments WHERE department_id = 90; - JOIN 문법 사용시 SELECT E.employee_id, D.department_id, D.department_name FROM emp..
-
SQL GROUP BY와 HAVING와 ORDER BYback-end&DB/SQL(Oracle) 2023. 5. 8. 12:50
1. GROUP BY - 특징 칼럼을 기준으로 그룹화할 때 사용 - 부서별 급여의 평균을 구하고 싶을 때 SELECT AVG(SALARY) FROM EMPLOYEES WHERE department_id = 100; SELECT AVG(SALARY) FROM EMPLOYEES WHERE department_id = 90; SELECT AVG(SALARY) FROM EMPLOYEES WHERE department_id = 80; 1.1 그룹화(GROUP BY) - 부서별 급여의 평균을 반올림 SELECT department_id, ROUND(AVG(SALARY)) FROM EMPLOYEES GROUP BY department_id; - 실행 불가 -- 실행 불가 SELECT employee_id, depar..
-
SQL 함수back-end&DB/SQL(Oracle) 2023. 5. 4. 12:17
. 문자 함수 하나의 특별한 목적의 작업을 수행하기 위해 독립적으로 설계된 프로그램 코드의 집합 ex) print(출력할 값) = 8; - SUBSTR(데이터,시작위치,추출길이) 문자열 추출하는 함수 SUBSTR 데이터 시작위치 : 시작 위치부터 끝까지 추출 SUBSTR 데이터 시작위치 추출길이 : 시작 위치부터 추출길이만큼 추출 ex) JOB_ID에서 _기준으로 앞 뒤 따로 출력 SELECT JOB_ID , SUBSTR(JOB_ID,1,2) AS 앞 , SUBSTR(JOB_ID,4) AS 뒤 FROM employees; 실습 입사일을 출력하시오 연도 월 일 SELECT SUBSTR(hire_date,1,2) AS 연도 , SUBSTR(hire_date,3,2) AS 월 , SUBSTR(hire_date..
-
SQL WHERE절과 연산자back-end&DB/SQL(Oracle) 2023. 5. 3. 12:53
1. WHERE SELECT 컬럼 FROM 테이블 WHERE 조건 SELECT * FROM employees WHERE job_id = 'IT_PROG'; * Oracle의 경우 Ctrl + F7의 경우 정렬이 된다. - 실행 순서 FROM > WHERE > SELECT - employees 테이블에서 IT_PROG의 조건에 해당하는 모든 컬럼에서 찾는다. 1.1. 실습 - 직원 ID가 105인 사람의 성과 이름을 출력 SELECT first_name, last_name FROM employees WHERE employee_id = '105'; 2. 연산자 2.1. 산술연산자( +, -, *, / ) SELECT salary, salary + 2 FROM employees; SELECT salary, s..