-
[SQL]_1일차_05.12프로그래밍/SQL 2021. 5. 14. 10:16
Notion
https://www.notion.so/SQL-_12-_05-12-8923d44b23684271a04e1927b64b92dc
계정
system 계정
- id: system
- pw: oracle
hr 계정
- id: HR
- pw: 1234
Dark theme for Oracle SQL Developer and 181+ apps - Dracula
C:\Users\오명균\AppData\Roaming\SQL Developer\system4.1.5.21.78\o.ide.12.2.1.0.42.151001.541
각종 링크
필기
강사 소개 (한국 오라클 교육센터, 김진오)
- 수업 예정 과목
- 데이터베이스(3일)
- JSP
- R
지금 내 옆에 있는 사람이 경쟁자가 아니다.
대인배 적인 요소
- 친구가 같은 회사에 붙었고 나는 떨어졌을 때 친구에게 무슨 말을 할 것인가?
데이터
- 정형 데이터
- 비정형 데이터
- 저장 방법
- 그냥 저장
- 전용 저장소를 만든다(사진, 동영상 등등)
- 저장 방법
SQL
- ★표준화된 언어, DBMS를 사용하기 위한 언어
- Oracle DB - MS DB 소프트웨어가 달라도 같은 언어를 사용?
- ANSI와 ISO 표준을 따르고 있다
DBMS - 데이터베이스 관리 시스템 (거대한 프로그램)
- 컴퓨터 디스크의 일부를 DB로 사용한다
- 종류
- Oracle DB
- MySQL (오픈소스)
- MariaDB (오픈소스)
- DB2 (IBM꺼)
Database
- 관계형 db
- ex) 오라클 데이터베이스
- 계층형 db
- 객체 지향 db
- XML db
관계형 DB의 주요 객체
- TABLE
- VIEW
- INDEX
- SEQUENCE
- 동의어(SYNONYM)
최신 Oracle SQL LIVE 다운 방법
- 온라인으로 실습하는 방법
- 웹서버 프로그램 - 교안 - 01.Oracle DB - 추가공부 SQL 분석 - SQL_LIVE(19c) 사용 방법 (최신 데이터베이스)
설치
- Oracle DB 11g Express Edition : 오라클 데이터베이스를 컴퓨터에 설치
Oracle Database 11g Express Edition 1. 데이터 베이스 저장공간 제한 : 11GB 2. 메인 메모리 사용 제한 : 1GB 3. CPU 사용 제한 : 1개 (Single CPU) 출처: [http://wookoa.tistory.com/61](http://wookoa.tistory.com/61) [Wookoa]
- Oracle SQL Developer : 오라클 데이터베이스에 연결시키기 위한 용도 (접속 툴)
- user name : system
- password : oracle
실습 예제 (49p)
- oracle 계정
show user; SELECT * FROM hr.jobs; ALTER USER HR ACCOUNT UNLOCK identified BY 1234; -- (원래 내장되어 있는) hr 계정을 잠금해제하고 암호를 1234로 바꾼다 select * from COUNTRIES; -- 오류 oracle 계정에는 COUNTRIES 테이블이 없다 select * from hr.COUNTRIES; -- hr 스키마에 있는 COUNTRIES 테이블을 출력
SQL+
사용하는 이유
- 엔지니어들이 데이터베이스에 가장 빠르게 접근하기 위해 사용한다
- 운영체제 문을 SQL+에서 사용가능하다
실행 방법
- oracle 프로그램 목록 → SQL command line
- (실습 교안→ / command line으로 수행하는 프로그램)
3장
SELECT 문을 이용해 테이블에서 행을 선택하고(selection), 열을 선택하며(projection), 테이블과 테이블을 연결할(join) 수 있습니다.
키워드 (== 예약어)
- 쓰는 방법이 정해져있다
식별자
- 사정에 따라 수정할 수 있다 (열의 이름을 수정하는 것)
SELECT EMPLOYEE_ID FROM EMPLOYEES; 키워드 : SELECT, FROM 식별자 : EMPLOYEES, EMPLOYEE_ID
SQL문 작성 규칙
- 기본적인 지키면 좋은 부분이 있지만, 회사마다 다르다!!
ID 참고
HR 스키마 구조
- 사용예제
-SELECT --EMPLOYEE_ID --,first_name --,LAST_NAME --FROM EMPLOYEES --ORDER BY EMPLOYEE_ID ASC; -- 문자열은 아스키코드 기반으로 정렬된다 -- 날짜도 정렬가능하다
-DISTINCT 중복 행 제거 후 출력, 실제 데이터 제거한게 아님
-SELECT --EMPLOYEE_ID AS 사원번호 --,first_name --,LAST_NAME --FROM EMPLOYEES;
-SELECT --EMPLOYEE_ID --,first_name --,LAST_NAME --FROM EMPLOYEES --ORDER BY EMPLOYEE_ID ASC;
-SELECT --EMPLOYEE_ID --,first_name || LAST_NAME AS 이름 --FROM EMPLOYEES;
-SELECT --EMAIL || '@naver.com' --FROM EMPLOYEES;
-SELECT --FIRST_NAME --FROM EMPLOYEES --WHERE FIRST_NAME = 'Lex';
- WHERE : 특정한 정보 검색 SELECT FIRST_NAME ,SALARY FROM EMPLOYEES WHERE SALARY>10000;
SELECT DISTINCT SALARY FROM EMPLOYEES;
-- 교집합 개념, 두 열이 모두 겹치는 부분만 중복제거 SELECT DISTINCT SALARY , MANAGER_ID FROM EMPLOYEES;
SELECT DISTINCT SALARY FROM EMPLOYEES WHERE (SALARY > 10000 and SALARY < 2000);
-- AND vs BETWEEN 무엇을 선택? 회사의 지침에 따른다 SELECT SALARY FROM EMPLOYEES -- 10000 <= SALARY <= 20000 WHERE SALARY BETWEEN 10000 AND 20000;
SELECT SALARY FROM EMPLOYEES WHERE SALARY IN (10000,17000,24000);
SELECT SALARY FROM EMPLOYEES WHERE SALARY = 10000 OR SALARY = 17000 OR SALARY = 24000;
- 잘못된 부분이지만 오류 메시지가 뜨지 않음 SELECT SALARY FROM EMPLOYEES WHERE SALARY = 10000 AND SALARY = 17000;
SELECT first_name ||' '|| LAST_NAME AS 이름 FROM EMPLOYEES;
- %: xx의 모든 것 (비슷한 내용 출력) SELECT JOB_ID FROM EMPLOYEES WHERE JOB_ID LIKE 'IT%'; -- AD 그리고 3글자 충족하는 것 출력 SELECT JOB_ID FROM EMPLOYEES WHERE JOB_ID LIKE 'AD___'; -- 맨뒤부분 ERK 충족하는 모든 것 출력 SELECT JOB_ID FROM EMPLOYEES WHERE JOB_ID LIKE '%ERK'; -- LIKE와 IN 무슨차이? SELECT JOB_ID FROM EMPLOYEES WHERE JOB_ID IN 'FI_MGR'; -- 1 5를 만족하고 _:글자개수 충족해야하고, 아무글자 상관없다 -- %:글자개수, 아무글자 상관없다 SELECT JOB_ID , SALARY FROM EMPLOYEES WHERE JOB_ID LIKE '1_5%';
SELECT JOB_ID ,SALARY ,HIRE_DATE FROM EMPLOYEES WHERE HIRE_DATE LIKE '**-**_-05';
-SELECT EMAIL FROM EMPLOYEES; --SELECT EMPLOYEE_ID FROM EMPLOYEES; -- 내림차순으로 변환