SQL (Structured Query Language : 에스큐엘 / 시퀄)
- DB에서 자료를 불러오고 처리하기위한 언어
DB 관리 툴 : ex)
SQL Develpor / QueryBox(쿼리 박스) / DBeaver
등이 있음
🖥️ sqldeveloper 기본값 설정하기
Query?
- DB로부터 정보요청 (~에 대해 알고싶으니까 정보 알려줘)
Why?
DB와의 의사소통(Query)를 위해 SQL을 배움
🖥️ 쿼리박스 [QueryBox] - DBMS 기본값 설정하기
SCOTT 스키마에는 전통적으로 "EMP"라는 테이블이 포함되어 있습니다. "EMP" 테이블은 직원 (Employee) 정보를 관리하는 데 사용되며, 주로 Oracle 데이터베이스의 강의나 튜토리얼에서 예시로 활용됩니다. "EMP" 테이블은 다양한 컬럼을 포함하고, 각 컬럼은 직원의 정보를 나타냅니다. 일반적으로는 "EMPNO" (직원 번호), "ENAME" (직원 이름), "JOB" (직책), "MGR" (상사 번호), "HIREDATE" (입사일), "SAL" (급여), "COMM" (커미션), "DEPTNO" (부서 번호) 등의 컬럼이 포함됩니다.
[출처 - ChatGPT]
입력
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;