날짜 : 2021-06-23
태그 : SELECT SQL
메모
SELECT 문은 기본적으로 DQL (데이터검색) 에 사용된다. 2가지 용어를 먼저 보자
- Selection : 테이블의 행 , 레코드 ,로우 라고 불리운다.
- 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'; -- 문자,날짜는 작은따옴표 사용!,대소문자까지 일치해야함생각 (질문)
출처 (문헌)
학원에서 준 바인딩 도서