SQL 기초정리

박지성 학부생·2023년 1월 30일
0

BackEnd Develop log

목록 보기
15/27
post-thumbnail

SQL은 왜쓰는가?

SQL: Structured Query Language

  • SQL은 데이터베이스, 그 중에서도 관계형 데이터베이스를 다루는 언어이다.
  • 관계형 데이터베이스에게 요구를 할때 사용하는 언어가 SQL이다.
  • 관계형 데이터베이스말고도 모든 데이터베이스에 사용되는 언어를 아울러 '데이터베이스 언어'라 한다.
  • 데이터베이스 관리 시스템에 요구하는 것을 쿼리(Query)라고 한다.

DML이란

데이터 조작어
(DML : Data Manipulation Language)

데이터베이스의 테이블에 들어 있는 데이터에 변형을 가하는 종류(데이터 삽입, 수정, 삭제)의 명령어들을 말한다.

  • SELECT

    • 데이터베이스에 들어 있는 데이터를 조회하거나 검색하기 위한 명령어를 말하는 것으로 RETRIEVE 라고도 한다.
  • INSERT

    • 데이터 추가
  • UPDATE

    • 데이터 수정
  • DELETE

    • 데이터 삭제

DDL이란

데이터 정의어
(DDL : Data Definition Language)

테이블과 같은 데이터 구조를 정의하는데 사용되는 명령어들로 (생성, 변경, 삭제, 이름변경) 데이터 구조와 관련된 명령어들을 말한다.

  • CREATE

    • 테이블, 인덱스, 뷰 등의 데이터베이스 객체 생성
  • ALTER

    • 기존 데이터베이스 객체의 구조를 수정
  • DROP

    • 데이터베이스 객체를 삭제
  • RENAME

    • 데이터베이스 이름 변경
  • TRUNCATE

    • 테이블에서 모든 데이터를 제거하면서 구조를 유지

DCL이란

데이터 제어어
(DCL : Data Control Language)

데이터베이스에 접근하고 객체들을 사용하도록 권한을 주고 회수하는 명령어들을 말한다.

  • GRANT
    • 권한주기
  • REVOKE

TCL이란

트랜잭션 제어어
(TCL : Transaction Control Language)

논리적인 작업의 단위를 묶어서 DML에 의해 조작된 결과를 작업단위(트랜잭션) 별로 제어하는 명령어를 말한다.

  • COMMIT

  • ROLLBACK

  • SAVEPOINT


정규표현식 (Regex)

정규 표현식의 용어들정규 표현식에서 사용되는 기호를 Meta문자라고 표현한다.
표현식에서 내부적으로 특정 의미를 가지는 문자를 말한다.
다 외우지 말고 자주 접하는 식 몇 개 만 알아두자

  • ^x
    • 문자열의 시작을 표현하며 x 문자로 시작됨을 의미한다.
  • x$
    • 문자열의 종료를 표현하며 x 문자로 종료됨을 의미한다.
  • .x
    • 임의의 한 문자의 자리수를 표현하며 문자열이 x 로 끝난다는 것을 의미한다.
  • x+
    • 반복을 표현하며 x 문자가 한번 이상 반복됨을 의미한다.
  • x?
    • 존재여부를 표현하며 x 문자가 존재할 수도, 존재하지 않을 수도 있음을 의미한다.
  • x*
    • 반복여부를 표현하며 x 문자가 0번 또는 그 이상 반복됨을 의미한다.
  • x|y
    • or 를 표현하며 x 또는 y 문자가 존재함을 의미한다.
  • (x)
    • 그룹을 표현하며 x 를 그룹으로 처리함을 의미한다.
  • (x)(y)
    • 그룹들의 집합을 표현하며 앞에서 부터 순서대로 번호를 부여하여 관리하고 x, y 는 각 그룹의 데이터로 관리된다.
  • (x)(?:y)
    • 그룹들의 집합에 대한 예외를 표현하며 그룹 집합으로 관리되지 않음을 의미한다.
  • x{n}
    • 반복을 표현하며 x 문자가 n번 반복됨을 의미한다.
  • x{n,}
    • 반복을 표현하며 x 문자가 n번 이상 반복됨을 의미한다.
  • x{n,m}
    • 반복을 표현하며 x 문자가 최소 n번 이상 최대 m 번 이하로 반복됨을 의미한다.

Meta 문자들 중에서 좀 더 특수하게 사용되는 문자들이 존재한다. [] 는 내부에 지정된 문자열의 범위 중에서 한 문자만을 선택하다는 특수한 의미를 가진다. 그리고 내부에서 Meta문자를 사용하면 다른 의미를 가지고 동작할 수 있으므로 잘 확인하고 사용해야 한다.

  • [xy]
    • 문자 선택을 표현하며 x 와 y 중에 하나를 의미한다.
  • [^xy]
    • not 을 표현하며 x 및 y 를 제외한 문자를 의미한다.
  • [x-z]
    • range를 표현하며 x ~ z 사이의 문자를 의미한다.
  • \^
    • escape 를 표현하며 ^ 를 문자로 사용함을 의미한다.
  • \b
    • word boundary를 표현하며 문자와 공백사이의 문자를 의미한다.
  • \B
    • non word boundary를 표현하며 문자와 공백사이가 아닌 문자를 의미한다.
  • \d
    • digit 를 표현하며 숫자를 의미한다.
  • \D
    • non digit 를 표현하며 숫자가 아닌 것을 의미한다.
  • \s
    • space 를 표현하며 공백 문자를 의미한다.
  • \S
    • non space를 표현하며 공백 문자가 아닌 것을 의미한다.
  • \t
    • tab 을 표현하며 탭 문자를 의미한다.
  • \v
    • vertical tab을 표현하며 수직 탭(?) 문자를 의미한다.
  • \w
    • word 를 표현하며 알파벳 + 숫자 + _ 중의 한 문자임을 의미한다.
  • \W
    • non word를 표현하며 알파벳 + 숫자 + _ 가 아닌 문자를 의미한다.

정규표현식을 사용할 때 Flag 라는 것이 존재하는데 Flag를 사용하지 않으면 문자열에 대해서 검색을 한번만 처리하고 종료하게 된다. Flag는 다음과 같은 것들이 존재한다.

Flag

  • g
    • Global 의 표현하며 대상 문자열내에 모든 패턴들을 검색하는 것을 의미한다.
  • i
    • Ignore case 를 표현하며 대상 문자열에 대해서 대/소문자를 식별하지 않는 것을 의미한다.
  • m
    • Multi line을 표현하며 대상 문자열이 다중 라인의 문자열인 경우에도 검색하는 것을 의미한다.

사용 예제

/[0-9]/g
전체에서 0~9사이에 아무 숫자 '하나' 찾는다.

/[to]/g
전체에서 t 혹은 o 를 모두 찾는다.

/filter/g
전체에서 f 따로 i 따로 찾는게 아니라 'filter' 라는 단어에 매칭되는것을 찾는다.

/\b(?:(?!to)\w)+\b/g
전체에서 'to' 라는 단어를 포함하는 단어를 빼고 다른 단어를 매칭한다.
ex) "Tutorial" 도 제외된다.

\b(?!\bto\b)\w+\b
전체에서 'to' 라는 단어를 빼고 다른 단어 매칭한다.
ex) "Tutorial" 제외되지 않는다.

이메일
/^[0-9a-zA-Z]([-_\.]?[0-9a-zA-Z])*@[0-9a-zA-Z]([-_\.]?[0-9a-zA-Z])*\.[a-zA-Z]{2,3}$/i

  • '시작을' 0~9 사이 숫자 or a-z A-Z 알바펫 아무거나로 시작하고
  • 중간에 - _ . 같은 문자가 있을수도 있고 없을수도 있으며
  • 그 후에 0~9 사이 숫자 or a-z A-Z 알바펫중 하나의 문자가 없거나 연달아 나올수 있으며
  • @ 가 반드시 존재하고
  • 0-9a-zA-Z 여기서 하나가 있고
  • 중간에 - _ . 같은 문자가 있을수도 있고 없을수도 있으며
  • 그 후에 0~9 사이 숫자 or a-z A-Z 알바펫중 하나의 문자가 없거나 연달아 나올수 있으며
  • 반드시 . 이 존재하고
  • [a-zA-Z] 의 문자가 2개나 3개가 존재
  • 이 모든것은 대소문자 구분하지 않는다.

전화번호
/^\d{3}-\d{3,4}-\d{4}$/

  • 시작을 숫자 3개로하며
  • 중간에 하이픈 - 하나 존재
  • 숫자가 3~4개 존재하며
  • 하이픈 하나 존재
  • 숫자 4개로 끝남

휴대폰 번호
/^01([0|1|6|7|8|9]?)-?([0-9]{3,4})-?([0-9]{4})$/

  • 시작을 숫자 01로 시작하고 그 후에 0,1,6,7,8,9 중에 하나가 나올수도 있으며
  • 하이픈 -이 하나 존재할수도 있으며
  • 숫자 3~4개 이어지고
  • 또 하이픈 -이 하나 존재할수도 있으며
  • 숫자 4개가 이어진다.

정규표현식 연습하기 -> 클릭


참고 https://hamait.tistory.com/342


profile
참 되게 살자

0개의 댓글