ch0nny_log

[빅데이터분석]SQL_TIL1 본문

빅데이터 분석(with 아이티윌)/SQL

[빅데이터분석]SQL_TIL1

chonny 2024. 5. 10. 18:20

1. OT 진행

2. database 소프트웨어 시장 점유율

 

 

** 오라클설치

1. c##scott 유저 생성

 1) 명령프롬프트 창 열기 (작업표시줄에 cmd)

 2) 명령프롬프트 창에 " sqlplus / as sysdba " 기입

 3) 접속한 유저가 누군지 확인 " show user" 기입

 4) 유저생성-> 유저이름: ”c##scott” / password: “tiger”

   -> create user c##scott identified by tiger;

      권한 부여: 유저”c##scott” 에게 dba 권한을 부여.

   -> grant dba to c##scott;

  5) “c##scott” 유저로 접속

   ->  connect c##scott/tiger

   ->  show user

  6) 리스너 상태 확인(Listener는 오라클 접속할 때 데이터 베이스 서버에 떠 있는 프로세서이다. ex. 경비원)

  -> lsnrctl status

[내 컴퓨터 내용]
HOST(건물주소): DESKTOP-PQPBP6D
PORT(통러번호): 1521
CLRExtProc(서비스이름) : XE

 

 

** SQL_Developer 다운로드 (설치할 것 없음_압축만 풀기)

[oracle SQL Developer로 오라클에 접속하기]

1. 새 갤러리 열기

2. 비밀번호: tiger / 상태: 성공까지 확인

3. 스크립트 기 후 초록 화살표 클릭

alter session set nls_Date_format='RR/MM/DD';
drop table emp;
drop table dept;


CREATE TABLE DEPT
       (DEPTNO number(10),
        DNAME VARCHAR2(14),
        LOC VARCHAR2(13) );


INSERT INTO DEPT VALUES (10, 'ACCOUNTING', 'NEW YORK');
INSERT INTO DEPT VALUES (20, 'RESEARCH',   'DALLAS');
INSERT INTO DEPT VALUES (30, 'SALES',      'CHICAGO');
INSERT INTO DEPT VALUES (40, 'OPERATIONS', 'BOSTON');

CREATE TABLE EMP (
 EMPNO               NUMBER(4) NOT NULL,
 ENAME               VARCHAR2(10),
 JOB                 VARCHAR2(9),
 MGR                 NUMBER(4) ,
 HIREDATE            DATE,
 SAL                 NUMBER(7,2),
 COMM                NUMBER(7,2),
 DEPTNO              NUMBER(2) );


INSERT INTO EMP VALUES (7839,'KING','PRESIDENT',NULL,'81-11-17',5000,NULL,10);
INSERT INTO EMP VALUES (7698,'BLAKE','MANAGER',7839,'81-05-01',2850,NULL,30);
INSERT INTO EMP VALUES (7782,'CLARK','MANAGER',7839,'81-05-09',2450,NULL,10);
INSERT INTO EMP VALUES (7566,'JONES','MANAGER',7839,'81-04-01',2975,NULL,20);
INSERT INTO EMP VALUES (7654,'MARTIN','SALESMAN',7698,'81-09-10',1250,1400,30);
INSERT INTO EMP VALUES (7499,'ALLEN','SALESMAN',7698,'81-02-11',1600,300,30);
INSERT INTO EMP VALUES (7844,'TURNER','SALESMAN',7698,'81-08-21',1500,0,30);
INSERT INTO EMP VALUES (7900,'JAMES','CLERK',7698,'81-12-11',950,NULL,30);
INSERT INTO EMP VALUES (7521,'WARD','SALESMAN',7698,'81-02-23',1250,500,30);
INSERT INTO EMP VALUES (7902,'FORD','ANALYST',7566,'81-12-11',3000,NULL,20);
INSERT INTO EMP VALUES (7369,'SMITH','CLERK',7902,'80-12-09',800,NULL,20);
INSERT INTO EMP VALUES (7788,'SCOTT','ANALYST',7566,'82-12-22',3000,NULL,20);
INSERT INTO EMP VALUES (7876,'ADAMS','CLERK',7788,'83-01-15',1100,NULL,20);
INSERT INTO EMP VALUES (7934,'MILLER','CLERK',7782,'82-01-11',1300,NULL,10);


commit;

 

4. select * from emp; + (ctrl enter)

예제 1. 테이블에서 특정 열 선택하기
select *
from emp;

select empno, ename, sal
from emp;​

** dbeaver 툴 설치하고 접속하기 (현업에서 많이 사용함) sqldevloper과 같은 실습 포함

** sql 이란?

: Structure Query Language (구조적 질의 언어)

→ 데이터베이스의 데이터를 검색하고 다루는 전문 프로그램 언어

→ 데이터 분석가들이 거의 매일 가장 많이 사용하는 언어

* SQL 의 종류 5가지

  • Query문 → 데이터 검색언어 (select 문의 6가지절)
  • DML문 → Data Manipulation Language (데이터 조작언어)
    • insert. update, delete, merge, select
  • DDL문 → Data Definifion Language (데이터 정의 언어)
    • create, alter, drop,. truncate, rename
  • DCL문 → Data Control Language (데이터 제어 언어)
    • grant, revoke
  • TCL문→ Transaction Control Language (트렌젝션 제어 언어)
    • commit, rollback, savepoint

** 문제

  • emp 테이블의 컬럼소개ename: 사원이름job: 직업comm: 커미션deptno: 부서번호
  • mgr: 직속상사의 사원번호
  • hiredate: 입사일
  • sal: 월급
  • empno: 사원번호
예제 1(page32). 테이블에서 특정 열 선택하기
문제 1. 사원(emp)테이블에서 사원이름, 직업과 입사일과 부서번호를 출력하시오.

문제2. 사원테이블(emp)에서 사원 이름, 월급, 커미션, 직업을 출력하시오.

* dept테이블의 설명

dept: 부서테이블

deptno: 부서번호

dname: 부서명

loc: 부서위치

* 예제2. 테이블에서 모든 열(column)출력하기

 

문제1. 사원 테이블의 모든 컬럼과 데이터를 출력하시오
문제2. 부서테이블에서 부서번호, 부서명을 출력하시오
예제 3. 컬럼 별칭을 사용하여 출력되는 컬럼명 변경하기 (as 사용)
문제1. 사원이름, 직업, 월급을 출력하는데 모두 다 컬럼명을 한글로 출력하시오.
drop  table emp19;

 create   table   emp19
 ( empno     number(10),
   ename     varchar2(20),
   age         number(10),
   birth         date,
   telecom     varchar2(10),
   major        varchar2(50),
   email         varchar2(60),
   address      varchar2(100) ) ;

 INSERT into emp19(empno, ename, age, birth, telecom, major, email, address)
values(5, '신지혜', 28, to_date('1996/04/17', 'RRRR/MM/DD'),
'SKT', '소비자학', 'cislisa79@naver.com', '서울시 강서구 등촌1동');

INSERT INTO emp19(empno, ename, age, birth, telecom, major, email, address)
VALUES (6, '박보은', 25, to_date('1999/01/05', 'YYYY/MM/DD'), 'kt', '컴퓨터학', 'boeun9511@gmail.com', '경기도 광주시 초월읍');

INSERT INTO emp19(empno,ename,age,birth,telecom,major,email,address)
values( 14, '노승욱', 26, to_date('1999/10/19','YYYY/MM/DD'),'sk','수학과','nosw19@naver.com','성남시 중원구 성남동');

INSERT INTO emp19(empno, ename, age, birth, telecom, major, email, address)
Values(3,'박두연',28,to_date('1996/01/18','YYYY/MM/DD'),'sk','간호학과','dypark@gmail.com','서울시 동작구 상도동');

insert into emp19(empno, ename, age, birth, telecom, major, email, address)
values(12, '윤지윤', 28, to_date('1996/02/29','YYYY/MM/DD'), 'skt',
'디자인과' ,'younyoun229@gmail.com', '서울시 강서구 염창동' );

insert into emp19 (empno,ename,age,birth,telecom,major,email,address)
values(29, '문혜선', '25',to_date('1999/04/16','YYYY/MM/DD'),'sk','정보통신공학과','hyeseon0416@naver.com','경기도 화성시 능동' );

INSERT INTO emp19(empno, ename, age, birth, telecom, major, email, address)
VALUES(19, '안민영', 29,to_date('1995/01/19','YYYY/MM/DD'), 'lg', '영어교육',
'miny9501@gmail.com','서울시 광진구 중곡동');

insert into emp19(empno, ename, age, birth, telecom, major, email, address)
values(28, '김진경', 31, to_date('1993/03/23','yyyy/mm/dd'), 'kt', '분자생명공학', 'jin190059@gmail.com', '경기도 용인시 수지구' );


INSERT INTO emp19(empno,ename,age,birth,telecom,major,email,address)
values( 25, '유동현', 26, to_date('1998/05/18','YYYY/MM/DD'),'sk','의료공학','dhy98@naver.com','서울시 광진구 구의동');

insert into emp19(empno,ename,age,birth,telecom,major,email,address)
values( 27, '황지영', 30, to_date('1994/09/10','YYYY/MM/DD'), 'sk', '외식산업', 'rwjy13@naver.com', '경기도 용인시 수지구' );


INSERT INTO emp19(empno, ename, age, birth, telecom, major, email, address)
VALUES(2, '한지희', 28, to_date('1995/07/07', 'YYYY/MM/DD'), 'sk', '통계데이터', 'zee7@kakao.com', '경기도 남양주시 화도읍');


INSERT INTO emp19(empno,ename,age,birth,telecom,major,email,address)
values(11,'유재현',32,to_date('1992/02/03','YYYY/MM/DD'),'lg알뜰','한문학','constell85@naver.com','서울시 강남구 개포4동');

insert into emp19(empno,ename,age,birth,telecom,major,email,address)
values(9,'이현서', 25, to_date('2000/01/06','YYYY/MM/DD'), 'KT', 'AI전공', 'oesnoeyhl@naver.com', '경기도 남양주시 별내동');


insert into emp19(empno,ename,age,birth,telecom,major,email,address)
values( 30, '서동현', 28, to_date('1996/01/13','YYYY/MM/DD'), 'kt',
'무역물류학과', 'tjehdgus113@gmail.com', '서울시 송파구 송파동' );


insert into emp19(empno,ename,age,birth,telecom,major,email,address)
values( 7, '조혜정', 29, to_date('1995/12/10','YYYY/MM/DD'), 'lg', '재활과학', 'chonny1210@naver.com', '서울시 송파구 삼전동' );


insert into emp19(empno,ename,age,birth,telecom,major,email,address)
values( 4, '이승원', 26, to_date('1998/04/24','YYYY/MM/DD'), 'sk',
'건축', '15sally51@naver.com', '용인시 처인구 고림동' );

INSERT INTO emp19(empno, ename, age, birth, telecom, major, email, address)
VALUES (8, '이혜인', 28, to_date('1998/01/20','YYYY/MM/DD'), 'SKT', '아동보육', 'ie3682@naver.com', '성남시 분당구 백현동');

INSERT INTO emp19 (empno,ename,age,birth,telecom,major,email,address)
values(15,'김준희',26,to_date('1999/12/12','YYYY/MM/DD'),'sk','통계학과','kjhata@naver.com','성남시 중원구 성남동');


insert into emp19 (empno, ename, age, birth, telecom, major, email, address)
values (13, '김연우', 24, to_date('2000/07/18','YYYY/MM/DD'), 'kt', '문헌/빅데이터','yeonwoo1016@naver.com', '성남시 분당구 서현동');

INSERT INTO emp19(empno, ename, age, birth, telecom, major, email, address)
values(1, '심지민', 27, to_date('1997/06/28', 'YYYY/MM/DD'), 'sk', '일본학', 'jmsword25@gmail.com', '서울시 송파구 장지동');

insert into emp19 (empno, ename, age, birth, telecom, major, email, address)
values (26, '이원석', 31, to_date('1993/01/11','YYYY/MM/DD'), 'SKT', '관광', 'naiw30@gmail.com', '성남시 분당구 운중동');

iNSERT INTO emp19 (empno, ename, age, birth, telecom, major, email, address)
values(16, '박찬혁', 27, to_date('1997/09/08','YYYY/MM/DD'), 'lg','컴공',
'cksgu3304@gmail.com', '서울시 강남구 역삼동');

INSERT INTO emp19(empno,ename,age,birth,telecom,major,email,address)
values(10,'석승연',25,to_date('2000/02/16','yyyy/mm/dd'),'lg','기계공학',
'kjkj750@naver.com','서울시 강남구 역삼동');


INSERT INTO emp19(empno, ename, age, birth, telecom, major, email, address)
values(18, '이동근', 33, to_date('1991/06/06','YYYY/MM/DD'), 'LG', '시각디자인', 'dgriii0606@naver.com', '서울시 강서구 염창동');


insert into emp19(empno,ename,age,birth,telecom,major,email,address)
values(20, '한수연', 28, to_date('1996/02/04','YYYY/MM/DD'), 'lg',
'정보사회학', 'gkstnekf9875@naver.com', '서울시 동작구 신대방동' );

INSERT INTO emp19(empno, ename, age, birth, telecom, major, email, address)
values(17, '김서준', 27, to_date('1997/02/05', 'YYYY/MM/DD'), 'kt', '국제통상', 'tjwns0520@naver.com', '서울시 동작구 상도동');

INSERT INTO emp19(empno,ename,age,birth,telecom,major,email,address)
values(24, '경진우',27,to_date('1998/11/03','YYYY/MM/DD'),'lg','기계공학','wlsdn6746@naver.com','경기도 평택시 이충동'
);

insert into emp19(empno,ename,age,birth,telecom,major,email,address)
values(21, '손주용', 26, to_date('1998/07/06','YYYY/MM/DD'), 'kt',
'경영', 'sjo980706@hanmail.net', '안양시 동안구 달안동' );

insert into emp19 (empno, ename, age, birth, telecom, major, email, address)
values (23, '성연우', 38, to_date('1985/01/11','YYYY/MM/DD'), 'SKT', '화학', 'ddoolla85@naver.com', '서울시 서초구 방배동');

INSERT INTO emp19(empno,ename,age,birth,telecom,major,email,address)
values(22, '박진우',28,to_date('1996/08/22','YYYY/MM/DD'),'skt','경영학','jinjin7766@naver.com','서울시 종로구 창신동');

commit;

select * from emp19
 order by empno asc;​


문제2. 우리반 테이블에서 학생이름, 나이, 전공을 출력하는데 컬럼명을 한글로 출력하시오