[Query] Day 1 - 기본값 설정 / 명령어 (별칭 / 정렬 / NULL / || CONCAT)

윤수인·2023년 12월 13일
0

📒국비학원 [DB]

목록 보기
2/14
post-thumbnail

SQL (Structured Query Language : 에스큐엘 / 시퀄)

  • DB에서 자료를 불러오고 처리하기위한 언어

DB 관리 툴 : ex) SQL Develpor / QueryBox(쿼리 박스) / DBeaver 등이 있음


  • 🖥️ sqldeveloper 기본값 설정하기





Query?

  • DB로부터 정보요청 (~에 대해 알고싶으니까 정보 알려줘)

Why?
DB와의 의사소통(Query)를 위해 SQL을 배움

1. 📂 파일설치



2. 📂 기본값 설정

  • 🖥️ 쿼리박스 [QueryBox] - DBMS 기본값 설정하기

SCOTT 스키마에는 전통적으로 "EMP"라는 테이블이 포함되어 있습니다. "EMP" 테이블은 직원 (Employee) 정보를 관리하는 데 사용되며, 주로 Oracle 데이터베이스의 강의나 튜토리얼에서 예시로 활용됩니다. "EMP" 테이블은 다양한 컬럼을 포함하고, 각 컬럼은 직원의 정보를 나타냅니다. 일반적으로는 "EMPNO" (직원 번호), "ENAME" (직원 이름), "JOB" (직책), "MGR" (상사 번호), "HIREDATE" (입사일), "SAL" (급여), "COMM" (커미션), "DEPTNO" (부서 번호) 등의 컬럼이 포함됩니다.
[출처 - ChatGPT]

  • 데이터베이스 종류 : ORACLE
  • 별명 : 마음대로
  • host : IP
  • Port : 기본포트
  • 사용자이름 / 비번 : DB 생성시 할당한 정보 - SCOTT은 그때 당시에 강사님과 tiger로 하자고 했었음
  • Query 내가 만든 사용자에 값을 import해오고 싶을 때, 해당 파일이 있는 경로 cmd에 넣기




3. 💻 작업

입력

    1. query
    1. ddl(data difinition language)
      create, alter, drop, rename
    1. dml(data maipulation language)
      insert, update, delete, select
    1. dcl(data control language)
      grant, revoke
    1. tcl(transaction control language)
      truncation, commit, rollback, savepoint

select * from tab;
-- select : Query 쿼리  
-- (dml) insert, update, delete :  데이터 넣을 때 / 수정할 때 / 삭제할 때 : DML 
-- => 합쳐서 Create(insert) Read(읽기) Updat Delete = CRUD를 이용해 데이터를 access한다고 말함

-- casecade 강제 삭제
-- create 정의어  / alter 변경 / drop 삭제 / rename 계획없이 만들고 마음에 안들었을 때 쓰는거라 안씀 XDB
-- commit (=save) 저장  / rollback 실행취소 / savepoint 체크포인트 (복구했을 때 그 체크포인트 지점으로 돌아가는 것)
-- grant 권한 부여 / revoke 권한을 뺏어올 때 from 목적어 : 목적어로부터 권한(항목)을 뺏어옴


select * from personnel;
select pno,pname,pay,job from personnel;
select pname,pay,pno from personnel;

select
pname,pay,
pno from 
personnel; -- 잘라서도 실행가능

select distinct job from personnel; -- distinct : 중복값 제외하고 하나씩만 가져와줘 

select pno,pname,pay from personnel
order by pay desc;-- 해당 컬럼으로 ascending(생략가능) 정렬해 // asc = (오름차순) / desc (내림차순 大 -> 小)


select * from personnel
order by startdate desc; -- 날짜가 큰 순서대로 정렬

-- 사원번호가 높은 순서대로 정렬
select * from personnel order by pno desc;

--별칭
-- query 는 연산작업 가능 (실제 데이터 존재 X / 변형해서 내가 원하는 select안에만 나오는 컬럼 : 파생컬럼)
-- as :Alias 아리아스 + (한글로 별칭 안만듦 bonus) - as는 생략가능
select pno,pname,pay+1000 as 보너스 from personnel;
select pno,pname,pay+1000 보너스 from personnel;
select pno,pname,pay+1000 "보 너 스"  from personnel;

select pno,pname,pay+1000 as 보너스 from personnel
order by pay+1000; --보너스라고 쓰지 x , 결과값을 만드는 코딩 pay+1000으로만 씀

select * from personnel
order by 4; -- 여기서 4 = manager을 뜻하므로 지금은 쓰지 x

select dno,pno,pname from PERSONNEL
order by dno,pno DESC; --order by dno (작은값부터 asc : 생략) ,pno desc(큰값부터);

--부서번호 내림차순 / 사원번호 오름차순 정렬

select * from PERSONNEL
order by dno desc, pno;


--NULL
select * from PERSONNEL
order by manager asc; --null은 정렬하게 되면 가장 큰 값으로 인식함 (MS-SQL : 가장 작은 값으로 인식)

select * from PERSONNEL
order by manager desc;


--사원의 급여와 연봉을 출력 (DB안에는 null이 들어가면 안됨 , why? null이 연산되면 무조건 null이므로)
--nvl(bonus,0) = null과 함께 연산된 함수를 잡아냄 / 보너스에 값이 있으면 그 값 쓰고, 값이 없으면 0으로 바꿔)
select pno,pname,job,pay,(pay*12)+nvl(bonus,0) 연봉 from personnel; 

describe personnel; --퍼스널의 구조 보여줘
desc personnel;


--pname과 pno 값 붙여서 써줘
select pname || pno from personnel; 
--' ' 문자처리 
select pname || ' '|| pno from personnel; 

profile
어제보다 조금 더 성장하기!

0개의 댓글