[SQL] 1. 데이터베이스, select,order by

hhs012·2021년 12월 29일
1

SQL

목록 보기
1/8

1. 데이터베이스

-관계형 데이터베이스(RDMBS)
ex) Oracle, MySQL, MSSQL, PostgreSQL

-NoSQL
ex) MongoDB, Redis, Hbase, Neo4j

Oracle 기준


2. SQL명령의 종류

  • DML: 데이터 조작어로 R U D
    R: Read > select ~
    U: Update > update
    D: Delete > delete

  • DDL: 데이터 정의어 (객체 만드는 것)
    C: Create > insert ~
    Alter
    Drop

  • DCL: 데이터베이스 제어

3. select 명령 구문

select 컬럼이름 from 테이블 명;
(모든 열일 때는 * 표시)

select * from emp; --emp테이블에서 모든 열을 가져와라
select * from dept;
select empno,ename,job from emp; --emp테이블에서 empno,ename,job열을 가져와라

참고로, 예약어와 데이터베이스 객체명은 대소문자를 구별하지 않는다.

4. 테이블 구조

desc 테이블 이름;

desc emp; 

desc명령으로 테이블에 어떤 열이 정의되어 있는지 알 수 있다.

데이터 타입 (주로 쓰는 것만 정리)

1) 문자형 데이터
-CHAR(n) : 고정길이 문자 ex) CHAR(10)이면 최대 10문자로 된 문자열 저장 가능
-VARCHAR2(n): 가변길이 문자 / 실제 입력된 데이터 길이에 따라 크기가 변화

2) 숫자형 데이터
-NUMBER(): 가변 숫자

3) 날짜형 데이터
-DATE: 연,월,일,시,분,초 입력 가능
-TIMESTAMP: 연,월,일,시,분,초 + 밀리 초까지 입력 가능

5. 검색 조건 지정

select 컬럼이름 from 테이블 명 where 조건;

select * from emp where JOB != 'MANAGER'; -- emp테이블에서 job이 MANAGER가 아닌 모든 열을 가져와라
  • 산술 연산자 : +, -, *, /
  • 비교 연산자 : =,<>(!=),>,>=,<,<=, between ~ and ~, in(set), like
    *like 연산자를 사용하여 유효한 검색 문자열 값의 대체 문자 검색 수행.
    패턴 일치를 위해 대체 문자 %(모든 문자), _(한 글자) 사용
~AD를 포함하는 모든(%) 데이터를 조회!
select * from employees where job_id like'AD%';
  • 연결 연산자 : || (열이나 문자열을 다른 열에 연결)

    select empno || hiredate as hdate,deptno from emp e;
  • Null값 여부 : is Null

  • 중복 행 제거: distinct (select 키워드 바로 뒤에 위치)

  • 열 alias

    select empno,hiredate as hdate,deptno from emp e;

    열 머리글의 이름을 바꾼다. 열 이름 바로 뒤에 나오거나 AS키워드가 올 수 있으며, 공백이나 특수문자를 포함할 경우 큰 따옴표가 필요하다.

  • 논리 연산자: and, or, not

  • ORDER BY절
    asc: 오름차순, 기본값
    desc: 내림차순
    order by 절은 select문의 맨 마지막에 오며 테이블에 영향을 주지 않는다.

    order by a desc, b asc; --asc는 생략 가능

0개의 댓글