날짜 : 2021-06-23

태그 : SELECT SQL

메모

SELECT 문은 기본적으로 DQL (데이터검색) 에 사용된다. ​ 2가지 용어를 먼저 보자​

  1. Selection : 테이블의 행 , 레코드 ,로우 라고 불리운다.
  2. Projection : 테이블의 열 , 컬럼 이며 세로축을 의미한다.

기본적인 SEELECT 문은 SELECT와 FROM 두개의 키워드를 기본으로 만들어진 SQL 문이다.

문법 SELECT [DISTINCT] {*, column [Alias] , … } FROM 테이블명 ;

Title

[ ] 대괄호의 의미 : 생략가능한내용 { } 중괄호의 의미 : 여러 값중에서 하나를 사용해야함 * 또는 column [Alias] : 나중에배울내용이지만 해당 컬럼에 별명을 부여하는것임 FROM 테이블명 : 앞의 SELECT 의 컬럼들을 불러올 원래의테이블 ; 세미콜론 : C언어나 Java와 마찬가지로 명령이 끝난다는걸 표시함 — : 오라클SQL 에서는 — 이 주석을 다는 문자이다. ​

SELECT 예시들.​

SELECT
*
FROM DEPT;
 
SELECT DNAME FROM DEPT;
 
SELECT LOC FROM DEPT;
 
-- 각각의 DNAME 또는 LOC 컬럼을 DEPT라는 테이블에서 불러온(검색) 한다는 의미이다.​
 
SELECT
*
FROM TAB; -- select
 
-- * FROM TAB 는 계정이소유한모든 테이블을불러오는것임 *의뜻은 (ALL) 전체라는뜻
 
select * from tab; -- 대소문자 상관없음
 
desc dept; -- desc 는 테이블을 설명함(데이터타입 등등정보),VARCHAR2 는 문자라는뜻임
 
SELECT * FROM emp;
 
desc emp;
 
SELECT mgr FROM emp;
 
select empno , ename , job , hiredate FROM EMP;
 
select EMPNO , ENAME , JOB ,hiredate form emp;
 
select empno , ENAME ,job , hiredate from emp;
 
select name from emp;
 
desc emp;
 
select empno,ename,sal from emp;
 
select empno,ename,sal, SAL*1.1 from emp; 
-- 이렇게 기존컬럼에 연산도가능함 .이렇게하면 원본데이터는 변함이없고 새로운 이름의 컬럼이 생성되어 보여지게된다.
 

 
select empno 사번, ename 성명 , sal "사원 급여" from emp; 
-- Alias 라는것인데 as 뒤에 별칭을붙이면되지만 여기서는 컬럼이름뒤에 바로 별칭을붙여주었다. 
문법에서 [] 대괄호가 있었기에 생략이 가능하다.
 

 
SELECT sal+100 , sal from emp; 
-- 컬럼에 더하기연산을해본것.
 

select ename 이름 , sal 월급 , sal*12 AS "연봉" from emp 1; 
--이렇게 from emp 뒤에 1을 적어 몇번째기준으로 행을 정렬할것인지 정할 수 도 있다
 

 
SELECT 1+2 FROM DUAL;
 
-- 더미 (임시 테스트용 테이블이며 dual 을 쓰는 이유는 간단한 함수나 계산시에 근거가 되는 테이블이없거나 일일이 지정하는 불편함을 덜기위해서 사용함)
 

 
select 12*12 as "연산 결과" from dual;
 
select sysdate from dual;
 
select *
 
from dual;
 

WHERE

where는 from 문 뒤에 위치하며 조건을 달기위해 사용한다. (필터링의 개념)

SELECT ename as "사원 이름" , sal "사원 월급" , sal*12 as "연 봉" from emp;
 
select comm , comm+100 from emp;
 
select ename, comm, deptno from emp where deptno=10; --부서번호가 10인데이터를 검색하는것
 
select ename, comm from emp where comm=null; --NULL은 비교연산 사용이 안됨
 
select ename, comm from emp where comm is null; --NULL은 is , is not 으로 비교해야
 
select ename, comm from emp where comm is not null;

 
select * from emp where ename='BLAKE'; -- 문자,날짜는 작은따옴표 사용!,대소문자까지 일치해야함

생각 (질문)

출처 (문헌)

학원에서 준 바인딩 도서

연결 (이유)

참고문헌


에이콘아카데미 출판사